Merge branch 'master' of github.com:internetee/registry

This commit is contained in:
Andres Keskküla 2014-12-19 13:47:17 +02:00
commit e33ab4dce9
44 changed files with 238 additions and 150 deletions

View file

@ -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(:elkdata) { Fabricate(:registrar, { name: 'Elkdata', reg_no: '123' }) }
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
before(:each) do
@ -27,7 +28,7 @@ describe 'EPP Contact', epp: true do
context 'create command' do
it 'fails if request xml is missing' do
xml = EppXml::Contact.create
xml = epp_xml.create
response = epp_request(xml, :xml)
expect(response[:results][0][:result_code]).to eq('2001')
@ -36,7 +37,7 @@ describe 'EPP Contact', epp: true do
end
it 'fails if request xml is missing' do
xml = EppXml::Contact.create(
xml = epp_xml.create(
postalInfo: { addr: { value: nil } }
)
response = epp_request(xml, :xml)
@ -145,7 +146,7 @@ describe 'EPP Contact', epp: true do
context 'update command' 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')
expect(response[:results][0][:result_code]).to eq('2003')
@ -227,7 +228,7 @@ describe 'EPP Contact', epp: true do
context 'delete command' 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)
expect(response[:results][0][:result_code]).to eq('2003')
@ -274,7 +275,7 @@ describe 'EPP Contact', epp: true do
context 'check command' 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)
expect(response[:results][0][:result_code]).to eq('2003')
@ -304,7 +305,7 @@ describe 'EPP Contact', epp: true do
@contact = Fabricate(:contact, registrar: zone, code: 'info-4444', name: 'Johnny Awesome', auth_info: 'asde',
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)
contact = response[:parsed].css('resData chkData')
@ -317,7 +318,7 @@ describe 'EPP Contact', epp: true do
@contact = Fabricate(:contact, registrar: elkdata, code: 'info-4444', name: 'Johnny Awesome', auth_info: 'asde',
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)
expect(response[:result_code]).to eq('2200')
@ -329,7 +330,7 @@ describe 'EPP Contact', epp: true do
name: 'Johnny Awesome', auth_info: 'password',
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)
contact = response[:parsed].css('resData chkData')
@ -343,7 +344,7 @@ describe 'EPP Contact', epp: true do
auth_info: 'password',
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)
contact = response[:parsed].css('resData chkData')
@ -353,7 +354,7 @@ describe 'EPP Contact', epp: true do
end
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][:msg]).to eq('Required parameter missing: id')
@ -371,7 +372,7 @@ describe 'EPP Contact', epp: true do
@contact = Fabricate(:contact, registrar: zone, code: 'info-4444', name: 'Johnny Awesome',
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)
contact = response[:parsed].css('resData chkData')
@ -385,7 +386,7 @@ describe 'EPP Contact', epp: true do
Fabricate(:contact, code: 'info-4444', auth_info: '2fooBAR', registrar: elkdata,
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)
contact = response[:parsed].css('resData chkData')
@ -402,7 +403,7 @@ describe 'EPP Contact', epp: true do
it 'doesn\'t display unassociated object without password' do
@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)
expect(response[:result_code]).to eq('2003')
expect(response[:msg]).to eq('Required parameter missing: pw')
@ -411,7 +412,7 @@ describe 'EPP Contact', epp: true do
it 'doesn\'t display unassociated object with wrong password' do
@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)
expect(response[:result_code]).to eq('2200')
expect(response[:msg]).to eq('Authentication error')

View file

