Update the test cases for emqttd

This commit is contained in:
HuangDan 2017-11-19 12:06:55 +08:00
parent 945f925136
commit 2d92f95294
3 changed files with 17 additions and 16 deletions

View File

@ -25,8 +25,9 @@ NO_AUTOPATCH = cuttlefish
BUILD_DEPS = cuttlefish BUILD_DEPS = cuttlefish
dep_cuttlefish = git https://github.com/emqtt/cuttlefish dep_cuttlefish = git https://github.com/emqtt/cuttlefish
TEST_DEPS = emqttc TEST_DEPS = emqttc emq_dashboard
dep_emqttc = git https://github.com/emqtt/emqttc dep_emqttc = git https://github.com/emqtt/emqttc
dep_emq_dashboard = git https://github.com/emqtt/emq_dashboard
TEST_ERLC_OPTS += +debug_info TEST_ERLC_OPTS += +debug_info
TEST_ERLC_OPTS += +'{parse_transform, lager_transform}' TEST_ERLC_OPTS += +'{parse_transform, lager_transform}'

View File

@ -67,7 +67,6 @@ all() ->
{group, http}, {group, http},
{group, alarms}, {group, alarms},
{group, cli}, {group, cli},
{group, get_api},
{group, cleanSession}]. {group, cleanSession}].
groups() -> groups() ->
@ -99,7 +98,8 @@ groups() ->
run_hooks]}, run_hooks]},
{http, [sequence], {http, [sequence],
[request_status, [request_status,
request_publish request_publish,
get_api_lists
% websocket_test % websocket_test
]}, ]},
{alarms, [sequence], {alarms, [sequence],
@ -122,8 +122,7 @@ groups() ->
]}, ]},
cli_vm]}, cli_vm]},
{cleanSession, [sequence], {cleanSession, [sequence],
[cleanSession_validate]}, [cleanSession_validate]}].
{get_api, [sequence], [get_api_lists]}].
init_per_suite(Config) -> init_per_suite(Config) ->
NewConfig = generate_config(), NewConfig = generate_config(),
@ -235,9 +234,9 @@ pubsub(_) ->
emqttd:unsubscribe(<<"a/b/c">>). emqttd:unsubscribe(<<"a/b/c">>).
t_local_subscribe(_) -> t_local_subscribe(_) ->
emqttd:subscribe("$local/topic0"), ok = emqttd:subscribe("$local/topic0"),
emqttd:subscribe("$local/topic1", <<"x">>), ok = emqttd:subscribe("$local/topic1", <<"x">>),
emqttd:subscribe("$local/topic2", <<"x">>, [{qos, 2}]), ok = emqttd:subscribe("$local/topic2", <<"x">>, [{qos, 2}]),
timer:sleep(10), timer:sleep(10),
?assertEqual([self()], emqttd:subscribers("$local/topic0")), ?assertEqual([self()], emqttd:subscribers("$local/topic0")),
?assertEqual([{<<"x">>, self()}], emqttd:subscribers("$local/topic1")), ?assertEqual([{<<"x">>, self()}], emqttd:subscribers("$local/topic1")),
@ -451,19 +450,20 @@ request_status(_) ->
?assertEqual(binary_to_list(Status), Return). ?assertEqual(binary_to_list(Status), Return).
request_publish(_) -> request_publish(_) ->
application:start(emq_dashboard),
emqttc:start_link([{host, "localhost"}, emqttc:start_link([{host, "localhost"},
{port, 1883}, {port, 1883},
{client_id, <<"random">>}, {client_id, <<"random">>},
{clean_sess, false}]), {clean_sess, false}]),
SubParams = "{\"qos\":1, \"topic\" : \"a\/b\/c\", \"client_id\" :\"random\"}", SubParams = "{\"qos\":1, \"topic\" : \"a\/b\/c\", \"client_id\" :\"random\"}",
?assert(connect_emqttd_pubsub_(post, "api/v2/mqtt/subscribe", SubParams, auth_header_("", ""))), ?assert(connect_emqttd_pubsub_(post, "api/v2/mqtt/subscribe", SubParams, auth_header_("admin", "public"))),
ok = emqttd:subscribe(<<"a/b/c">>, self(), [{qos, 1}]), ok = emqttd:subscribe(<<"a/b/c">>, self(), [{qos, 1}]),
Params = "{\"qos\":1, \"retain\":false, \"topic\" : \"a\/b\/c\", \"messages\" :\"hello\"}", Params = "{\"qos\":1, \"retain\":false, \"topic\" : \"a\/b\/c\", \"messages\" :\"hello\"}",
?assert(connect_emqttd_pubsub_(post, "api/v2/mqtt/publish", Params, auth_header_("", ""))), ?assert(connect_emqttd_pubsub_(post, "api/v2/mqtt/publish", Params, auth_header_("admin", "public"))),
?assert(receive {dispatch, <<"a/b/c">>, _} -> true after 2 -> false end), ?assert(receive {dispatch, <<"a/b/c">>, _} -> true after 2 -> false end),
UnSubParams = "{\"topic\" : \"a\/b\/c\", \"client_id\" :\"random\"}", UnSubParams = "{\"topic\" : \"a\/b\/c\", \"client_id\" :\"random\"}",
?assert(connect_emqttd_pubsub_(post, "api/v2/mqtt/unsubscribe", UnSubParams, auth_header_("", ""))). ?assert(connect_emqttd_pubsub_(post, "api/v2/mqtt/unsubscribe", UnSubParams, auth_header_("admin", "public"))).
connect_emqttd_pubsub_(Method, Api, Params, Auth) -> connect_emqttd_pubsub_(Method, Api, Params, Auth) ->
Url = "http://127.0.0.1:8080/" ++ Api, Url = "http://127.0.0.1:8080/" ++ Api,
@ -482,6 +482,9 @@ auth_header_(User, Pass) ->
Encoded = base64:encode_to_string(lists:append([User,":",Pass])), Encoded = base64:encode_to_string(lists:append([User,":",Pass])),
{"Authorization","Basic " ++ Encoded}. {"Authorization","Basic " ++ Encoded}.
get_api_lists(_Config) ->
lists:foreach(fun request/1, ?GET_API).
websocket_test(_) -> websocket_test(_) ->
Conn = esockd_connection:new(esockd_transport, nil, []), Conn = esockd_connection:new(esockd_transport, nil, []),
Req = mochiweb_request:new(Conn, 'GET', "/mqtt", {1, 1}, Req = mochiweb_request:new(Conn, 'GET', "/mqtt", {1, 1},
@ -626,9 +629,6 @@ cleanSession_validate(_) ->
emqttc:disconnect(Pub), emqttc:disconnect(Pub),
emqttc:disconnect(C11). emqttc:disconnect(C11).
get_api_lists(_Config) ->
lists:foreach(fun request/1, ?GET_API).
change_opts(SslType) -> change_opts(SslType) ->
{ok, Listeners} = application:get_env(?APP, listeners), {ok, Listeners} = application:get_env(?APP, listeners),
NewListeners = NewListeners =
@ -697,7 +697,7 @@ http_post(Method, Path, Params) ->
req(Method, Path, Body) -> req(Method, Path, Body) ->
Url = ?URL ++ Path, Url = ?URL ++ Path,
Headers = auth_header_("", ""), Headers = auth_header_("admin", "public"),
case httpc:request(Method, {Url, [Headers]}, [], []) of case httpc:request(Method, {Url, [Headers]}, [], []) of
{error, socket_closed_remotely} -> {error, socket_closed_remotely} ->
false; false;

View File

@ -14,7 +14,7 @@
%% limitations under the License. %% limitations under the License.
%%-------------------------------------------------------------------- %%--------------------------------------------------------------------
-module(emqttd_router_SUITE). -module(emqttd_cli_SUITE).
-compile(export_all). -compile(export_all).