mirror of
https://github.com/internetee/epp_proxy.git
synced 2025-08-15 03:53:48 +02:00
Add test case for command
This commit is contained in:
parent
d8e03ed484
commit
31fa20a9a6
3 changed files with 60 additions and 24 deletions
|
@ -21,7 +21,8 @@ class BackendServer < Roda
|
||||||
end
|
end
|
||||||
|
|
||||||
r.on "command" do
|
r.on "command" do
|
||||||
r.post "create" do
|
r.post "poll" do
|
||||||
|
render("command/poll")
|
||||||
end
|
end
|
||||||
|
|
||||||
end
|
end
|
||||||
|
|
12
apps/epp_proxy/priv/test_backend_app/views/command/poll.erb
Normal file
12
apps/epp_proxy/priv/test_backend_app/views/command/poll.erb
Normal file
|
@ -0,0 +1,12 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<epp xmlns="https://epp.tld.ee/schema/epp-ee-1.0.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="lib/schemas/epp-ee-1.0.xsd">
|
||||||
|
<response>
|
||||||
|
<result code="1300">
|
||||||
|
<msg>Command completed successfully; no messages</msg>
|
||||||
|
</result>
|
||||||
|
<trID>
|
||||||
|
<clTRID>foo bar baz</clTRID>
|
||||||
|
<svTRID>ccReg-8688842425</svTRID>
|
||||||
|
</trID>
|
||||||
|
</response>
|
||||||
|
</epp>
|
|
@ -7,12 +7,14 @@
|
||||||
-export([init_per_suite/1, end_per_suite/1]).
|
-export([init_per_suite/1, end_per_suite/1]).
|
||||||
-export([frame_size_test_case/1,
|
-export([frame_size_test_case/1,
|
||||||
greetings_test_case/1,
|
greetings_test_case/1,
|
||||||
session_test_case/1]).
|
session_test_case/1,
|
||||||
|
command_test_case/1]).
|
||||||
|
|
||||||
all() ->
|
all() ->
|
||||||
[frame_size_test_case,
|
[frame_size_test_case,
|
||||||
greetings_test_case,
|
greetings_test_case,
|
||||||
session_test_case].
|
session_test_case,
|
||||||
|
command_test_case].
|
||||||
|
|
||||||
init_per_suite(Config) ->
|
init_per_suite(Config) ->
|
||||||
application:ensure_all_started(epp_proxy),
|
application:ensure_all_started(epp_proxy),
|
||||||
|
@ -48,27 +50,7 @@ session_test_case(Config) ->
|
||||||
Options = proplists:get_value(ssl_options, Config),
|
Options = proplists:get_value(ssl_options, Config),
|
||||||
{ok, Socket} = ssl:connect("localhost", 1443, Options, 2000),
|
{ok, Socket} = ssl:connect("localhost", 1443, Options, 2000),
|
||||||
_Data = receive_data(Socket),
|
_Data = receive_data(Socket),
|
||||||
LoginCommand =
|
ok = send_data(login_command(), Socket),
|
||||||
<<"<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>\n"
|
|
||||||
"<epp xmlns=\"https://epp.tld.ee/schema/epp-ee-1.0.xsd\">\n"
|
|
||||||
"<command>\n"
|
|
||||||
"<login>\n"
|
|
||||||
"<clID>test_bestnames</clID>\n"
|
|
||||||
"<pw>testtest</pw>\n"
|
|
||||||
"<options>\n"
|
|
||||||
"<version>1.0</version>\n"
|
|
||||||
"<lang>en</lang>\n"
|
|
||||||
"</options>\n"
|
|
||||||
"<svcs>\n"
|
|
||||||
"<objURI>https://epp.tld.ee/schema/domain-eis-1.0.xsd</objURI>\n"
|
|
||||||
"<objURI>https://epp.tld.ee/schema/contact-ee-1.1.xsd</objURI>\n"
|
|
||||||
"<objURI>urn:ietf:params:xml:ns:host-1.0</objURI>\n"
|
|
||||||
"<objURI>urn:ietf:params:xml:ns:keyrelay-1.0</objURI>\n"
|
|
||||||
"</svcs>\n"
|
|
||||||
"</login>\n"
|
|
||||||
"</command>\n"
|
|
||||||
"</epp>\n">>,
|
|
||||||
ok = send_data(LoginCommand, Socket),
|
|
||||||
LoginResponse = receive_data(Socket),
|
LoginResponse = receive_data(Socket),
|
||||||
match_data(LoginResponse, "Command completed successfully"),
|
match_data(LoginResponse, "Command completed successfully"),
|
||||||
match_data(LoginResponse, "ccReg-5886259930"),
|
match_data(LoginResponse, "ccReg-5886259930"),
|
||||||
|
@ -100,6 +82,26 @@ session_test_case(Config) ->
|
||||||
{error, closed} = receive_data(Socket),
|
{error, closed} = receive_data(Socket),
|
||||||
ok.
|
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 =
|
||||||
|
<<"<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>\n"
|
||||||
|
"<epp xmlns=\"https://epp.tld.ee/schema/epp-ee-1.0.xsd\">\n"
|
||||||
|
"<command>\n"
|
||||||
|
"<poll op=\"req\"/>\n"
|
||||||
|
"<clTRID>foo bar baz</clTRID>\n"
|
||||||
|
"</command>\n"
|
||||||
|
"</epp>\n">>,
|
||||||
|
ok = send_data(PollCommand, Socket),
|
||||||
|
PollResponse = receive_data(Socket),
|
||||||
|
match_data(PollResponse,
|
||||||
|
"Command completed successfully; no messages"),
|
||||||
|
ok.
|
||||||
|
|
||||||
%% Helper functions:
|
%% Helper functions:
|
||||||
length_of_data(Data) ->
|
length_of_data(Data) ->
|
||||||
EPPEnvelope = binary:part(Data, {0, 4}),
|
EPPEnvelope = binary:part(Data, {0, 4}),
|
||||||
|
@ -124,3 +126,24 @@ receive_data(Socket) ->
|
||||||
match_data(Data, Pattern) ->
|
match_data(Data, Pattern) ->
|
||||||
{ok, MatchPattern} = re:compile(Pattern),
|
{ok, MatchPattern} = re:compile(Pattern),
|
||||||
{match, _Captured} = re:run(Data, MatchPattern).
|
{match, _Captured} = re:run(Data, MatchPattern).
|
||||||
|
|
||||||
|
login_command() ->
|
||||||
|
<<"<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>\n"
|
||||||
|
"<epp xmlns=\"https://epp.tld.ee/schema/epp-ee-1.0.xsd\">\n"
|
||||||
|
"<command>\n"
|
||||||
|
"<login>\n"
|
||||||
|
"<clID>test_bestnames</clID>\n"
|
||||||
|
"<pw>testtest</pw>\n"
|
||||||
|
"<options>\n"
|
||||||
|
"<version>1.0</version>\n"
|
||||||
|
"<lang>en</lang>\n"
|
||||||
|
"</options>\n"
|
||||||
|
"<svcs>\n"
|
||||||
|
"<objURI>https://epp.tld.ee/schema/domain-eis-1.0.xsd</objURI>\n"
|
||||||
|
"<objURI>https://epp.tld.ee/schema/contact-ee-1.1.xsd</objURI>\n"
|
||||||
|
"<objURI>urn:ietf:params:xml:ns:host-1.0</objURI>\n"
|
||||||
|
"<objURI>urn:ietf:params:xml:ns:keyrelay-1.0</objURI>\n"
|
||||||
|
"</svcs>\n"
|
||||||
|
"</login>\n"
|
||||||
|
"</command>\n"
|
||||||
|
"</epp>\n">>.
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue