diff --git a/test/integration/epp/domain/create/reserved_test.rb b/test/integration/epp/domain/create/reserved_test.rb new file mode 100644 index 000000000..1a57cd220 --- /dev/null +++ b/test/integration/epp/domain/create/reserved_test.rb @@ -0,0 +1,142 @@ +require 'test_helper' + +class EppDomainCreateReservedTest < ApplicationIntegrationTest + setup do + @reserved_domain = reserved_domains(:one) + end + + def test_registers_reserved_domain_with_correct_registration_code + assert_equal 'reserved.test', @reserved_domain.name + assert_equal 'reserved-001', @reserved_domain.registration_code + + request_xml = <<-XML + + + + + + reserved.test + john-001 + + + + + #{'test' * 2000} + + reserved-001 + + + + + + XML + + assert_difference 'Domain.count' do + post '/epp/command/create', { frame: request_xml }, 'HTTP_COOKIE' => 'session=api_bestnames' + end + + response_xml = Nokogiri::XML(response.body) + assert_equal '1000', response_xml.at_css('result')[:code] + assert_equal 1, Nokogiri::XML(response.body).css('result').size + end + + def test_registering_reserved_domain_regenerates_registration_code + assert_equal 'reserved.test', @reserved_domain.name + assert_equal 'reserved-001', @reserved_domain.registration_code + + request_xml = <<-XML + + + + + + reserved.test + john-001 + + + + + #{'test' * 2000} + + reserved-001 + + + + + + XML + + post '/epp/command/create', { frame: request_xml }, 'HTTP_COOKIE' => 'session=api_bestnames' + @reserved_domain.reload + + assert_not_equal 'reserved-001', @reserved_domain.registration_code + end + + def test_domain_cannot_be_registered_with_wrong_registration_code + assert_equal 'reserved.test', @reserved_domain.name + assert_equal 'reserved-001', @reserved_domain.registration_code + + request_xml = <<-XML + + + + + + reserved.test + john-001 + + + + + #{'test' * 2000} + + wrong + + + + + + XML + + assert_no_difference 'Domain.count' do + post '/epp/command/create', { frame: request_xml }, 'HTTP_COOKIE' => 'session=api_bestnames' + end + + response_xml = Nokogiri::XML(response.body) + assert_equal '2202', response_xml.at_css('result')[:code] + assert_equal 'Invalid authorization information; invalid reserved>pw value', + response_xml.at_css('result msg').text + end + + def test_domain_cannot_be_registered_without_registration_code + assert_equal 'reserved.test', @reserved_domain.name + + request_xml = <<-XML + + + + + + reserved.test + john-001 + + + + + #{'test' * 2000} + + + + + XML + + assert_no_difference 'Domain.count' do + post '/epp/command/create', { frame: request_xml }, 'HTTP_COOKIE' => 'session=api_bestnames' + end + + response_xml = Nokogiri::XML(response.body) + assert_equal '2003', response_xml.at_css('result')[:code] + assert_equal 'Required parameter missing; reserved>pw element required for reserved domains', + response_xml.at_css('result msg').text + end +end