Skip to content

Commit

Permalink
Test / Document ejabberd_commands checks
Browse files Browse the repository at this point in the history
  • Loading branch information
mremond committed Mar 31, 2016
1 parent 3cfcdbb commit d35c5eb
Showing 1 changed file with 21 additions and 1 deletion.
22 changes: 21 additions & 1 deletion test/ejabberd_commands_test.exs
Original file line number Diff line number Diff line change
Expand Up @@ -31,11 +31,19 @@ defmodule EjabberdCommandsTest do
end

test "Check that we can register a command" do
assert :ejabberd_commands.register_commands([user_test_command]) == :ok
:ok = :ejabberd_commands.register_commands([user_test_command])
commands = :ejabberd_commands.list_commands
assert Enum.member?(commands, {:test_user, [], "Test user"})
end

test "Check that admin commands are rejected with noauth credentials" do
:ok = :ejabberd_commands.register_commands([admin_test_command])
{:error, :account_unprivileged} = :ejabberd_commands.execute_command(:undefined, :noauth, :test_admin, [])
# Command executed from ejabberdctl passes anyway with access commands trick
# TODO: We should refactor to have explicit call when bypassing auth check for command-line
:ok = :ejabberd_commands.execute_command([], :noauth, :test_admin, [])
end

# TODO Test that we can add command to list of expose commands
# This can be done with:
# ejabberd_config:add_local_option(commands, [[{add_commands, [open_cmd]}]]).
Expand All @@ -58,4 +66,16 @@ defmodule EjabberdCommandsTest do
{:nick, :string}
]}}}})
end

defp admin_test_command do
ejabberd_commands(name: :test_admin, tags: [:roster],
desc: "Test admin",
policy: :restricted,
module: __MODULE__,
function: :test_admin,
args: [],
result: {:res, :rescode})
end

def test_admin, do: :ok
end

0 comments on commit d35c5eb

Please sign in to comment.