1111 valid_command_test_case /1 ,
1212 long_message_test_case /1 ,
1313 invalid_command_test_case /1 ,
14+ missing_command_test_case /1 ,
1415 error_test_case /1 ]).
1516
1617all () ->
@@ -20,6 +21,7 @@ all() ->
2021 valid_command_test_case ,
2122 long_message_test_case ,
2223 invalid_command_test_case ,
24+ missing_command_test_case ,
2325 error_test_case ].
2426
2527init_per_suite (Config ) ->
@@ -133,8 +135,7 @@ long_message_test_case(Config) ->
133135 " Command completed successfully; no messages" ),
134136 ok .
135137
136- % % Sending an invalid command frame should close the connection.
137- % % It also crashes the process.
138+ % % Sending an invalid command frame should return a canned response.
138139invalid_command_test_case (Config ) ->
139140 Options = proplists :get_value (tcp_options , Config ),
140141 {ok , Socket } = gen_tcp :connect (" localhost" , 1180 , Options , 2000 ),
@@ -150,7 +151,26 @@ invalid_command_test_case(Config) ->
150151 " </command>\n "
151152 " </epp>\n " >>,
152153 ok = send_data (InvalidCommand , Socket ),
153- {error , closed } = receive_data (Socket ),
154+ ErrorResponse = receive_data (Socket ),
155+ match_data (ErrorResponse ,
156+ " Unknown command." ),
157+ ok .
158+
159+ % % Sending a valid XML without command frame should return a canned response.
160+ missing_command_test_case (Config ) ->
161+ Options = proplists :get_value (tcp_options , Config ),
162+ {ok , Socket } = gen_tcp :connect (" localhost" , 1180 , Options , 2000 ),
163+ _Data = receive_data (Socket ),
164+ ok = send_data (login_command (), Socket ),
165+ _LoginResponse = receive_data (Socket ),
166+ InvalidCommand =
167+ <<" <?xml version=\" 1.0\" encoding=\" UTF-8\" standalone=\" no\" ?>\n "
168+ " <epp xmlns=\" https://epp.tld.ee/schema/epp-ee-1.0.xsd\" >\n "
169+ " </epp>\n " >>,
170+ ok = send_data (InvalidCommand , Socket ),
171+ ErrorResponse = receive_data (Socket ),
172+ match_data (ErrorResponse ,
173+ " Unknown command." ),
154174 ok .
155175
156176error_test_case (Config ) ->
0 commit comments