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">>.