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'