mirror of
https://github.com/processone/ejabberd.git
synced 2024-12-20 17:27:00 +01:00
3dc55c6d47
- add API versionning - changed error handling, based on exception - commands moved/merged from mod_admin_p1 to mod_admin_extra - command bufixes - add some elixir unit test cases Squashed commit of the following: commit dd59855b3486f78a9349756e4f102e79b3accff8 Merge: 14e8ffc 506e08e Author: Jerome Sautret <jerome.sautret@process-one.net> Date: Fri Oct 30 11:43:18 2015 +0100 Merge branch '3.2.x' into api commit 14e8ffce78cbea6c8605371d1fc50a0c1d1e012c Author: Jerome Sautret <jerome.sautret@process-one.net> Date: Tue Oct 27 16:35:17 2015 +0100 Added OAuth tests to ejabberd_commands commit f81c550c14628edfe4861c228576cb767924366a Author: Jerome Sautret <jerome.sautret@process-one.net> Date: Tue Oct 27 16:34:55 2015 +0100 Added some mod_http_api tests commit 6a64578d5b2ba532a2feb6503ed98561e56d5d53 Author: Jerome Sautret <jerome.sautret@process-one.net> Date: Mon Oct 26 15:29:36 2015 +0100 Fix get_last command test Previous version won't work with dst. commit 27e0cde9e9c1f001effe68f8424a365ad947c068 Author: Jerome Sautret <jerome.sautret@process-one.net> Date: Fri Oct 23 17:59:34 2015 +0200 Add tests on admin command policy commit 19dad8d54f54c9fabd454280483cccfb06c8e78a Author: Jerome Sautret <jerome.sautret@process-one.net> Date: Fri Oct 23 16:49:36 2015 +0200 Added command related tests (http api & user policy) commit e0e596ab4a3f3a70aba5f374f028939ab794de33 Author: Jerome Sautret <jerome.sautret@process-one.net> Date: Fri Oct 23 16:49:16 2015 +0200 Fix command call. commit 128cd7d1ede3c47a34f8ec3a750c980ccad2c61d Merge: 60c4c4c 447313c Author: Jerome Sautret <jerome.sautret@process-one.net> Date: Thu Oct 22 14:48:39 2015 +0200 Merge branch '3.2.x' into api commit 60c4c4c0751302524c14219c6bc8c56a6069a689 Author: Jerome Sautret <jerome.sautret@process-one.net> Date: Thu Oct 22 14:45:57 2015 +0200 Fix ejabberd_commands spec. commit 8e145c28c5da762c2b93ee32327eff1db94ebfed Merge: 397273a f13dc94 Author: Jerome Sautret <jerome.sautret@process-one.net> Date: Wed Oct 21 18:26:07 2015 +0200 Merge branch '3.2.x' into api commit 397273a23ed415feac87aed33da6452229793387 Merge: c30e89b f289e27 Author: Jerome Sautret <jerome.sautret@process-one.net> Date: Wed Oct 21 15:27:45 2015 +0200 Merge branch '3.2.x' into api commit c30e89bb8a0013bff37e61e4c6953350c9c1f313 Author: Jerome Sautret <jerome.sautret@process-one.net> Date: Wed Oct 21 12:47:02 2015 +0200 Merge mod_http_api commit 7b0db22b4acd48ff6fabce41c1b2525e6580a3c5 Author: Jerome Sautret <jerome.sautret@process-one.net> Date: Fri Oct 16 11:55:48 2015 +0200 Fix exunit tests to run with common_test suites commit d8b1a89800ac7379a57a7eb4a09c3c93c3e1e5eb Merge: 2879ae8 63455b3 Author: Jerome Sautret <jerome.sautret@process-one.net> Date: Thu Oct 15 11:39:45 2015 +0200 Merge branch '3.2.x' into api commit 2879ae87ff3eee369ef3d780136b96ecff5285d1 Author: Jerome Sautret <jerome.sautret@process-one.net> Date: Wed Oct 14 14:53:44 2015 +0200 Fix update_roster command. commit a1d453dd7a3afda9861a8d747494a45057ad574b Author: Jerome Sautret <jerome.sautret@process-one.net> Date: Tue Oct 13 16:14:28 2015 +0200 API commands refactor Moving and/or merging commands from mod_admin_p1 to mod_admin_extra commit b709ed26b0fc0ca4f3bdd5a59fa58ec7e3db97fa Author: Jerome Sautret <jerome.sautret@process-one.net> Date: Wed Oct 7 15:10:01 2015 +0200 Add tests on commands commit 6711687bee9c672cb3d5aed0744e13420ecf6dbd Author: Jerome Sautret <jerome.sautret@process-one.net> Date: Tue Sep 29 15:58:16 2015 +0200 Add ejabberd_commands tests commit df8682f419cf3877e77e36a19bca0fc55dc991f8 Author: Jerome Sautret <jerome.sautret@process-one.net> Date: Mon Sep 28 14:54:39 2015 +0200 Added API versioning for ejabberdctl and rest commands commit cd017b0e3aac431bc3ee807ceb7f8641e1523ef5 Author: Jerome Sautret <jerome.sautret@process-one.net> Date: Fri Sep 18 11:21:45 2015 +0200 Better error handling of HTTP API commands. commit ca5cb6acd8e4643f9d6c484d2277b0d7e88471e5 Author: Jerome Sautret <jerome.sautret@process-one.net> Date: Tue Sep 15 15:03:05 2015 +0200 add commands to mod_admin_extra: - get_offline_count - get_presence - change_password commit 7f583fa099e30ac2b0915669fd8f102ac565b833 Author: Jerome Sautret <jerome.sautret@process-one.net> Date: Tue Sep 15 15:02:16 2015 +0200 Improve REST API error handling commit 14753b1c02cdce434a786b7f80f6c09f0d210075 Author: Jerome Sautret <jerome.sautret@process-one.net> Date: Mon Sep 14 10:51:17 2015 +0200 Change REST API return codes for integer type.
90 lines
2.7 KiB
Erlang
90 lines
2.7 KiB
Erlang
%%%-------------------------------------------------------------------
|
|
%%% @author Mickael Remond <mremond@process-one.net>
|
|
%%% @copyright (C) 2002-2016, ProcessOne
|
|
%%% @doc
|
|
%%% This is a common test wrapper to run our ejabberd tests written in
|
|
%%% Elixir from standard common test code.
|
|
%%%
|
|
%%% Example: Is run with:
|
|
%%% ./rebar skip_deps=true ct suites=elixir
|
|
%%% or from ejabber overall test suite:
|
|
%%% make quicktest
|
|
%%% @end
|
|
%%% Created : 19 Feb 2015 by Mickael Remond <mremond@process-one.net>
|
|
%%%-------------------------------------------------------------------
|
|
|
|
-module(elixir_SUITE).
|
|
|
|
-compile(export_all).
|
|
|
|
init_per_suite(Config) ->
|
|
check_meck(),
|
|
code:add_pathz(filename:join(test_dir(), "../include")),
|
|
Config.
|
|
|
|
init_per_testcase(_TestCase, Config) ->
|
|
process_flag(error_handler, ?MODULE),
|
|
Config.
|
|
|
|
all() ->
|
|
case is_elixir_available() of
|
|
true ->
|
|
Dir = test_dir(),
|
|
filelib:fold_files(Dir, ".*\.exs", false,
|
|
fun(Filename, Acc) -> [list_to_atom(filename:basename(Filename)) | Acc] end,
|
|
[]);
|
|
false ->
|
|
[]
|
|
end.
|
|
|
|
check_meck() ->
|
|
case catch meck:module_info(module) of
|
|
meck ->
|
|
ok;
|
|
{'EXIT',{undef, _}} ->
|
|
ct:print("meck is not available. Please make sure you configured ejabberd with --enable-elixir --enable-tools"),
|
|
ok
|
|
end.
|
|
|
|
is_elixir_available() ->
|
|
case catch elixir:module_info() of
|
|
{'EXIT',{undef,_}} ->
|
|
ct:print("ejabberd has not been build with Elixir support, skipping Elixir tests."),
|
|
false;
|
|
ModInfo when is_list(ModInfo) ->
|
|
true
|
|
end.
|
|
|
|
undefined_function(?MODULE, Func, Args) ->
|
|
case lists:suffix(".exs", atom_to_list(Func)) of
|
|
true ->
|
|
run_elixir_test(Func);
|
|
false ->
|
|
error_handler:undefined_function(?MODULE, Func, Args)
|
|
end;
|
|
undefined_function(Module, Func, Args) ->
|
|
error_handler:undefined_function(Module, Func,Args).
|
|
|
|
run_elixir_test(Func) ->
|
|
'Elixir.ExUnit':start([]),
|
|
filelib:fold_files(test_dir(), ".*\\.exs\$", true,
|
|
fun (File, N) ->
|
|
'Elixir.Code':require_file(list_to_binary(File)),
|
|
N+1
|
|
end, 0),
|
|
'Elixir.Code':load_file(list_to_binary(filename:join(test_dir(), atom_to_list(Func)))),
|
|
%% I did not use map syntax, so that this file can still be build under R16
|
|
ResultMap = 'Elixir.ExUnit':run(),
|
|
case maps:find(failures, ResultMap) of
|
|
{ok, 0} ->
|
|
%% Zero failures
|
|
ok;
|
|
{ok, Failures} ->
|
|
ct:print("Elixir tests failed: ~.10B~nSee logs for details", [Failures]),
|
|
ct:fail(elixir_test_failure)
|
|
end.
|
|
|
|
test_dir() ->
|
|
{ok, CWD} = file:get_cwd(),
|
|
filename:join(CWD, "../../test").
|