mirror of
https://github.com/internetee/registry.git
synced 2025-07-26 04:28:27 +02:00
Upgrade epp-xml
This commit is contained in:
parent
9d318644ed
commit
9feea600d8
10 changed files with 72 additions and 53 deletions
2
Gemfile
2
Gemfile
|
@ -96,7 +96,7 @@ group :development, :test do
|
||||||
gem 'epp', '~> 1.4.0'
|
gem 'epp', '~> 1.4.0'
|
||||||
|
|
||||||
# EPP XMLs
|
# EPP XMLs
|
||||||
gem 'epp-xml', '~> 0.8.1'
|
gem 'epp-xml', '~> 0.10.1'
|
||||||
|
|
||||||
# Replacement for fixtures
|
# Replacement for fixtures
|
||||||
gem 'fabrication', '~> 2.11.3'
|
gem 'fabrication', '~> 2.11.3'
|
||||||
|
|
|
@ -106,7 +106,7 @@ GEM
|
||||||
epp (1.4.0)
|
epp (1.4.0)
|
||||||
hpricot
|
hpricot
|
||||||
libxml-ruby
|
libxml-ruby
|
||||||
epp-xml (0.8.1)
|
epp-xml (0.10.1)
|
||||||
activesupport (~> 4.1)
|
activesupport (~> 4.1)
|
||||||
builder (~> 3.2)
|
builder (~> 3.2)
|
||||||
equalizer (0.0.9)
|
equalizer (0.0.9)
|
||||||
|
@ -177,7 +177,7 @@ GEM
|
||||||
open4 (~> 1.3.4)
|
open4 (~> 1.3.4)
|
||||||
rake
|
rake
|
||||||
mini_portile (0.6.0)
|
mini_portile (0.6.0)
|
||||||
minitest (5.4.3)
|
minitest (5.5.0)
|
||||||
multi_json (1.10.1)
|
multi_json (1.10.1)
|
||||||
nokogiri (1.6.2.1)
|
nokogiri (1.6.2.1)
|
||||||
mini_portile (= 0.6.0)
|
mini_portile (= 0.6.0)
|
||||||
|
@ -384,7 +384,7 @@ DEPENDENCIES
|
||||||
delayed_job_active_record (~> 4.0.2)
|
delayed_job_active_record (~> 4.0.2)
|
||||||
devise (~> 3.3.0)
|
devise (~> 3.3.0)
|
||||||
epp (~> 1.4.0)
|
epp (~> 1.4.0)
|
||||||
epp-xml (~> 0.8.1)
|
epp-xml (~> 0.10.1)
|
||||||
fabrication (~> 2.11.3)
|
fabrication (~> 2.11.3)
|
||||||
faker (~> 1.3.0)
|
faker (~> 1.3.0)
|
||||||
guard (~> 2.6.1)
|
guard (~> 2.6.1)
|
||||||
|
|
|
@ -15,6 +15,7 @@ describe 'EPP Contact', epp: true do
|
||||||
let(:server_elkdata) { Epp::Server.new({ server: 'localhost', tag: 'elkdata', password: 'ghyt9e4fu', port: 701 }) }
|
let(:server_elkdata) { Epp::Server.new({ server: 'localhost', tag: 'elkdata', password: 'ghyt9e4fu', port: 701 }) }
|
||||||
let(:elkdata) { Fabricate(:registrar, { name: 'Elkdata', reg_no: '123' }) }
|
let(:elkdata) { Fabricate(:registrar, { name: 'Elkdata', reg_no: '123' }) }
|
||||||
let(:zone) { Registrar.where(reg_no: '12345678').first || Fabricate(:registrar) }
|
let(:zone) { Registrar.where(reg_no: '12345678').first || Fabricate(:registrar) }
|
||||||
|
let(:epp_xml) { EppXml::Contact.new(cl_trid: 'ABC-12345') }
|
||||||
|
|
||||||
context 'with valid user' do
|
context 'with valid user' do
|
||||||
before(:each) do
|
before(:each) do
|
||||||
|
@ -27,7 +28,7 @@ describe 'EPP Contact', epp: true do
|
||||||
|
|
||||||
context 'create command' do
|
context 'create command' do
|
||||||
it 'fails if request xml is missing' do
|
it 'fails if request xml is missing' do
|
||||||
xml = EppXml::Contact.create
|
xml = epp_xml.create
|
||||||
response = epp_request(xml, :xml)
|
response = epp_request(xml, :xml)
|
||||||
expect(response[:results][0][:result_code]).to eq('2001')
|
expect(response[:results][0][:result_code]).to eq('2001')
|
||||||
|
|
||||||
|
@ -36,7 +37,7 @@ describe 'EPP Contact', epp: true do
|
||||||
end
|
end
|
||||||
|
|
||||||
it 'fails if request xml is missing' do
|
it 'fails if request xml is missing' do
|
||||||
xml = EppXml::Contact.create(
|
xml = epp_xml.create(
|
||||||
postalInfo: { addr: { value: nil } }
|
postalInfo: { addr: { value: nil } }
|
||||||
)
|
)
|
||||||
response = epp_request(xml, :xml)
|
response = epp_request(xml, :xml)
|
||||||
|
@ -145,7 +146,7 @@ describe 'EPP Contact', epp: true do
|
||||||
|
|
||||||
context 'update command' do
|
context 'update command' do
|
||||||
it 'fails if request is invalid' do
|
it 'fails if request is invalid' do
|
||||||
xml = EppXml::Contact.update
|
xml = epp_xml.update
|
||||||
response = epp_request(xml, :xml) # epp_request('contacts/update_missing_attr.xml')
|
response = epp_request(xml, :xml) # epp_request('contacts/update_missing_attr.xml')
|
||||||
|
|
||||||
expect(response[:results][0][:result_code]).to eq('2003')
|
expect(response[:results][0][:result_code]).to eq('2003')
|
||||||
|
@ -229,7 +230,7 @@ describe 'EPP Contact', epp: true do
|
||||||
|
|
||||||
context 'delete command' do
|
context 'delete command' do
|
||||||
it 'fails if request is invalid' do
|
it 'fails if request is invalid' do
|
||||||
xml = EppXml::Contact.delete({ uid: { value: '23123' } })
|
xml = epp_xml.delete({ uid: { value: '23123' } })
|
||||||
response = epp_request(xml, :xml)
|
response = epp_request(xml, :xml)
|
||||||
|
|
||||||
expect(response[:results][0][:result_code]).to eq('2003')
|
expect(response[:results][0][:result_code]).to eq('2003')
|
||||||
|
@ -276,7 +277,7 @@ describe 'EPP Contact', epp: true do
|
||||||
|
|
||||||
context 'check command' do
|
context 'check command' do
|
||||||
it 'fails if request is invalid' do
|
it 'fails if request is invalid' do
|
||||||
xml = EppXml::Contact.check({ uid: { value: '123asde' } })
|
xml = epp_xml.check({ uid: { value: '123asde' } })
|
||||||
response = epp_request(xml, :xml)
|
response = epp_request(xml, :xml)
|
||||||
|
|
||||||
expect(response[:results][0][:result_code]).to eq('2003')
|
expect(response[:results][0][:result_code]).to eq('2003')
|
||||||
|
@ -306,7 +307,7 @@ describe 'EPP Contact', epp: true do
|
||||||
@contact = Fabricate(:contact, registrar: zone, code: 'info-4444', name: 'Johnny Awesome', auth_info: 'asde',
|
@contact = Fabricate(:contact, registrar: zone, code: 'info-4444', name: 'Johnny Awesome', auth_info: 'asde',
|
||||||
address: Fabricate(:address), disclosure: Fabricate(:contact_disclosure, name: false))
|
address: Fabricate(:address), disclosure: Fabricate(:contact_disclosure, name: false))
|
||||||
|
|
||||||
xml = EppXml::Contact.info({ id: { value: @contact.code } })
|
xml = epp_xml.info({ id: { value: @contact.code } })
|
||||||
response = epp_request(xml, :xml, :zone)
|
response = epp_request(xml, :xml, :zone)
|
||||||
contact = response[:parsed].css('resData chkData')
|
contact = response[:parsed].css('resData chkData')
|
||||||
|
|
||||||
|
@ -319,7 +320,7 @@ describe 'EPP Contact', epp: true do
|
||||||
@contact = Fabricate(:contact, registrar: elkdata, code: 'info-4444', name: 'Johnny Awesome', auth_info: 'asde',
|
@contact = Fabricate(:contact, registrar: elkdata, code: 'info-4444', name: 'Johnny Awesome', auth_info: 'asde',
|
||||||
address: Fabricate(:address), disclosure: Fabricate(:contact_disclosure, name: false))
|
address: Fabricate(:address), disclosure: Fabricate(:contact_disclosure, name: false))
|
||||||
|
|
||||||
xml = EppXml::Contact.info({ id: { value: @contact.code }, authInfo: { pw: { value: 'asdesde' } } })
|
xml = epp_xml.info({ id: { value: @contact.code }, authInfo: { pw: { value: 'asdesde' } } })
|
||||||
response = epp_request(xml, :xml, :zone)
|
response = epp_request(xml, :xml, :zone)
|
||||||
|
|
||||||
expect(response[:result_code]).to eq('2200')
|
expect(response[:result_code]).to eq('2200')
|
||||||
|
@ -331,7 +332,7 @@ describe 'EPP Contact', epp: true do
|
||||||
name: 'Johnny Awesome', auth_info: 'password',
|
name: 'Johnny Awesome', auth_info: 'password',
|
||||||
address: Fabricate(:address), disclosure: Fabricate(:contact_disclosure, name: false))
|
address: Fabricate(:address), disclosure: Fabricate(:contact_disclosure, name: false))
|
||||||
|
|
||||||
xml = EppXml::Contact.info({ id: { value: @contact.code }, authInfo: { pw: { value: 'password' } } })
|
xml = epp_xml.info({ id: { value: @contact.code }, authInfo: { pw: { value: 'password' } } })
|
||||||
response = epp_request(xml, :xml, :zone)
|
response = epp_request(xml, :xml, :zone)
|
||||||
contact = response[:parsed].css('resData chkData')
|
contact = response[:parsed].css('resData chkData')
|
||||||
|
|
||||||
|
@ -345,7 +346,7 @@ describe 'EPP Contact', epp: true do
|
||||||
auth_info: 'password',
|
auth_info: 'password',
|
||||||
address: Fabricate(:address), disclosure: Fabricate(:contact_disclosure, name: false))
|
address: Fabricate(:address), disclosure: Fabricate(:contact_disclosure, name: false))
|
||||||
|
|
||||||
xml = EppXml::Contact.info({ id: { value: @contact.code } })
|
xml = epp_xml.info({ id: { value: @contact.code } })
|
||||||
response = epp_request(xml, :xml, :zone)
|
response = epp_request(xml, :xml, :zone)
|
||||||
contact = response[:parsed].css('resData chkData')
|
contact = response[:parsed].css('resData chkData')
|
||||||
|
|
||||||
|
@ -355,7 +356,7 @@ describe 'EPP Contact', epp: true do
|
||||||
end
|
end
|
||||||
|
|
||||||
it 'fails if request invalid' do
|
it 'fails if request invalid' do
|
||||||
response = epp_request(EppXml::Contact.info({ uid: { value: '123123' } }), :xml)
|
response = epp_request(epp_xml.info({ uid: { value: '123123' } }), :xml)
|
||||||
|
|
||||||
expect(response[:results][0][:result_code]).to eq('2003')
|
expect(response[:results][0][:result_code]).to eq('2003')
|
||||||
expect(response[:results][0][:msg]).to eq('Required parameter missing: id')
|
expect(response[:results][0][:msg]).to eq('Required parameter missing: id')
|
||||||
|
@ -373,7 +374,7 @@ describe 'EPP Contact', epp: true do
|
||||||
@contact = Fabricate(:contact, registrar: zone, code: 'info-4444', name: 'Johnny Awesome',
|
@contact = Fabricate(:contact, registrar: zone, code: 'info-4444', name: 'Johnny Awesome',
|
||||||
address: Fabricate(:address))
|
address: Fabricate(:address))
|
||||||
|
|
||||||
xml = EppXml::Contact.info(id: { value: @contact.code })
|
xml = epp_xml.info(id: { value: @contact.code })
|
||||||
response = epp_request(xml, :xml, :zone)
|
response = epp_request(xml, :xml, :zone)
|
||||||
contact = response[:parsed].css('resData chkData')
|
contact = response[:parsed].css('resData chkData')
|
||||||
|
|
||||||
|
@ -387,7 +388,7 @@ describe 'EPP Contact', epp: true do
|
||||||
Fabricate(:contact, code: 'info-4444', auth_info: '2fooBAR', registrar: elkdata,
|
Fabricate(:contact, code: 'info-4444', auth_info: '2fooBAR', registrar: elkdata,
|
||||||
disclosure: Fabricate(:contact_disclosure, name: true, email: false, phone: false))
|
disclosure: Fabricate(:contact_disclosure, name: true, email: false, phone: false))
|
||||||
|
|
||||||
xml = EppXml::Contact.info({ id: { value: 'info-4444' }, authInfo: { pw: { value: '2fooBAR' } } })
|
xml = epp_xml.info({ id: { value: 'info-4444' }, authInfo: { pw: { value: '2fooBAR' } } })
|
||||||
|
|
||||||
response = epp_request(xml, :xml, :zone)
|
response = epp_request(xml, :xml, :zone)
|
||||||
contact = response[:parsed].css('resData chkData')
|
contact = response[:parsed].css('resData chkData')
|
||||||
|
@ -404,7 +405,7 @@ describe 'EPP Contact', epp: true do
|
||||||
it 'doesn\'t display unassociated object without password' do
|
it 'doesn\'t display unassociated object without password' do
|
||||||
@contact = Fabricate(:contact, code: 'info-4444', registrar: zone)
|
@contact = Fabricate(:contact, code: 'info-4444', registrar: zone)
|
||||||
|
|
||||||
xml = EppXml::Contact.info(id: { value: @contact.code })
|
xml = epp_xml.info(id: { value: @contact.code })
|
||||||
response = epp_request(xml, :xml, :elkdata)
|
response = epp_request(xml, :xml, :elkdata)
|
||||||
expect(response[:result_code]).to eq('2003')
|
expect(response[:result_code]).to eq('2003')
|
||||||
expect(response[:msg]).to eq('Required parameter missing: pw')
|
expect(response[:msg]).to eq('Required parameter missing: pw')
|
||||||
|
@ -413,7 +414,7 @@ describe 'EPP Contact', epp: true do
|
||||||
it 'doesn\'t display unassociated object with wrong password' do
|
it 'doesn\'t display unassociated object with wrong password' do
|
||||||
@contact = Fabricate(:contact, code: 'info-4444', registrar: zone)
|
@contact = Fabricate(:contact, code: 'info-4444', registrar: zone)
|
||||||
|
|
||||||
xml = EppXml::Contact.info(id: { value: @contact.code }, authInfo: { pw: { value: 'qwe321' } })
|
xml = epp_xml.info(id: { value: @contact.code }, authInfo: { pw: { value: 'qwe321' } })
|
||||||
response = epp_request(xml, :xml, :elkdata)
|
response = epp_request(xml, :xml, :elkdata)
|
||||||
expect(response[:result_code]).to eq('2200')
|
expect(response[:result_code]).to eq('2200')
|
||||||
expect(response[:msg]).to eq('Authentication error')
|
expect(response[:msg]).to eq('Authentication error')
|
||||||
|
|
|
@ -15,6 +15,7 @@ describe 'EPP Domain', epp: true do
|
||||||
let(:server_elkdata) { Epp::Server.new({ server: 'localhost', tag: 'elkdata', password: 'ghyt9e4fu', port: 701 }) }
|
let(:server_elkdata) { Epp::Server.new({ server: 'localhost', tag: 'elkdata', password: 'ghyt9e4fu', port: 701 }) }
|
||||||
let(:elkdata) { Fabricate(:registrar, { name: 'Elkdata', reg_no: '123' }) }
|
let(:elkdata) { Fabricate(:registrar, { name: 'Elkdata', reg_no: '123' }) }
|
||||||
let(:zone) { Fabricate(:registrar) }
|
let(:zone) { Fabricate(:registrar) }
|
||||||
|
let(:epp_xml) { EppXml.new(cl_trid: 'ABC-12345') }
|
||||||
|
|
||||||
before(:each) { create_settings }
|
before(:each) { create_settings }
|
||||||
|
|
||||||
|
@ -113,7 +114,7 @@ describe 'EPP Domain', epp: true do
|
||||||
|
|
||||||
# should show up in other registrar's poll
|
# should show up in other registrar's poll
|
||||||
|
|
||||||
response = epp_request(EppXml::Session.poll, :xml, :elkdata)
|
response = epp_request(epp_xml.session.poll, :xml, :elkdata)
|
||||||
expect(response[:msg]).to eq('Command completed successfully; ack to dequeue')
|
expect(response[:msg]).to eq('Command completed successfully; ack to dequeue')
|
||||||
msg_q = response[:parsed].css('msgQ')
|
msg_q = response[:parsed].css('msgQ')
|
||||||
expect(msg_q.css('qDate').text).to_not be_blank
|
expect(msg_q.css('qDate').text).to_not be_blank
|
||||||
|
@ -121,7 +122,7 @@ describe 'EPP Domain', epp: true do
|
||||||
expect(msg_q.first['id']).to_not be_blank
|
expect(msg_q.first['id']).to_not be_blank
|
||||||
expect(msg_q.first['count']).to eq('1')
|
expect(msg_q.first['count']).to eq('1')
|
||||||
|
|
||||||
xml = EppXml::Session.poll(poll: {
|
xml = epp_xml.session.poll(poll: {
|
||||||
value: '', attrs: { op: 'ack', msgID: msg_q.first['id'] }
|
value: '', attrs: { op: 'ack', msgID: msg_q.first['id'] }
|
||||||
})
|
})
|
||||||
|
|
||||||
|
@ -751,7 +752,7 @@ describe 'EPP Domain', epp: true do
|
||||||
|
|
||||||
it 'renews a domain' do
|
it 'renews a domain' do
|
||||||
exp_date = (Date.today + 1.year)
|
exp_date = (Date.today + 1.year)
|
||||||
xml = EppXml::Domain.renew(
|
xml = epp_xml.domain.renew(
|
||||||
name: { value: 'example.ee' },
|
name: { value: 'example.ee' },
|
||||||
curExpDate: { value: exp_date.to_s },
|
curExpDate: { value: exp_date.to_s },
|
||||||
period: { value: '1', attrs: { unit: 'y' } }
|
period: { value: '1', attrs: { unit: 'y' } }
|
||||||
|
@ -765,7 +766,7 @@ describe 'EPP Domain', epp: true do
|
||||||
end
|
end
|
||||||
|
|
||||||
it 'returns an error when given and current exp dates do not match' do
|
it 'returns an error when given and current exp dates do not match' do
|
||||||
xml = EppXml::Domain.renew(
|
xml = epp_xml.domain.renew(
|
||||||
name: { value: 'example.ee' },
|
name: { value: 'example.ee' },
|
||||||
curExpDate: { value: '2016-08-07' },
|
curExpDate: { value: '2016-08-07' },
|
||||||
period: { value: '1', attrs: { unit: 'y' } }
|
period: { value: '1', attrs: { unit: 'y' } }
|
||||||
|
@ -779,7 +780,7 @@ describe 'EPP Domain', epp: true do
|
||||||
it 'returns an error when period is invalid' do
|
it 'returns an error when period is invalid' do
|
||||||
exp_date = (Date.today + 1.year)
|
exp_date = (Date.today + 1.year)
|
||||||
|
|
||||||
xml = EppXml::Domain.renew(
|
xml = epp_xml.domain.renew(
|
||||||
name: { value: 'example.ee' },
|
name: { value: 'example.ee' },
|
||||||
curExpDate: { value: exp_date.to_s },
|
curExpDate: { value: exp_date.to_s },
|
||||||
period: { value: '4', attrs: { unit: 'y' } }
|
period: { value: '4', attrs: { unit: 'y' } }
|
||||||
|
@ -1134,7 +1135,7 @@ describe 'EPP Domain', epp: true do
|
||||||
|
|
||||||
it 'deletes domain' do
|
it 'deletes domain' do
|
||||||
expect(DomainContact.count).to eq(2)
|
expect(DomainContact.count).to eq(2)
|
||||||
response = epp_request(EppXml::Domain.delete(name: { value: 'example.ee' }), :xml)
|
response = epp_request(epp_xml.domain.delete(name: { value: 'example.ee' }), :xml)
|
||||||
expect(response[:result_code]).to eq('1000')
|
expect(response[:result_code]).to eq('1000')
|
||||||
|
|
||||||
expect(Domain.first).to eq(nil)
|
expect(Domain.first).to eq(nil)
|
||||||
|
@ -1144,7 +1145,7 @@ describe 'EPP Domain', epp: true do
|
||||||
it 'does not delete domain with specific status' do
|
it 'does not delete domain with specific status' do
|
||||||
d = Domain.first
|
d = Domain.first
|
||||||
d.domain_statuses.create(value: DomainStatus::CLIENT_DELETE_PROHIBITED)
|
d.domain_statuses.create(value: DomainStatus::CLIENT_DELETE_PROHIBITED)
|
||||||
response = epp_request(EppXml::Domain.delete(name: { value: 'example.ee' }), :xml)
|
response = epp_request(epp_xml.domain.delete(name: { value: 'example.ee' }), :xml)
|
||||||
expect(response[:result_code]).to eq('2304')
|
expect(response[:result_code]).to eq('2304')
|
||||||
expect(response[:msg]).to eq('Domain status prohibits operation')
|
expect(response[:msg]).to eq('Domain status prohibits operation')
|
||||||
end
|
end
|
||||||
|
|
|
@ -6,6 +6,7 @@ describe 'EPP Keyrelay', epp: true do
|
||||||
let(:elkdata) { Fabricate(:registrar, { name: 'Elkdata', reg_no: '123' }) }
|
let(:elkdata) { Fabricate(:registrar, { name: 'Elkdata', reg_no: '123' }) }
|
||||||
let(:zone) { Fabricate(:registrar) }
|
let(:zone) { Fabricate(:registrar) }
|
||||||
let(:domain) { Fabricate(:domain, name: 'example.ee', registrar: zone, dnskeys: [Fabricate.build(:dnskey)]) }
|
let(:domain) { Fabricate(:domain, name: 'example.ee', registrar: zone, dnskeys: [Fabricate.build(:dnskey)]) }
|
||||||
|
let(:epp_xml) { EppXml::Keyrelay.new }
|
||||||
|
|
||||||
before(:each) { create_settings }
|
before(:each) { create_settings }
|
||||||
|
|
||||||
|
@ -16,7 +17,7 @@ describe 'EPP Keyrelay', epp: true do
|
||||||
end
|
end
|
||||||
|
|
||||||
it 'makes a keyrelay request' do
|
it 'makes a keyrelay request' do
|
||||||
xml = EppXml::Keyrelay.keyrelay({
|
xml = epp_xml.keyrelay({
|
||||||
name: { value: 'example.ee' },
|
name: { value: 'example.ee' },
|
||||||
keyData: {
|
keyData: {
|
||||||
flags: { value: '256' },
|
flags: { value: '256' },
|
||||||
|
|
|
@ -5,6 +5,7 @@ describe 'EPP Poll', epp: true do
|
||||||
let(:server_elkdata) { Epp::Server.new({ server: 'localhost', tag: 'elkdata', password: 'ghyt9e4fu', port: 701 }) }
|
let(:server_elkdata) { Epp::Server.new({ server: 'localhost', tag: 'elkdata', password: 'ghyt9e4fu', port: 701 }) }
|
||||||
let(:elkdata) { Fabricate(:registrar, { name: 'Elkdata', reg_no: '123' }) }
|
let(:elkdata) { Fabricate(:registrar, { name: 'Elkdata', reg_no: '123' }) }
|
||||||
let(:zone) { Fabricate(:registrar) }
|
let(:zone) { Fabricate(:registrar) }
|
||||||
|
let(:epp_xml) { EppXml::Session.new }
|
||||||
|
|
||||||
before(:each) { create_settings }
|
before(:each) { create_settings }
|
||||||
|
|
||||||
|
@ -15,7 +16,7 @@ describe 'EPP Poll', epp: true do
|
||||||
end
|
end
|
||||||
|
|
||||||
it 'returns no messages in poll' do
|
it 'returns no messages in poll' do
|
||||||
response = epp_request(EppXml::Session.poll, :xml)
|
response = epp_request(epp_xml.poll, :xml)
|
||||||
|
|
||||||
expect(response[:msg]).to eq('Command completed successfully; no messages')
|
expect(response[:msg]).to eq('Command completed successfully; no messages')
|
||||||
expect(response[:result_code]).to eq('1300')
|
expect(response[:result_code]).to eq('1300')
|
||||||
|
@ -24,11 +25,11 @@ describe 'EPP Poll', epp: true do
|
||||||
it 'queues and dequeues messages' do
|
it 'queues and dequeues messages' do
|
||||||
msg = zone.messages.create({ body: 'Balance low.' })
|
msg = zone.messages.create({ body: 'Balance low.' })
|
||||||
|
|
||||||
response = epp_request(EppXml::Session.poll, :xml, :elkdata)
|
response = epp_request(epp_xml.poll, :xml, :elkdata)
|
||||||
expect(response[:msg]).to eq('Command completed successfully; no messages')
|
expect(response[:msg]).to eq('Command completed successfully; no messages')
|
||||||
expect(response[:result_code]).to eq('1300')
|
expect(response[:result_code]).to eq('1300')
|
||||||
|
|
||||||
response = epp_request(EppXml::Session.poll, :xml, :zone)
|
response = epp_request(epp_xml.poll, :xml, :zone)
|
||||||
expect(response[:msg]).to eq('Command completed successfully; ack to dequeue')
|
expect(response[:msg]).to eq('Command completed successfully; ack to dequeue')
|
||||||
expect(response[:result_code]).to eq('1301')
|
expect(response[:result_code]).to eq('1301')
|
||||||
msg_q = response[:parsed].css('msgQ')
|
msg_q = response[:parsed].css('msgQ')
|
||||||
|
@ -37,7 +38,7 @@ describe 'EPP Poll', epp: true do
|
||||||
expect(msg_q.first['count']).to eq('1')
|
expect(msg_q.first['count']).to eq('1')
|
||||||
expect(msg_q.first['id']).to eq(msg.id.to_s)
|
expect(msg_q.first['id']).to eq(msg.id.to_s)
|
||||||
|
|
||||||
xml = EppXml::Session.poll(poll: {
|
xml = epp_xml.poll(poll: {
|
||||||
value: '', attrs: { op: 'ack', msgID: msg_q.first['id'] }
|
value: '', attrs: { op: 'ack', msgID: msg_q.first['id'] }
|
||||||
})
|
})
|
||||||
|
|
||||||
|
@ -59,7 +60,7 @@ describe 'EPP Poll', epp: true do
|
||||||
end
|
end
|
||||||
|
|
||||||
it 'returns an error on incorrect op' do
|
it 'returns an error on incorrect op' do
|
||||||
xml = EppXml::Session.poll(poll: {
|
xml = epp_xml.poll(poll: {
|
||||||
value: '', attrs: { op: 'bla' }
|
value: '', attrs: { op: 'bla' }
|
||||||
})
|
})
|
||||||
|
|
||||||
|
@ -72,7 +73,7 @@ describe 'EPP Poll', epp: true do
|
||||||
zone.messages.create({ body: 'Something.' })
|
zone.messages.create({ body: 'Something.' })
|
||||||
zone.messages.create({ body: 'Smth else.' })
|
zone.messages.create({ body: 'Smth else.' })
|
||||||
|
|
||||||
response = epp_request(EppXml::Session.poll, :xml, :zone)
|
response = epp_request(epp_xml.poll, :xml, :zone)
|
||||||
expect(response[:msg]).to eq('Command completed successfully; ack to dequeue')
|
expect(response[:msg]).to eq('Command completed successfully; ack to dequeue')
|
||||||
expect(response[:result_code]).to eq('1301')
|
expect(response[:result_code]).to eq('1301')
|
||||||
msg_q = response[:parsed].css('msgQ')
|
msg_q = response[:parsed].css('msgQ')
|
||||||
|
@ -80,7 +81,7 @@ describe 'EPP Poll', epp: true do
|
||||||
expect(msg_q.css('msg').text).to eq('Smth else.')
|
expect(msg_q.css('msg').text).to eq('Smth else.')
|
||||||
expect(msg_q.first['count']).to eq('3')
|
expect(msg_q.first['count']).to eq('3')
|
||||||
|
|
||||||
xml = EppXml::Session.poll(poll: {
|
xml = epp_xml.poll(poll: {
|
||||||
value: '', attrs: { op: 'ack', msgID: msg_q.first['id'] }
|
value: '', attrs: { op: 'ack', msgID: msg_q.first['id'] }
|
||||||
})
|
})
|
||||||
|
|
||||||
|
@ -90,7 +91,7 @@ describe 'EPP Poll', epp: true do
|
||||||
expect(msg_q.first['id']).to_not be_blank
|
expect(msg_q.first['id']).to_not be_blank
|
||||||
expect(msg_q.first['count']).to eq('2')
|
expect(msg_q.first['count']).to eq('2')
|
||||||
|
|
||||||
response = epp_request(EppXml::Session.poll, :xml, :zone)
|
response = epp_request(epp_xml.poll, :xml, :zone)
|
||||||
expect(response[:msg]).to eq('Command completed successfully; ack to dequeue')
|
expect(response[:msg]).to eq('Command completed successfully; ack to dequeue')
|
||||||
expect(response[:result_code]).to eq('1301')
|
expect(response[:result_code]).to eq('1301')
|
||||||
msg_q = response[:parsed].css('msgQ')
|
msg_q = response[:parsed].css('msgQ')
|
||||||
|
@ -98,7 +99,7 @@ describe 'EPP Poll', epp: true do
|
||||||
expect(msg_q.css('msg').text).to eq('Something.')
|
expect(msg_q.css('msg').text).to eq('Something.')
|
||||||
expect(msg_q.first['count']).to eq('2')
|
expect(msg_q.first['count']).to eq('2')
|
||||||
|
|
||||||
xml = EppXml::Session.poll(poll: {
|
xml = epp_xml.poll(poll: {
|
||||||
value: '', attrs: { op: 'ack', msgID: msg_q.first['id'] }
|
value: '', attrs: { op: 'ack', msgID: msg_q.first['id'] }
|
||||||
})
|
})
|
||||||
|
|
||||||
|
@ -108,7 +109,7 @@ describe 'EPP Poll', epp: true do
|
||||||
expect(msg_q.first['id']).to_not be_blank
|
expect(msg_q.first['id']).to_not be_blank
|
||||||
expect(msg_q.first['count']).to eq('1')
|
expect(msg_q.first['count']).to eq('1')
|
||||||
|
|
||||||
response = epp_request(EppXml::Session.poll, :xml, :zone)
|
response = epp_request(epp_xml.poll, :xml, :zone)
|
||||||
expect(response[:msg]).to eq('Command completed successfully; ack to dequeue')
|
expect(response[:msg]).to eq('Command completed successfully; ack to dequeue')
|
||||||
expect(response[:result_code]).to eq('1301')
|
expect(response[:result_code]).to eq('1301')
|
||||||
msg_q = response[:parsed].css('msgQ')
|
msg_q = response[:parsed].css('msgQ')
|
||||||
|
@ -116,7 +117,7 @@ describe 'EPP Poll', epp: true do
|
||||||
expect(msg_q.css('msg').text).to eq('Balance low.')
|
expect(msg_q.css('msg').text).to eq('Balance low.')
|
||||||
expect(msg_q.first['count']).to eq('1')
|
expect(msg_q.first['count']).to eq('1')
|
||||||
|
|
||||||
xml = EppXml::Session.poll(poll: {
|
xml = epp_xml.poll(poll: {
|
||||||
value: '', attrs: { op: 'ack', msgID: msg_q.first['id'] }
|
value: '', attrs: { op: 'ack', msgID: msg_q.first['id'] }
|
||||||
})
|
})
|
||||||
|
|
||||||
|
@ -126,7 +127,7 @@ describe 'EPP Poll', epp: true do
|
||||||
expect(msg_q.first['id']).to_not be_blank
|
expect(msg_q.first['id']).to_not be_blank
|
||||||
expect(msg_q.first['count']).to eq('0')
|
expect(msg_q.first['count']).to eq('0')
|
||||||
|
|
||||||
response = epp_request(EppXml::Session.poll, :xml, :zone)
|
response = epp_request(epp_xml.poll, :xml, :zone)
|
||||||
expect(response[:msg]).to eq('Command completed successfully; no messages')
|
expect(response[:msg]).to eq('Command completed successfully; no messages')
|
||||||
expect(response[:result_code]).to eq('1300')
|
expect(response[:result_code]).to eq('1300')
|
||||||
end
|
end
|
||||||
|
|
|
@ -2,7 +2,8 @@ require 'rails_helper'
|
||||||
|
|
||||||
describe 'EPP Session', epp: true do
|
describe 'EPP Session', epp: true do
|
||||||
let(:server_gitlab) { Epp::Server.new({ server: 'localhost', tag: 'gitlab', password: 'ghyt9e4fu', port: 701 }) }
|
let(:server_gitlab) { Epp::Server.new({ server: 'localhost', tag: 'gitlab', password: 'ghyt9e4fu', port: 701 }) }
|
||||||
let(:login_xml_cache) { EppXml::Session.login(clID: { value: 'gitlab' }, pw: { value: 'ghyt9e4fu' }) }
|
let(:epp_xml) { EppXml.new(cl_trid: 'ABC-12345') }
|
||||||
|
let(:login_xml_cache) { epp_xml.session.login(clID: { value: 'gitlab' }, pw: { value: 'ghyt9e4fu' }) }
|
||||||
|
|
||||||
context 'when not connected' do
|
context 'when not connected' do
|
||||||
it 'greets client upon connection' do
|
it 'greets client upon connection' do
|
||||||
|
@ -29,7 +30,7 @@ describe 'EPP Session', epp: true do
|
||||||
end
|
end
|
||||||
|
|
||||||
it 'prohibits further actions unless logged in' do
|
it 'prohibits further actions unless logged in' do
|
||||||
response = epp_plain_request(EppXml::Domain.create, :xml)
|
response = epp_plain_request(epp_xml.domain.create, :xml)
|
||||||
expect(response[:result_code]).to eq('2002')
|
expect(response[:result_code]).to eq('2002')
|
||||||
expect(response[:msg]).to eq('You need to login first.')
|
expect(response[:msg]).to eq('You need to login first.')
|
||||||
expect(response[:clTRID]).to eq('ABC-12345')
|
expect(response[:clTRID]).to eq('ABC-12345')
|
||||||
|
|
|
@ -18,7 +18,8 @@ describe '.extract_attributes' do
|
||||||
|
|
||||||
# TODO: remodel create contact xml to support disclosure
|
# TODO: remodel create contact xml to support disclosure
|
||||||
it 'should return disclosure has if disclosure' do
|
it 'should return disclosure has if disclosure' do
|
||||||
xml = EppXml::Contact.create(
|
epp_xml = EppXml::Contact.new
|
||||||
|
xml = epp_xml.create(
|
||||||
{
|
{
|
||||||
disclose: { value: {
|
disclose: { value: {
|
||||||
voice: { value: '' },
|
voice: { value: '' },
|
||||||
|
|
|
@ -78,7 +78,9 @@ module Epp
|
||||||
}
|
}
|
||||||
|
|
||||||
xml_params = defaults.deep_merge(xml_params)
|
xml_params = defaults.deep_merge(xml_params)
|
||||||
EppXml::Domain.info(xml_params)
|
|
||||||
|
epp_xml = EppXml::Domain.new(cl_trid: 'ABC-12345')
|
||||||
|
epp_xml.info(xml_params)
|
||||||
end
|
end
|
||||||
|
|
||||||
# rubocop: disable Metrics/MethodLength
|
# rubocop: disable Metrics/MethodLength
|
||||||
|
@ -122,7 +124,8 @@ module Epp
|
||||||
}
|
}
|
||||||
|
|
||||||
dnssec_params = dnssec_defaults.deep_merge(dnssec_params) if dnssec_params != false
|
dnssec_params = dnssec_defaults.deep_merge(dnssec_params) if dnssec_params != false
|
||||||
EppXml::Domain.create(xml_params, dnssec_params)
|
epp_xml = EppXml::Domain.new(cl_trid: 'ABC-12345')
|
||||||
|
epp_xml.create(xml_params, dnssec_params)
|
||||||
end
|
end
|
||||||
|
|
||||||
def domain_create_with_invalid_ns_ip_xml
|
def domain_create_with_invalid_ns_ip_xml
|
||||||
|
@ -154,7 +157,8 @@ module Epp
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
EppXml::Domain.create(xml_params, false)
|
epp_xml = EppXml::Domain.new(cl_trid: 'ABC-12345')
|
||||||
|
epp_xml.create(xml_params, false)
|
||||||
end
|
end
|
||||||
|
|
||||||
def domain_create_with_host_attrs
|
def domain_create_with_host_attrs
|
||||||
|
@ -186,7 +190,8 @@ module Epp
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
EppXml::Domain.create(xml_params, false)
|
epp_xml = EppXml::Domain.new(cl_trid: 'ABC-12345')
|
||||||
|
epp_xml.create(xml_params, false)
|
||||||
end
|
end
|
||||||
|
|
||||||
def domain_update_xml(xml_params = {}, dnssec_params = false)
|
def domain_update_xml(xml_params = {}, dnssec_params = false)
|
||||||
|
@ -195,7 +200,8 @@ module Epp
|
||||||
}
|
}
|
||||||
|
|
||||||
xml_params = defaults.deep_merge(xml_params)
|
xml_params = defaults.deep_merge(xml_params)
|
||||||
EppXml::Domain.update(xml_params, dnssec_params)
|
epp_xml = EppXml::Domain.new(cl_trid: 'ABC-12345')
|
||||||
|
epp_xml.update(xml_params, dnssec_params)
|
||||||
end
|
end
|
||||||
|
|
||||||
def domain_check_xml(xml_params = {})
|
def domain_check_xml(xml_params = {})
|
||||||
|
@ -205,7 +211,8 @@ module Epp
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
xml_params = defaults.deep_merge(xml_params)
|
xml_params = defaults.deep_merge(xml_params)
|
||||||
EppXml::Domain.check(xml_params)
|
epp_xml = EppXml::Domain.new(cl_trid: 'ABC-12345')
|
||||||
|
epp_xml.check(xml_params)
|
||||||
end
|
end
|
||||||
|
|
||||||
def domain_transfer_xml(xml_params = {}, op = 'query')
|
def domain_transfer_xml(xml_params = {}, op = 'query')
|
||||||
|
@ -217,7 +224,8 @@ module Epp
|
||||||
}
|
}
|
||||||
|
|
||||||
xml_params = defaults.deep_merge(xml_params)
|
xml_params = defaults.deep_merge(xml_params)
|
||||||
EppXml::Domain.transfer(xml_params, op)
|
epp_xml = EppXml::Domain.new(cl_trid: 'ABC-12345')
|
||||||
|
epp_xml.transfer(xml_params, op)
|
||||||
end
|
end
|
||||||
|
|
||||||
def log(req, res)
|
def log(req, res)
|
||||||
|
|
|
@ -15,7 +15,8 @@ module EppContactXmlHelper
|
||||||
}
|
}
|
||||||
|
|
||||||
xml_params = defaults.deep_merge(xml_params)
|
xml_params = defaults.deep_merge(xml_params)
|
||||||
EppXml::Contact.create(xml_params)
|
epp_xml = EppXml::Contact.new(cl_trid: 'ABC-12345')
|
||||||
|
epp_xml.create(xml_params)
|
||||||
end
|
end
|
||||||
|
|
||||||
def update_contact_xml(xml_params = {})
|
def update_contact_xml(xml_params = {})
|
||||||
|
@ -37,19 +38,22 @@ module EppContactXmlHelper
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
xml_params = defaults.deep_merge(xml_params)
|
xml_params = defaults.deep_merge(xml_params)
|
||||||
EppXml::Contact.update(xml_params)
|
epp_xml = EppXml::Contact.new(cl_trid: 'ABC-12345')
|
||||||
|
epp_xml.update(xml_params)
|
||||||
end
|
end
|
||||||
|
|
||||||
def delete_contact_xml(xml_params = {})
|
def delete_contact_xml(xml_params = {})
|
||||||
defaults = { id: { value: 'sh8012' } }
|
defaults = { id: { value: 'sh8012' } }
|
||||||
xml_params = defaults.deep_merge(xml_params)
|
xml_params = defaults.deep_merge(xml_params)
|
||||||
EppXml::Contact.delete(xml_params)
|
epp_xml = EppXml::Contact.new(cl_trid: 'ABC-12345')
|
||||||
|
epp_xml.delete(xml_params)
|
||||||
end
|
end
|
||||||
|
|
||||||
def info_contact_xml(xml_params = {})
|
def info_contact_xml(xml_params = {})
|
||||||
defaults = { id: { value: 'sh8012' }, authInfo: { pw: { value: 'password' } } }
|
defaults = { id: { value: 'sh8012' }, authInfo: { pw: { value: 'password' } } }
|
||||||
xml_params = defaults.deep_merge(xml_params)
|
xml_params = defaults.deep_merge(xml_params)
|
||||||
EppXml::Contact.info(xml_params)
|
epp_xml = EppXml::Contact.new(cl_trid: 'ABC-12345')
|
||||||
|
epp_xml.info(xml_params)
|
||||||
end
|
end
|
||||||
|
|
||||||
def check_contact_xml(xml_params = {})
|
def check_contact_xml(xml_params = {})
|
||||||
|
@ -57,7 +61,8 @@ module EppContactXmlHelper
|
||||||
id: { value: 'ad123c3' }
|
id: { value: 'ad123c3' }
|
||||||
}
|
}
|
||||||
xml_params = defaults.deep_merge(xml_params)
|
xml_params = defaults.deep_merge(xml_params)
|
||||||
EppXml::Contact.check(xml_params)
|
epp_xml = EppXml::Contact.new(cl_trid: 'ABC-12345')
|
||||||
|
epp_xml.check(xml_params)
|
||||||
end
|
end
|
||||||
|
|
||||||
def check_multiple_contacts_xml
|
def check_multiple_contacts_xml
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue