Moving files around
This commit is contained in:
parent
df929611a8
commit
ab642c9278
|
|
@ -15,7 +15,7 @@ rabbitmq_stomp.d
|
|||
|
||||
# Python testsuite.
|
||||
*.pyc
|
||||
test/deps/pika/pika/
|
||||
test/deps/pika/pika-git/
|
||||
test/deps/stomppy/stomppy/
|
||||
test/deps/stomppy/stomppy-git/
|
||||
test/python_SUITE_data/deps/pika/pika/
|
||||
test/python_SUITE_data/deps/pika/pika-git/
|
||||
test/python_SUITE_data/deps/stomppy/stomppy/
|
||||
test/python_SUITE_data/deps/stomppy/stomppy-git/
|
||||
|
|
|
|||
|
|
@ -46,12 +46,14 @@ groups() ->
|
|||
blank_destination_in_send
|
||||
],
|
||||
|
||||
[{list_to_atom("version_" ++ V), [sequence], Tests}
|
||||
[{list_to_atom("version_" ++ V), [sequence], Tests}
|
||||
|| V <- ?SUPPORTED_VERSIONS].
|
||||
|
||||
init_per_suite(Config) ->
|
||||
Config1 = rabbit_ct_helpers:set_config(Config,
|
||||
[{rmq_nodename_suffix, ?MODULE}]),
|
||||
rabbit_ct_helpers:log_environment(),
|
||||
rabbit_ct_helpers:run_setup_steps(Config,
|
||||
rabbit_ct_helpers:run_setup_steps(Config1,
|
||||
rabbit_ct_broker_helpers:setup_steps()).
|
||||
|
||||
end_per_suite(Config) ->
|
||||
|
|
@ -63,7 +65,7 @@ init_per_group(Group, Config) ->
|
|||
|
||||
end_per_group(_Group, Config) -> Config.
|
||||
|
||||
init_per_testcase(_, Config) ->
|
||||
init_per_testcase(TestCase, Config) ->
|
||||
Version = ?config(version, Config),
|
||||
StompPort = rabbit_ct_broker_helpers:get_node_config(Config, 0, tcp_port_stomp),
|
||||
{ok, Connection} = amqp_connection:start(#amqp_params_direct{
|
||||
|
|
@ -71,19 +73,44 @@ init_per_testcase(_, Config) ->
|
|||
}),
|
||||
{ok, Channel} = amqp_connection:open_channel(Connection),
|
||||
{ok, Client} = rabbit_stomp_client:connect(Version, StompPort),
|
||||
rabbit_ct_helpers:set_config(Config, [
|
||||
Config1 = rabbit_ct_helpers:set_config(Config, [
|
||||
{amqp_connection, Connection},
|
||||
{amqp_channel, Channel},
|
||||
{stomp_client, Client}
|
||||
]).
|
||||
]),
|
||||
init_per_testcase0(TestCase, Config1).
|
||||
|
||||
end_per_testcase(_, Config) ->
|
||||
end_per_testcase(TestCase, Config) ->
|
||||
Connection = ?config(amqp_connection, Config),
|
||||
Channel = ?config(amqp_channel, Config),
|
||||
Client = ?config(stomp_client, Config),
|
||||
rabbit_stomp_client:disconnect(Client),
|
||||
amqp_channel:close(Channel),
|
||||
amqp_connection:close(Connection),
|
||||
end_per_testcase0(TestCase, Config).
|
||||
|
||||
init_per_testcase0(publish_unauthorized_error, Config) ->
|
||||
Channel = ?config(amqp_channel, Config),
|
||||
#'queue.declare_ok'{} =
|
||||
amqp_channel:call(Channel, #'queue.declare'{queue = <<"RestrictedQueue">>,
|
||||
auto_delete = true}),
|
||||
|
||||
rabbit_ct_broker_helpers:rpc(Config, 0, rabbit_auth_backend_internal, add_user, [<<"user">>, <<"pass">>]),
|
||||
rabbit_ct_broker_helpers:rpc(Config, 0, rabbit_auth_backend_internal, set_permissions, [
|
||||
<<"user">>, <<"/">>, <<"nothing">>, <<"nothing">>, <<"nothing">>]),
|
||||
Version = ?config(version, Config),
|
||||
StompPort = rabbit_ct_broker_helpers:get_node_config(Config, 0, tcp_port_stomp),
|
||||
{ok, ClientFoo} = rabbit_stomp_client:connect(Version, "user", "pass", StompPort),
|
||||
rabbit_ct_helpers:set_config(Config, [{client_foo, ClientFoo}]);
|
||||
init_per_testcase0(_, Config) ->
|
||||
Config.
|
||||
|
||||
end_per_testcase0(publish_unauthorized_error, Config) ->
|
||||
ClientFoo = ?config(client_foo, Config),
|
||||
rabbit_stomp_client:disconnect(ClientFoo),
|
||||
rabbit_ct_broker_helpers:rpc(Config, 0, rabbit_auth_backend_internal, delete_user, [<<"user">>]),
|
||||
Config;
|
||||
end_per_testcase0(_, Config) ->
|
||||
Config.
|
||||
|
||||
publish_no_dest_error(Config) ->
|
||||
|
|
@ -95,29 +122,12 @@ publish_no_dest_error(Config) ->
|
|||
ok.
|
||||
|
||||
publish_unauthorized_error(Config) ->
|
||||
Channel = ?config(amqp_channel, Config),
|
||||
Version = ?config(version, Config),
|
||||
#'queue.declare_ok'{} =
|
||||
amqp_channel:call(Channel, #'queue.declare'{queue = <<"RestrictedQueue">>,
|
||||
auto_delete = true}),
|
||||
|
||||
rabbit_ct_broker_helpers:rpc(Config, 0, rabbit_auth_backend_internal, add_user, [<<"user">>, <<"pass">>]),
|
||||
rabbit_ct_broker_helpers:rpc(Config, 0, rabbit_auth_backend_internal, set_permissions, [
|
||||
<<"user">>, <<"/">>, <<"nothing">>, <<"nothing">>, <<"nothing">>]),
|
||||
StompPort = rabbit_ct_broker_helpers:get_node_config(Config, 0, tcp_port_stomp),
|
||||
{ok, ClientFoo} = rabbit_stomp_client:connect(Version, "user", "pass", StompPort),
|
||||
try
|
||||
rabbit_stomp_client:send(
|
||||
ClientFoo, "SEND", [{"destination", "/amq/queue/RestrictedQueue"}], ["hello"]),
|
||||
{ok, _Client1, Hdrs, _} = stomp_receive(ClientFoo, "ERROR"),
|
||||
"access_refused" = proplists:get_value("message", Hdrs),
|
||||
ok
|
||||
catch _:Err ->
|
||||
Err
|
||||
after
|
||||
rabbit_stomp_client:disconnect(ClientFoo),
|
||||
rabbit_ct_broker_helpers:rpc(Config, 0, rabbit_auth_backend_internal, delete_user, [<<"user">>])
|
||||
end.
|
||||
ClientFoo = ?config(client_foo, Config),
|
||||
rabbit_stomp_client:send(
|
||||
ClientFoo, "SEND", [{"destination", "/amq/queue/RestrictedQueue"}], ["hello"]),
|
||||
{ok, _Client1, Hdrs, _} = stomp_receive(ClientFoo, "ERROR"),
|
||||
"access_refused" = proplists:get_value("message", Hdrs),
|
||||
ok.
|
||||
|
||||
subscribe_error(Config) ->
|
||||
Client = ?config(stomp_client, Config),
|
||||
|
|
|
|||
|
|
@ -31,10 +31,13 @@ all() ->
|
|||
].
|
||||
|
||||
init_per_suite(Config) ->
|
||||
Config1 = rabbit_ct_helpers:set_config(Config,
|
||||
[{rmq_nodename_suffix, ?MODULE}]),
|
||||
rabbit_ct_helpers:log_environment(),
|
||||
rabbit_ct_helpers:run_setup_steps(Config,
|
||||
rabbit_ct_helpers:run_setup_steps(Config1,
|
||||
rabbit_ct_broker_helpers:setup_steps()).
|
||||
|
||||
|
||||
end_per_suite(Config) ->
|
||||
rabbit_ct_helpers:run_teardown_steps(Config).
|
||||
|
||||
|
|
|
|||
|
|
@ -14,17 +14,45 @@
|
|||
%% Copyright (c) 2007-2016 Pivotal Software, Inc. All rights reserved.
|
||||
%%
|
||||
|
||||
-module(rabbit_stomp_test_frame).
|
||||
-module(frame_SUITE).
|
||||
|
||||
-include_lib("common_test/include/ct.hrl").
|
||||
-include_lib("eunit/include/eunit.hrl").
|
||||
-include_lib("amqp_client/include/amqp_client.hrl").
|
||||
-include("rabbit_stomp_frame.hrl").
|
||||
-include("rabbit_stomp_headers.hrl").
|
||||
-compile(export_all).
|
||||
|
||||
parse_simple_frame_test() ->
|
||||
all() ->
|
||||
[
|
||||
parse_simple_frame,
|
||||
parse_simple_frame_crlf,
|
||||
parse_command_only,
|
||||
parse_ignore_empty_frames,
|
||||
parse_heartbeat_interframe,
|
||||
parse_crlf_interframe,
|
||||
parse_carriage_return_not_ignored_interframe,
|
||||
parse_carriage_return_mid_command,
|
||||
parse_carriage_return_end_command,
|
||||
parse_resume_mid_command,
|
||||
parse_resume_mid_header_key,
|
||||
parse_resume_mid_header_val,
|
||||
parse_resume_mid_body,
|
||||
parse_no_header_stripping,
|
||||
parse_multiple_headers,
|
||||
header_no_colon,
|
||||
no_nested_escapes,
|
||||
header_name_with_cr,
|
||||
header_value_with_cr,
|
||||
header_value_with_colon,
|
||||
headers_escaping_roundtrip,
|
||||
headers_escaping_roundtrip_without_trailing_lf
|
||||
].
|
||||
|
||||
parse_simple_frame(_) ->
|
||||
parse_simple_frame_gen("\n").
|
||||
|
||||
parse_simple_frame_crlf_test() ->
|
||||
parse_simple_frame_crlf(_) ->
|
||||
parse_simple_frame_gen("\r\n").
|
||||
|
||||
parse_simple_frame_gen(Term) ->
|
||||
|
|
@ -40,34 +68,34 @@ parse_simple_frame_gen(Term) ->
|
|||
#stomp_frame{body_iolist = Body} = Frame,
|
||||
?assertEqual(<<"Body Content">>, iolist_to_binary(Body)).
|
||||
|
||||
parse_command_only_test() ->
|
||||
parse_command_only(_) ->
|
||||
{ok, #stomp_frame{command = "COMMAND"}, _Rest} = parse("COMMAND\n\n\0").
|
||||
|
||||
parse_ignore_empty_frames_test() ->
|
||||
parse_ignore_empty_frames(_) ->
|
||||
{ok, #stomp_frame{command = "COMMAND"}, _Rest} = parse("\0\0COMMAND\n\n\0").
|
||||
|
||||
parse_heartbeat_interframe_test() ->
|
||||
parse_heartbeat_interframe(_) ->
|
||||
{ok, #stomp_frame{command = "COMMAND"}, _Rest} = parse("\nCOMMAND\n\n\0").
|
||||
|
||||
parse_crlf_interframe_test() ->
|
||||
parse_crlf_interframe(_) ->
|
||||
{ok, #stomp_frame{command = "COMMAND"}, _Rest} = parse("\r\nCOMMAND\n\n\0").
|
||||
|
||||
parse_carriage_return_not_ignored_interframe_test() ->
|
||||
parse_carriage_return_not_ignored_interframe(_) ->
|
||||
{error, {unexpected_chars_between_frames, "\rC"}} = parse("\rCOMMAND\n\n\0").
|
||||
|
||||
parse_carriage_return_mid_command_test() ->
|
||||
parse_carriage_return_mid_command(_) ->
|
||||
{error, {unexpected_chars_in_command, "\rA"}} = parse("COMM\rAND\n\n\0").
|
||||
|
||||
parse_carriage_return_end_command_test() ->
|
||||
parse_carriage_return_end_command(_) ->
|
||||
{error, {unexpected_chars_in_command, "\r\r"}} = parse("COMMAND\r\r\n\n\0").
|
||||
|
||||
parse_resume_mid_command_test() ->
|
||||
parse_resume_mid_command(_) ->
|
||||
First = "COMM",
|
||||
Second = "AND\n\n\0",
|
||||
{more, Resume} = parse(First),
|
||||
{ok, #stomp_frame{command = "COMMAND"}, _Rest} = parse(Second, Resume).
|
||||
|
||||
parse_resume_mid_header_key_test() ->
|
||||
parse_resume_mid_header_key(_) ->
|
||||
First = "COMMAND\nheade",
|
||||
Second = "r1:value1\n\n\0",
|
||||
{more, Resume} = parse(First),
|
||||
|
|
@ -76,7 +104,7 @@ parse_resume_mid_header_key_test() ->
|
|||
?assertEqual({ok, "value1"},
|
||||
rabbit_stomp_frame:header(Frame, "header1")).
|
||||
|
||||
parse_resume_mid_header_val_test() ->
|
||||
parse_resume_mid_header_val(_) ->
|
||||
First = "COMMAND\nheader1:val",
|
||||
Second = "ue1\n\n\0",
|
||||
{more, Resume} = parse(First),
|
||||
|
|
@ -85,7 +113,7 @@ parse_resume_mid_header_val_test() ->
|
|||
?assertEqual({ok, "value1"},
|
||||
rabbit_stomp_frame:header(Frame, "header1")).
|
||||
|
||||
parse_resume_mid_body_test() ->
|
||||
parse_resume_mid_body(_) ->
|
||||
First = "COMMAND\n\nABC",
|
||||
Second = "DEF\0",
|
||||
{more, Resume} = parse(First),
|
||||
|
|
@ -93,19 +121,19 @@ parse_resume_mid_body_test() ->
|
|||
parse(Second, Resume),
|
||||
?assertEqual([<<"ABC">>, <<"DEF">>], Body).
|
||||
|
||||
parse_no_header_stripping_test() ->
|
||||
parse_no_header_stripping(_) ->
|
||||
Content = "COMMAND\nheader: foo \n\n\0",
|
||||
{ok, Frame, _} = parse(Content),
|
||||
{ok, Val} = rabbit_stomp_frame:header(Frame, "header"),
|
||||
?assertEqual(" foo ", Val).
|
||||
|
||||
parse_multiple_headers_test() ->
|
||||
parse_multiple_headers(_) ->
|
||||
Content = "COMMAND\nheader:correct\nheader:incorrect\n\n\0",
|
||||
{ok, Frame, _} = parse(Content),
|
||||
{ok, Val} = rabbit_stomp_frame:header(Frame, "header"),
|
||||
?assertEqual("correct", Val).
|
||||
|
||||
header_no_colon_test() ->
|
||||
header_no_colon(_) ->
|
||||
Content = "COMMAND\n"
|
||||
"hdr1:val1\n"
|
||||
"hdrerror\n"
|
||||
|
|
@ -113,7 +141,7 @@ header_no_colon_test() ->
|
|||
"\n\0",
|
||||
?assertEqual(parse(Content), {error, {header_no_value, "hdrerror"}}).
|
||||
|
||||
no_nested_escapes_test() ->
|
||||
no_nested_escapes(_) ->
|
||||
Content = "COM\\\\rAND\n" % no escapes
|
||||
"hdr\\\\rname:" % one escape
|
||||
"hdr\\\\rval\n\n\0", % one escape
|
||||
|
|
@ -123,15 +151,15 @@ no_nested_escapes_test() ->
|
|||
headers = [{"hdr\\rname", "hdr\\rval"}],
|
||||
body_iolist = []}).
|
||||
|
||||
header_name_with_cr_test() ->
|
||||
header_name_with_cr(_) ->
|
||||
Content = "COMMAND\nhead\rer:val\n\n\0",
|
||||
{error, {unexpected_chars_in_header, "\re"}} = parse(Content).
|
||||
|
||||
header_value_with_cr_test() ->
|
||||
header_value_with_cr(_) ->
|
||||
Content = "COMMAND\nheader:val\rue\n\n\0",
|
||||
{error, {unexpected_chars_in_header, "\ru"}} = parse(Content).
|
||||
|
||||
header_value_with_colon_test() ->
|
||||
header_value_with_colon(_) ->
|
||||
Content = "COMMAND\nheader:val:ue\n\n\0",
|
||||
{ok, Frame, _} = parse(Content),
|
||||
?assertEqual(Frame,
|
||||
|
|
@ -146,10 +174,10 @@ test_frame_serialization(Expected, TrailingLF) ->
|
|||
Serialized = lists:flatten(rabbit_stomp_frame:serialize(Frame, TrailingLF)),
|
||||
?assertEqual(Expected, rabbit_misc:format("~s", [Serialized])).
|
||||
|
||||
headers_escaping_roundtrip_test() ->
|
||||
headers_escaping_roundtrip(_) ->
|
||||
test_frame_serialization("COMMAND\nhead\\r\\c\\ner:\\c\\n\\r\\\\\n\n\0\n", true).
|
||||
|
||||
headers_escaping_roundtrip_without_trailing_lf_test() ->
|
||||
headers_escaping_roundtrip_without_trailing_lf(_) ->
|
||||
test_frame_serialization("COMMAND\nhead\\r\\c\\ner:\\c\\n\\r\\\\\n\n\0", false).
|
||||
|
||||
parse(Content) ->
|
||||
|
|
@ -161,9 +189,6 @@ parse_complete(Content) ->
|
|||
{ok, Frame = #stomp_frame{command = Command}, State} = parse(Content),
|
||||
{Command, Frame, State}.
|
||||
|
||||
frame_string(Command, Headers, BodyContent) ->
|
||||
frame_string(Command, Headers, BodyContent, "\n").
|
||||
|
||||
frame_string(Command, Headers, BodyContent, Term) ->
|
||||
HeaderString =
|
||||
lists:flatten([Key ++ ":" ++ Value ++ Term || {Key, Value} <- Headers]),
|
||||
|
|
@ -11,10 +11,12 @@ all() ->
|
|||
|
||||
|
||||
init_per_testcase(_, Config) ->
|
||||
Config1 = rabbit_ct_helpers:set_config(Config, [{rmq_certspwd, "bunnychow"}]),
|
||||
Config1 = rabbit_ct_helpers:set_config(Config,
|
||||
[{rmq_certspwd, "bunnychow"},
|
||||
{rmq_nodename_suffix, ?MODULE}]),
|
||||
rabbit_ct_helpers:log_environment(),
|
||||
rabbit_ct_helpers:run_setup_steps(
|
||||
Config1,
|
||||
Config1,
|
||||
rabbit_ct_broker_helpers:setup_steps()).
|
||||
|
||||
end_per_testcase(_, Config) ->
|
||||
|
|
@ -22,29 +24,33 @@ end_per_testcase(_, Config) ->
|
|||
|
||||
|
||||
common(Config) ->
|
||||
run(Config, "/src/test.py").
|
||||
run(Config, filename:join("src", "test.py")).
|
||||
|
||||
connect_options(Config) ->
|
||||
run(Config, "/src/test_connect_options.py").
|
||||
run(Config, filename:join("src", "test_connect_options.py")).
|
||||
|
||||
ssl(Config) ->
|
||||
run(Config, "/src/test_ssl.py").
|
||||
run(Config, filename:join("src", "test_ssl.py")).
|
||||
|
||||
run(Config, Test) ->
|
||||
Curdir = cur_dir(),
|
||||
DataDir = ?config(data_dir, Config),
|
||||
CertsDir = rabbit_ct_helpers:get_config(Config, rmq_certsdir),
|
||||
StompPort = rabbit_ct_broker_helpers:get_node_config(Config, 0, tcp_port_stomp),
|
||||
StompPortTls = rabbit_ct_broker_helpers:get_node_config(Config, 0, tcp_port_stomp_tls),
|
||||
AmqpPort = rabbit_ct_broker_helpers:get_node_config(Config, 0, tcp_port_amqp),
|
||||
NodeName = rabbit_ct_broker_helpers:get_node_config(Config, 0, nodename),
|
||||
PythonPath = os:getenv("PYTHONPATH"),
|
||||
os:putenv("PYTHONPATH", Curdir ++ "/deps/pika/pika:"++ Curdir ++ "/deps/stomppy/stomppy:" ++ PythonPath),
|
||||
os:putenv("PYTHONPATH", filename:join([DataDir, "deps", "pika","pika"])
|
||||
++":"++
|
||||
filename:join([DataDir, "deps", "stomppy", "stomppy"])
|
||||
++ ":" ++
|
||||
PythonPath),
|
||||
os:putenv("AMQP_PORT", integer_to_list(AmqpPort)),
|
||||
os:putenv("STOMP_PORT", integer_to_list(StompPort)),
|
||||
os:putenv("STOMP_PORT_TLS", integer_to_list(StompPortTls)),
|
||||
os:putenv("RABBITMQ_NODENAME", atom_to_list(NodeName)),
|
||||
os:putenv("SSL_CERTS_PATH", CertsDir),
|
||||
{ok, _} = rabbit_ct_helpers:exec([Curdir ++ Test]).
|
||||
{ok, _} = rabbit_ct_helpers:exec([filename:join(DataDir, Test)]).
|
||||
|
||||
|
||||
cur_dir() ->
|
||||
|
|
|
|||
|
|
@ -14,22 +14,53 @@
|
|||
%% Copyright (c) 2007-2016 Pivotal Software, Inc. All rights reserved.
|
||||
%%
|
||||
|
||||
-module(rabbit_stomp_test_util).
|
||||
-module(util_SUITE).
|
||||
|
||||
-include_lib("common_test/include/ct.hrl").
|
||||
-include_lib("eunit/include/eunit.hrl").
|
||||
-include_lib("amqp_client/include/amqp_client.hrl").
|
||||
-include_lib("amqp_client/include/rabbit_routing_prefixes.hrl").
|
||||
-include("rabbit_stomp_frame.hrl").
|
||||
-compile(export_all).
|
||||
|
||||
all() -> [
|
||||
longstr_field,
|
||||
message_properties,
|
||||
message_headers,
|
||||
minimal_message_headers_with_no_custom,
|
||||
headers_post_process,
|
||||
headers_post_process_noop_replyto,
|
||||
headers_post_process_noop2,
|
||||
negotiate_version_both_empty,
|
||||
negotiate_version_no_common,
|
||||
negotiate_version_simple_common,
|
||||
negotiate_version_two_choice_common,
|
||||
negotiate_version_two_choice_common_out_of_order,
|
||||
negotiate_version_two_choice_big_common,
|
||||
negotiate_version_choice_mismatched_length,
|
||||
negotiate_version_choice_duplicates,
|
||||
trim_headers,
|
||||
ack_mode_auto,
|
||||
ack_mode_auto_default,
|
||||
ack_mode_client,
|
||||
ack_mode_client_individual,
|
||||
consumer_tag_id,
|
||||
consumer_tag_destination,
|
||||
consumer_tag_invalid,
|
||||
parse_valid_message_id,
|
||||
parse_invalid_message_id
|
||||
].
|
||||
|
||||
|
||||
%%--------------------------------------------------------------------
|
||||
%% Header Processing Tests
|
||||
%%--------------------------------------------------------------------
|
||||
|
||||
longstr_field_test() ->
|
||||
longstr_field(_) ->
|
||||
{<<"ABC">>, longstr, <<"DEF">>} =
|
||||
rabbit_stomp_util:longstr_field("ABC", "DEF").
|
||||
|
||||
message_properties_test() ->
|
||||
message_properties(_) ->
|
||||
Headers = [
|
||||
{"content-type", "text/plain"},
|
||||
{"content-encoding", "UTF-8"},
|
||||
|
|
@ -65,7 +96,7 @@ message_properties_test() ->
|
|||
} =
|
||||
rabbit_stomp_util:message_properties(#stomp_frame{headers = Headers}).
|
||||
|
||||
message_headers_test() ->
|
||||
message_headers(_) ->
|
||||
Properties = #'P_basic'{
|
||||
headers = [{<<"str">>, longstr, <<"foo">>},
|
||||
{<<"int">>, signedint, 123}],
|
||||
|
|
@ -102,13 +133,7 @@ message_headers_test() ->
|
|||
|
||||
[] = lists:subtract(Headers, Expected).
|
||||
|
||||
minimal_message_headers_with_no_custom_test() ->
|
||||
Delivery = #'basic.deliver'{
|
||||
consumer_tag = <<"Q_123">>,
|
||||
delivery_tag = 123,
|
||||
exchange = <<"">>,
|
||||
routing_key = <<"foo">>},
|
||||
|
||||
minimal_message_headers_with_no_custom(_) ->
|
||||
Properties = #'P_basic'{},
|
||||
|
||||
Headers = rabbit_stomp_util:message_headers(Properties),
|
||||
|
|
@ -120,7 +145,7 @@ minimal_message_headers_with_no_custom_test() ->
|
|||
|
||||
[] = lists:subtract(Headers, Expected).
|
||||
|
||||
headers_post_process_test() ->
|
||||
headers_post_process(_) ->
|
||||
Headers = [{"header1", "1"},
|
||||
{"header2", "12"},
|
||||
{"reply-to", "something"}],
|
||||
|
|
@ -130,13 +155,13 @@ headers_post_process_test() ->
|
|||
[] = lists:subtract(
|
||||
rabbit_stomp_util:headers_post_process(Headers), Expected).
|
||||
|
||||
headers_post_process_noop_replyto_test() ->
|
||||
headers_post_process_noop_replyto(_) ->
|
||||
[begin
|
||||
Headers = [{"reply-to", Prefix ++ "/something"}],
|
||||
Headers = rabbit_stomp_util:headers_post_process(Headers)
|
||||
end || Prefix <- rabbit_routing_util:dest_prefixes()].
|
||||
|
||||
headers_post_process_noop2_test() ->
|
||||
headers_post_process_noop2(_) ->
|
||||
Headers = [{"header1", "1"},
|
||||
{"header2", "12"}],
|
||||
Expected = [{"header1", "1"},
|
||||
|
|
@ -144,38 +169,38 @@ headers_post_process_noop2_test() ->
|
|||
[] = lists:subtract(
|
||||
rabbit_stomp_util:headers_post_process(Headers), Expected).
|
||||
|
||||
negotiate_version_both_empty_test() ->
|
||||
negotiate_version_both_empty(_) ->
|
||||
{error, no_common_version} = rabbit_stomp_util:negotiate_version([],[]).
|
||||
|
||||
negotiate_version_no_common_test() ->
|
||||
negotiate_version_no_common(_) ->
|
||||
{error, no_common_version} =
|
||||
rabbit_stomp_util:negotiate_version(["1.2"],["1.3"]).
|
||||
|
||||
negotiate_version_simple_common_test() ->
|
||||
negotiate_version_simple_common(_) ->
|
||||
{ok, "1.2"} =
|
||||
rabbit_stomp_util:negotiate_version(["1.2"],["1.2"]).
|
||||
|
||||
negotiate_version_two_choice_common_test() ->
|
||||
negotiate_version_two_choice_common(_) ->
|
||||
{ok, "1.3"} =
|
||||
rabbit_stomp_util:negotiate_version(["1.2", "1.3"],["1.2", "1.3"]).
|
||||
|
||||
negotiate_version_two_choice_common_out_of_order_test() ->
|
||||
negotiate_version_two_choice_common_out_of_order(_) ->
|
||||
{ok, "1.3"} =
|
||||
rabbit_stomp_util:negotiate_version(["1.3", "1.2"],["1.2", "1.3"]).
|
||||
|
||||
negotiate_version_two_choice_big_common_test() ->
|
||||
negotiate_version_two_choice_big_common(_) ->
|
||||
{ok, "1.20.23"} =
|
||||
rabbit_stomp_util:negotiate_version(["1.20.23", "1.30.456"],
|
||||
["1.20.23", "1.30.457"]).
|
||||
negotiate_version_choice_mismatched_length_test() ->
|
||||
negotiate_version_choice_mismatched_length(_) ->
|
||||
{ok, "1.2.3"} =
|
||||
rabbit_stomp_util:negotiate_version(["1.2", "1.2.3"],
|
||||
["1.2.3", "1.2"]).
|
||||
negotiate_version_choice_duplicates_test() ->
|
||||
negotiate_version_choice_duplicates(_) ->
|
||||
{ok, "1.2"} =
|
||||
rabbit_stomp_util:negotiate_version(["1.2", "1.2"],
|
||||
["1.2", "1.2"]).
|
||||
trim_headers_test() ->
|
||||
trim_headers(_) ->
|
||||
#stomp_frame{headers = [{"one", "foo"}, {"two", "baz "}]} =
|
||||
rabbit_stomp_util:trim_headers(
|
||||
#stomp_frame{headers = [{"one", " foo"}, {"two", " baz "}]}).
|
||||
|
|
@ -184,31 +209,31 @@ trim_headers_test() ->
|
|||
%% Frame Parsing Tests
|
||||
%%--------------------------------------------------------------------
|
||||
|
||||
ack_mode_auto_test() ->
|
||||
ack_mode_auto(_) ->
|
||||
Frame = #stomp_frame{headers = [{"ack", "auto"}]},
|
||||
{auto, _} = rabbit_stomp_util:ack_mode(Frame).
|
||||
|
||||
ack_mode_auto_default_test() ->
|
||||
ack_mode_auto_default(_) ->
|
||||
Frame = #stomp_frame{headers = []},
|
||||
{auto, _} = rabbit_stomp_util:ack_mode(Frame).
|
||||
|
||||
ack_mode_client_test() ->
|
||||
ack_mode_client(_) ->
|
||||
Frame = #stomp_frame{headers = [{"ack", "client"}]},
|
||||
{client, true} = rabbit_stomp_util:ack_mode(Frame).
|
||||
|
||||
ack_mode_client_individual_test() ->
|
||||
ack_mode_client_individual(_) ->
|
||||
Frame = #stomp_frame{headers = [{"ack", "client-individual"}]},
|
||||
{client, false} = rabbit_stomp_util:ack_mode(Frame).
|
||||
|
||||
consumer_tag_id_test() ->
|
||||
consumer_tag_id(_) ->
|
||||
Frame = #stomp_frame{headers = [{"id", "foo"}]},
|
||||
{ok, <<"T_foo">>, _} = rabbit_stomp_util:consumer_tag(Frame).
|
||||
|
||||
consumer_tag_destination_test() ->
|
||||
consumer_tag_destination(_) ->
|
||||
Frame = #stomp_frame{headers = [{"destination", "foo"}]},
|
||||
{ok, <<"Q_foo">>, _} = rabbit_stomp_util:consumer_tag(Frame).
|
||||
|
||||
consumer_tag_invalid_test() ->
|
||||
consumer_tag_invalid(_) ->
|
||||
Frame = #stomp_frame{headers = []},
|
||||
{error, missing_destination_header} = rabbit_stomp_util:consumer_tag(Frame).
|
||||
|
||||
|
|
@ -216,11 +241,11 @@ consumer_tag_invalid_test() ->
|
|||
%% Message ID Parsing Tests
|
||||
%%--------------------------------------------------------------------
|
||||
|
||||
parse_valid_message_id_test() ->
|
||||
parse_valid_message_id(_) ->
|
||||
{ok, {<<"bar">>, "abc", 123}} =
|
||||
rabbit_stomp_util:parse_message_id("bar@@abc@@123").
|
||||
|
||||
parse_invalid_message_id_test() ->
|
||||
parse_invalid_message_id(_) ->
|
||||
{error, invalid_message_id} =
|
||||
rabbit_stomp_util:parse_message_id("blah").
|
||||
|
||||
Loading…
Reference in New Issue