@ -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(:elkdata) { Fabricate(:registrar, { name: 'Elkdata', reg_no: '123' }) }
let(:zone) { Fabricate(:registrar) }
let(:epp_xml) { EppXml.new(cl_trid: 'ABC-12345') }
before(:each) { create_settings }
@ -113,7 +114,7 @@ describe 'EPP Domain', epp: true do
# 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')
msg_q = response[:parsed].css('msgQ')
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['count']).to eq('1')
xml = EppXml::Session.poll(poll: {
xml = epp_xml.session.poll(poll: {
value: '', attrs: { op: 'ack', msgID: msg_q.first['id'] }
})
@ -751,7 +752,7 @@ describe 'EPP Domain', epp: true do
it 'renews a domain' do
exp_date = (Date.today + 1.year)
xml = EppXml::Domain.renew(
xml = epp_xml.domain.renew(
name: { value: 'example.ee' },
curExpDate: { value: exp_date.to_s },
period: { value: '1', attrs: { unit: 'y' } }
@ -765,7 +766,7 @@ describe 'EPP Domain', epp: true do
end
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' },
curExpDate: { value: '2016-08-07' },
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
exp_date = (Date.today + 1.year)
xml = EppXml::Domain.renew(
xml = epp_xml.domain.renew(
name: { value: 'example.ee' },
curExpDate: { value: exp_date.to_s },
period: { value: '4', attrs: { unit: 'y' } }
@ -1134,7 +1135,7 @@ describe 'EPP Domain', epp: true do
it 'deletes domain' do
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(Domain.first).to eq(nil)
@ -1144,7 +1145,7 @@ describe 'EPP Domain', epp: true do
it 'does not delete domain with specific status' do
d = Domain.first
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[:msg]).to eq('Domain status prohibits operation')
end

View file

@ -6,6 +6,7 @@ describe 'EPP Keyrelay', epp: true do
let(:elkdata) { Fabricate(:registrar, { name: 'Elkdata', reg_no: '123' }) }
let(:zone) { Fabricate(:registrar) }
let(:domain) { Fabricate(:domain, name: 'example.ee', registrar: zone, dnskeys: [Fabricate.build(:dnskey)]) }
let(:epp_xml) { EppXml::Keyrelay.new }
before(:each) { create_settings }
@ -16,7 +17,7 @@ describe 'EPP Keyrelay', epp: true do
end
it 'makes a keyrelay request' do
xml = EppXml::Keyrelay.keyrelay({
xml = epp_xml.keyrelay({
name: { value: 'example.ee' },
keyData: {
flags: { value: '256' },

View file

@ -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(:elkdata) { Fabricate(:registrar, { name: 'Elkdata', reg_no: '123' }) }
let(:zone) { Fabricate(:registrar) }
let(:epp_xml) { EppXml::Session.new }
before(:each) { create_settings }
@ -15,7 +16,7 @@ describe 'EPP Poll', epp: true do
end
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[:result_code]).to eq('1300')
@ -24,11 +25,11 @@ describe 'EPP Poll', epp: true do
it 'queues and dequeues messages' do
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[: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[:result_code]).to eq('1301')
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['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'] }
})
@ -59,7 +60,7 @@ describe 'EPP Poll', epp: true do
end
it 'returns an error on incorrect op' do
xml = EppXml::Session.poll(poll: {
xml = epp_xml.poll(poll: {
value: '', attrs: { op: 'bla' }
})
@ -72,7 +73,7 @@ describe 'EPP Poll', epp: true do
zone.messages.create({ body: 'Something.' })
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[:result_code]).to eq('1301')
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.first['count']).to eq('3')
xml = EppXml::Session.poll(poll: {
xml = epp_xml.poll(poll: {
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['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[:result_code]).to eq('1301')
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.first['count']).to eq('2')
xml = EppXml::Session.poll(poll: {
xml = epp_xml.poll(poll: {
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['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[:result_code]).to eq('1301')
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.first['count']).to eq('1')
xml = EppXml::Session.poll(poll: {
xml = epp_xml.poll(poll: {
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['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[:result_code]).to eq('1300')
end

View file

@ -2,7 +2,8 @@ require 'rails_helper'
describe 'EPP Session', epp: true do
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
it 'greets client upon connection' do
@ -29,7 +30,7 @@ describe 'EPP Session', epp: true do
end
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[:msg]).to eq('You need to login first.')
expect(response[:clTRID]).to eq('ABC-12345')