diff --git a/test/fixtures/epp_sessions.yml b/test/fixtures/epp_sessions.yml index cc40c8211..6f1173ca9 100644 --- a/test/fixtures/epp_sessions.yml +++ b/test/fixtures/epp_sessions.yml @@ -1,7 +1,7 @@ api_bestnames: - session_id: 1 + session_id: api_bestnames user: api_bestnames api_goodnames: - session_id: 2 + session_id: api_goodnames user: api_goodnames diff --git a/test/integration/epp/session/login_test.rb b/test/integration/epp/session/login_test.rb new file mode 100644 index 000000000..2be7e09a5 --- /dev/null +++ b/test/integration/epp/session/login_test.rb @@ -0,0 +1,60 @@ +require 'test_helper' + +class EppLoginTest < ActionDispatch::IntegrationTest + def test_correct_credentials + request_xml = <<-XML + + + + + test_bestnames + testtest + + 1.0 + en + + + https://epp.tld.ee/schema/domain-eis-1.0.xsd + https://epp.tld.ee/schema/contact-ee-1.1.xsd + urn:ietf:params:xml:ns:host-1.0 + urn:ietf:params:xml:ns:keyrelay-1.0 + + + + + XML + + post '/epp/session/login', { frame: request_xml }, { 'HTTP_COOKIE' => 'session=new_session_id' } + assert EppSession.find_by(session_id: 'new_session_id') + assert_equal users(:api_bestnames), EppSession.find_by(session_id: 'new_session_id').user + assert Nokogiri::XML(response.body).at_css('result[code="1000"]') + assert_equal 1, Nokogiri::XML(response.body).css('result').size + end + + def test_wrong_credentials + request_xml = <<-XML + + + + + non-existent + valid-but-wrong + + 1.0 + en + + + https://epp.tld.ee/schema/domain-eis-1.0.xsd + https://epp.tld.ee/schema/contact-ee-1.1.xsd + urn:ietf:params:xml:ns:host-1.0 + urn:ietf:params:xml:ns:keyrelay-1.0 + + + + + XML + + post '/epp/session/login', { frame: request_xml }, { 'HTTP_COOKIE' => 'session=any_random_string' } + assert Nokogiri::XML(response.body).at_css('result[code="2501"]') + end +end diff --git a/test/integration/epp/session/logout_test.rb b/test/integration/epp/session/logout_test.rb new file mode 100644 index 000000000..7237d4073 --- /dev/null +++ b/test/integration/epp/session/logout_test.rb @@ -0,0 +1,29 @@ +require 'test_helper' + +class EppLogoutTest < ActionDispatch::IntegrationTest + def setup + @request_xml = <<-XML + + + + + + + XML + + post '/epp/session/logout', { frame: @request_xml }, { 'HTTP_COOKIE' => 'session=api_bestnames' } + end + + def test_success_response + assert Nokogiri::XML(response.body).at_css('result[code="1500"]') + assert_equal 1, Nokogiri::XML(response.body).css('result').size + end + + def test_ends_current_session + assert_nil EppSession.find_by(session_id: 'api_bestnames') + end + + def test_keeps_other_sessions_intact + assert EppSession.find_by(session_id: 'api_goodnames') + end +end