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 0a014d6..e866816 100644
--- a/apps/epp_proxy/priv/test_backend_app/backend_server.rb
+++ b/apps/epp_proxy/priv/test_backend_app/backend_server.rb
@@ -27,7 +27,11 @@ class BackendServer < Roda
end
- r.on "error" do
+ r.get "error" do
+ @code = r.params['code']
+ @msg = r.params['msg']
+
+ render("error")
end
end
end
diff --git a/apps/epp_proxy/priv/test_backend_app/views/error.erb b/apps/epp_proxy/priv/test_backend_app/views/error.erb
new file mode 100644
index 0000000..60c11ab
--- /dev/null
+++ b/apps/epp_proxy/priv/test_backend_app/views/error.erb
@@ -0,0 +1,13 @@
+
+
+
+
+
+ <%= @msg %>
+
+
+
+ ccReg-4018856528
+
+
+
diff --git a/apps/epp_proxy/test/tls_client_SUITE.erl b/apps/epp_proxy/test/tls_client_SUITE.erl
index b761b80..0c60217 100644
--- a/apps/epp_proxy/test/tls_client_SUITE.erl
+++ b/apps/epp_proxy/test/tls_client_SUITE.erl
@@ -9,14 +9,16 @@
greetings_test_case/1,
session_test_case/1,
valid_command_test_case/1,
- invalid_command_test_case/1]).
+ invalid_command_test_case/1,
+ error_test_case/1]).
all() ->
[frame_size_test_case,
greetings_test_case,
session_test_case,
valid_command_test_case,
- invalid_command_test_case].
+ invalid_command_test_case,
+ error_test_case].
init_per_suite(Config) ->
application:ensure_all_started(epp_proxy),
@@ -112,7 +114,7 @@ invalid_command_test_case(Config) ->
_Data = receive_data(Socket),
ok = send_data(login_command(), Socket),
_LoginResponse = receive_data(Socket),
- PollCommand =
+ InvalidCommand =
<<"\n"
"\n"
"\n"
@@ -120,10 +122,24 @@ invalid_command_test_case(Config) ->
"foo bar baz\n"
"\n"
"\n">>,
- ok = send_data(PollCommand, Socket),
+ ok = send_data(InvalidCommand, Socket),
{error, closed} = receive_data(Socket),
ok.
+error_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),
+ InvalidXml =
+ <<"\n">>,
+ ok = send_data(InvalidXml, Socket),
+ ErrorResponse = receive_data(Socket),
+ match_data(ErrorResponse,
+ "Command syntax error."),
+ ok.
+
%% Helper functions:
length_of_data(Data) ->
EPPEnvelope = binary:part(Data, {0, 4}),