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