From ca608a004b09068beb46f3070cbd9c4717ca68d8 Mon Sep 17 00:00:00 2001 From: Martin Lensment Date: Wed, 13 Aug 2014 13:53:14 +0300 Subject: [PATCH] Refactor --- spec/epp/domain_spec.rb | 45 +++++++++++++------ spec/epp/requests/domains/create_reserved.xml | 23 ---------- .../domains/create_w_invalid_nameservers.xml | 24 ---------- .../domains/create_w_invalid_period.xml | 24 ---------- .../domains/create_w_period_in_days.xml | 24 ---------- .../domains/create_w_too_many_nameservers.xml | 36 --------------- .../requests/domains/create_wo_contacts.xml | 21 --------- .../create_wo_contacts_and_registrant.xml | 20 --------- .../domains/create_wo_nameservers.xml | 18 -------- spec/support/epp.rb | 21 ++++----- 10 files changed, 42 insertions(+), 214 deletions(-) delete mode 100644 spec/epp/requests/domains/create_reserved.xml delete mode 100644 spec/epp/requests/domains/create_w_invalid_nameservers.xml delete mode 100644 spec/epp/requests/domains/create_w_invalid_period.xml delete mode 100644 spec/epp/requests/domains/create_w_period_in_days.xml delete mode 100644 spec/epp/requests/domains/create_w_too_many_nameservers.xml delete mode 100644 spec/epp/requests/domains/create_wo_contacts.xml delete mode 100644 spec/epp/requests/domains/create_wo_contacts_and_registrant.xml delete mode 100644 spec/epp/requests/domains/create_wo_nameservers.xml diff --git a/spec/epp/domain_spec.rb b/spec/epp/domain_spec.rb index 592a7c8ec..a58f84550 100644 --- a/spec/epp/domain_spec.rb +++ b/spec/epp/domain_spec.rb @@ -9,7 +9,7 @@ describe 'EPP Domain', epp: true do it 'returns error if contact does not exists' do Fabricate(:contact, code: 'jd1234') - response = epp_request('domains/create.xml') + response = epp_request(domain_create_xml, :xml) expect(response[:results][0][:result_code]).to eq('2303') expect(response[:results][0][:msg]).to eq('Contact was not found') expect(response[:results][0][:value]).to eq('sh8013') @@ -33,7 +33,7 @@ describe 'EPP Domain', epp: true do } it 'creates a domain' do - response = epp_request('domains/create.xml') + response = epp_request(domain_create_xml, :xml) expect(response[:result_code]).to eq('1000') expect(response[:msg]).to eq('Command completed successfully') expect(response[:clTRID]).to eq('ABC-12345') @@ -46,8 +46,8 @@ describe 'EPP Domain', epp: true do end it 'does not create duplicate domain' do - epp_request('domains/create.xml') - response = epp_request('domains/create.xml') + epp_request(domain_create_xml, :xml) + response = epp_request(domain_create_xml, :xml) expect(response[:result_code]).to eq('2302') expect(response[:msg]).to eq('Domain name already exists') expect(response[:clTRID]).to eq('ABC-12345') @@ -55,14 +55,19 @@ describe 'EPP Domain', epp: true do it 'does not create reserved domain' do Fabricate(:reserved_domain) - response = epp_request('domains/create_reserved.xml') + + xml = domain_create_xml(name: '1162.ee') + + response = epp_request(xml, :xml) expect(response[:result_code]).to eq('2302') expect(response[:msg]).to eq('Domain name is reserved or restricted') expect(response[:clTRID]).to eq('ABC-12345') end it 'does not create domain without contacts and registrant' do - response = epp_request('domains/create_wo_contacts_and_registrant.xml') + xml = domain_create_xml(contacts: [], registrant: false) + + response = epp_request(xml, :xml) expect(response[:results][0][:result_code]).to eq('2003') expect(response[:results][0][:msg]).to eq('Required parameter missing: contact') @@ -71,24 +76,30 @@ describe 'EPP Domain', epp: true do end it 'does not create domain without nameservers' do - response = epp_request('domains/create_wo_nameservers.xml') + xml = domain_create_xml(nameservers: []) + response = epp_request(xml, :xml) expect(response[:result_code]).to eq('2003') expect(response[:msg]).to eq('Required parameter missing: ns') end it 'does not create domain with too many nameservers' do - response = epp_request('domains/create_w_too_many_nameservers.xml') + nameservers = [] + 14.times {|i| nameservers << {hostObj: "ns#{i}.example.net"}} + xml = domain_create_xml(nameservers: nameservers) + + response = epp_request(xml, :xml) expect(response[:result_code]).to eq('2004') expect(response[:msg]).to eq('Nameservers count must be between 1-13') end it 'returns error when invalid nameservers are present' do - response = epp_request('domains/create_w_invalid_nameservers.xml') + xml = domain_create_xml(nameservers: [{hostObj: 'invalid1-'}, {hostObj: '-invalid2'}]) + + response = epp_request(xml, :xml) expect(response[:result_code]).to eq('2005') expect(response[:msg]).to eq('Hostname is invalid') end - it 'creates domain with nameservers with ips' do response = epp_request('domains/create_w_host_attrs.xml') expect(Domain.first.nameservers.count).to eq(2) @@ -103,17 +114,21 @@ describe 'EPP Domain', epp: true do end it 'creates a domain with period in days' do - response = epp_request('domains/create_w_period_in_days.xml') + xml = domain_create_xml(period_value: 365, period_unit: 'd') + + response = epp_request(xml, :xml) expect(response[:result_code]).to eq('1000') expect(response[:msg]).to eq('Command completed successfully') expect(Domain.first.valid_to).to eq(Date.today + 1.year) end it 'does not create a domain with invalid period' do - response = epp_request('domains/create_w_invalid_period.xml') + xml = domain_create_xml(period_value: 367, period_unit: 'd') + + response = epp_request(xml, :xml) expect(response[:results][0][:result_code]).to eq('2004') expect(response[:results][0][:msg]).to eq('Period must add up to 1, 2 or 3 years') - expect(response[:results][0][:value]).to eq('843') + expect(response[:results][0][:value]).to eq('367') end end @@ -138,7 +153,9 @@ describe 'EPP Domain', epp: true do end it 'does not create a domain without admin contact' do - response = epp_request('domains/create_wo_contacts.xml') + xml = domain_create_xml(contacts: []) + + response = epp_request(xml, :xml) expect(response[:result_code]).to eq('2003') expect(response[:msg]).to eq('Required parameter missing: contact') expect(response[:clTRID]).to eq('ABC-12345') diff --git a/spec/epp/requests/domains/create_reserved.xml b/spec/epp/requests/domains/create_reserved.xml deleted file mode 100644 index 681261d91..000000000 --- a/spec/epp/requests/domains/create_reserved.xml +++ /dev/null @@ -1,23 +0,0 @@ - - - - - - 1162.ee - 1 - - ns1.example.net - ns2.example.net - - jd1234 - sh8013 - sh8013 - - 2fooBAR - - - - ABC-12345 - - diff --git a/spec/epp/requests/domains/create_w_invalid_nameservers.xml b/spec/epp/requests/domains/create_w_invalid_nameservers.xml deleted file mode 100644 index 7569ff629..000000000 --- a/spec/epp/requests/domains/create_w_invalid_nameservers.xml +++ /dev/null @@ -1,24 +0,0 @@ - - - - - - example.ee - 1 - - invalid1- - -invalid2 - - jd1234 - sh8013 - sh8013 - sh801333 - - 2fooBAR - - - - ABC-12345 - - diff --git a/spec/epp/requests/domains/create_w_invalid_period.xml b/spec/epp/requests/domains/create_w_invalid_period.xml deleted file mode 100644 index 6d790db36..000000000 --- a/spec/epp/requests/domains/create_w_invalid_period.xml +++ /dev/null @@ -1,24 +0,0 @@ - - - - - - example.ee - 843 - - ns1.example.net - ns2.example.net - - jd1234 - sh8013 - sh8013 - sh801333 - - 2fooBAR - - - - ABC-12345 - - diff --git a/spec/epp/requests/domains/create_w_period_in_days.xml b/spec/epp/requests/domains/create_w_period_in_days.xml deleted file mode 100644 index e5567b66c..000000000 --- a/spec/epp/requests/domains/create_w_period_in_days.xml +++ /dev/null @@ -1,24 +0,0 @@ - - - - - - example.ee - 365 - - ns1.example.net - ns2.example.net - - jd1234 - sh8013 - sh8013 - sh801333 - - 2fooBAR - - - - ABC-12345 - - diff --git a/spec/epp/requests/domains/create_w_too_many_nameservers.xml b/spec/epp/requests/domains/create_w_too_many_nameservers.xml deleted file mode 100644 index 110cc66ed..000000000 --- a/spec/epp/requests/domains/create_w_too_many_nameservers.xml +++ /dev/null @@ -1,36 +0,0 @@ - - - - - - example.ee - 1 - - ns1.example.net - ns2.example.net - ns3.example.net - ns4.example.net - ns5.example.net - ns6.example.net - ns7.example.net - ns8.example.net - ns9.example.net - ns10.example.net - ns11.example.net - ns12.example.net - ns13.example.net - ns14.example.net - - jd1234 - sh8013 - sh8013 - sh801333 - - 2fooBAR - - - - ABC-12345 - - diff --git a/spec/epp/requests/domains/create_wo_contacts.xml b/spec/epp/requests/domains/create_wo_contacts.xml deleted file mode 100644 index 18c2e8dc4..000000000 --- a/spec/epp/requests/domains/create_wo_contacts.xml +++ /dev/null @@ -1,21 +0,0 @@ - - - - - - example.ee - 1 - - ns1.example.net - ns2.example.net - - jd1234 - - 2fooBAR - - - - ABC-12345 - - diff --git a/spec/epp/requests/domains/create_wo_contacts_and_registrant.xml b/spec/epp/requests/domains/create_wo_contacts_and_registrant.xml deleted file mode 100644 index 222bb7837..000000000 --- a/spec/epp/requests/domains/create_wo_contacts_and_registrant.xml +++ /dev/null @@ -1,20 +0,0 @@ - - - - - - example.ee - 1 - - ns1.example.net - ns2.example.net - - - 2fooBAR - - - - ABC-12345 - - diff --git a/spec/epp/requests/domains/create_wo_nameservers.xml b/spec/epp/requests/domains/create_wo_nameservers.xml deleted file mode 100644 index 4752f80cd..000000000 --- a/spec/epp/requests/domains/create_wo_nameservers.xml +++ /dev/null @@ -1,18 +0,0 @@ - - - - - - example.ee - 1 - jd1234 - sh8013 - - 2fooBAR - - - - ABC-12345 - - diff --git a/spec/support/epp.rb b/spec/support/epp.rb index 0b0b1a1de..e2f27225f 100644 --- a/spec/support/epp.rb +++ b/spec/support/epp.rb @@ -4,9 +4,10 @@ module Epp end # handles connection and login automatically - def epp_request(filename) + def epp_request(data, type=:filename) begin - parse_response(server.request(read_body(filename))) + return parse_response(server.request(read_body(data))) if type == :filename + return parse_response(server.request(data)) rescue Exception => e e end @@ -44,8 +45,8 @@ module Epp # THIS FEATURE IS EXPERIMENTAL AND NOT IN USE ATM - def domain_create_template(xml_params={}) - xml_params[:nameservers] = xml_params[:ns] || [{hostObj: 'ns1.example.net'}, {hostObj: 'ns2.example.net'}] + def domain_create_xml(xml_params={}) + xml_params[:nameservers] = xml_params[:nameservers] || [{hostObj: 'ns1.example.net'}, {hostObj: 'ns2.example.net'}] xml_params[:contacts] = xml_params[:contacts] || [ {contact_value: 'sh8013', contact_type: 'admin'}, {contact_value: 'sh8013', contact_type: 'tech'}, @@ -62,25 +63,25 @@ module Epp xml.create do xml.tag!('domain:create', 'xmlns:domain' => 'urn:ietf:params:xml:ns:domain-1.0') do - xml.tag!('domain:name', (xml_params[:name] || 'expample.ee')) + xml.tag!('domain:name', (xml_params[:name] || 'expample.ee')) if xml_params[:name] != false - xml.tag!('domain:period', (xml_params[:period_value] || 1), 'unit' => (xml_params[:period_unit] || 'y')) + xml.tag!('domain:period', (xml_params[:period_value] || 1), 'unit' => (xml_params[:period_unit] || 'y')) if xml_params[:period] != false xml.tag!('domain:ns') do xml_params[:nameservers].each do |x| xml.tag!('domain:hostObj', x[:hostObj]) end - end + end if xml_params[:nameservers].any? - xml.tag!('domain:registrant', (xml_params[:registrant] || 'jd1234')) + xml.tag!('domain:registrant', (xml_params[:registrant] || 'jd1234')) if xml_params[:registrant] != false xml_params[:contacts].each do |x| xml.tag!('domain:contact', x[:contact_value], 'type' => (x[:contact_type])) - end + end if xml_params[:contacts].any? xml.tag!('domain:authInfo') do xml.tag!('domain:pw', xml_params[:pw] || '2fooBAR') - end + end if xml_params[:authInfo] != false end end xml.clTRID 'ABC-12345'