diff --git a/apps/epp_proxy/priv/test_backend_app/backend_server.rb b/apps/epp_proxy/priv/test_backend_app/backend_server.rb index 3aaff6f..0a014d6 100644 --- a/apps/epp_proxy/priv/test_backend_app/backend_server.rb +++ b/apps/epp_proxy/priv/test_backend_app/backend_server.rb @@ -21,7 +21,8 @@ class BackendServer < Roda end r.on "command" do - r.post "create" do + r.post "poll" do + render("command/poll") end end diff --git a/apps/epp_proxy/priv/test_backend_app/views/command/poll.erb b/apps/epp_proxy/priv/test_backend_app/views/command/poll.erb new file mode 100644 index 0000000..001c25f --- /dev/null +++ b/apps/epp_proxy/priv/test_backend_app/views/command/poll.erb @@ -0,0 +1,12 @@ + + + + + Command completed successfully; no messages + + + foo bar baz + ccReg-8688842425 + + + diff --git a/apps/epp_proxy/test/tls_client_SUITE.erl b/apps/epp_proxy/test/tls_client_SUITE.erl index ea06f15..f934821 100644 --- a/apps/epp_proxy/test/tls_client_SUITE.erl +++ b/apps/epp_proxy/test/tls_client_SUITE.erl @@ -7,12 +7,14 @@ -export([init_per_suite/1, end_per_suite/1]). -export([frame_size_test_case/1, greetings_test_case/1, - session_test_case/1]). + session_test_case/1, + command_test_case/1]). all() -> [frame_size_test_case, greetings_test_case, - session_test_case]. + session_test_case, + command_test_case]. init_per_suite(Config) -> application:ensure_all_started(epp_proxy), @@ -48,27 +50,7 @@ session_test_case(Config) -> Options = proplists:get_value(ssl_options, Config), {ok, Socket} = ssl:connect("localhost", 1443, Options, 2000), _Data = receive_data(Socket), - LoginCommand = - <<"\n" - "\n" - "\n" - "\n" - "test_bestnames\n" - "testtest\n" - "\n" - "1.0\n" - "en\n" - "\n" - "\n" - "https://epp.tld.ee/schema/domain-eis-1.0.xsd\n" - "https://epp.tld.ee/schema/contact-ee-1.1.xsd\n" - "urn:ietf:params:xml:ns:host-1.0\n" - "urn:ietf:params:xml:ns:keyrelay-1.0\n" - "\n" - "\n" - "\n" - "\n">>, - ok = send_data(LoginCommand, Socket), + ok = send_data(login_command(), Socket), LoginResponse = receive_data(Socket), match_data(LoginResponse, "Command completed successfully"), match_data(LoginResponse, "ccReg-5886259930"), @@ -100,6 +82,26 @@ session_test_case(Config) -> {error, closed} = receive_data(Socket), ok. +command_test_case(Config) -> + Options = proplists:get_value(ssl_options, Config), + {ok, Socket} = ssl:connect("localhost", 1443, Options, 2000), + _Data = receive_data(Socket), + ok = send_data(login_command(), Socket), + _LoginResponse = receive_data(Socket), + PollCommand = + <<"\n" + "\n" + "\n" + "\n" + "foo bar baz\n" + "\n" + "\n">>, + ok = send_data(PollCommand, Socket), + PollResponse = receive_data(Socket), + match_data(PollResponse, + "Command completed successfully; no messages"), + ok. + %% Helper functions: length_of_data(Data) -> EPPEnvelope = binary:part(Data, {0, 4}), @@ -124,3 +126,24 @@ receive_data(Socket) -> match_data(Data, Pattern) -> {ok, MatchPattern} = re:compile(Pattern), {match, _Captured} = re:run(Data, MatchPattern). + +login_command() -> + <<"\n" + "\n" + "\n" + "\n" + "test_bestnames\n" + "testtest\n" + "\n" + "1.0\n" + "en\n" + "\n" + "\n" + "https://epp.tld.ee/schema/domain-eis-1.0.xsd\n" + "https://epp.tld.ee/schema/contact-ee-1.1.xsd\n" + "urn:ietf:params:xml:ns:host-1.0\n" + "urn:ietf:params:xml:ns:keyrelay-1.0\n" + "\n" + "\n" + "\n" + "\n">>.