mirror of
https://github.com/internetee/registry.git
synced 2025-07-01 08:43:37 +02:00
Merge branch 'master' of github.com:internetee/registry
This commit is contained in:
commit
042b0e12e0
5 changed files with 101 additions and 20 deletions
|
@ -42,7 +42,7 @@ describe 'EPP Domain', epp: true do
|
|||
end
|
||||
|
||||
it 'transfers a domain' do
|
||||
response = epp_request('domains/transfer.xml')
|
||||
response = epp_request(domain_transfer_xml, :xml)
|
||||
|
||||
d = Domain.first
|
||||
dtl = d.domain_transfers.last
|
||||
|
@ -59,29 +59,54 @@ describe 'EPP Domain', epp: true do
|
|||
s = Setting.find_by(code: 'transfer_wait_time')
|
||||
s.update(value: 1)
|
||||
|
||||
response = epp_request('domains/transfer.xml')
|
||||
response = epp_request(domain_transfer_xml, :xml)
|
||||
trn_data = response[:parsed].css('trnData')
|
||||
d = Domain.first
|
||||
|
||||
expect(trn_data.css('name').text).to eq('example.ee')
|
||||
expect(trn_data.css('trStatus').text).to eq('pending')
|
||||
expect(trn_data.css('reID').text).to eq('10577829')
|
||||
expect(trn_data.css('reDate').text).to eq(dtl.transfer_requested_at.to_time.utc.to_s)
|
||||
req_time = dtl.transfer_requested_at.to_time.utc.to_s
|
||||
expect(trn_data.css('reDate').text).to eq(req_time)
|
||||
expect(trn_data.css('acID').text).to eq('10577829')
|
||||
expect(trn_data.css('exDate').text).to eq(d.valid_to.to_time.utc.to_s)
|
||||
|
||||
# should return same data if pending already
|
||||
response = epp_request('domains/transfer.xml')
|
||||
response = epp_request(domain_transfer_xml, :xml)
|
||||
trn_data = response[:parsed].css('trnData')
|
||||
d = Domain.first
|
||||
|
||||
expect(trn_data.css('name').text).to eq('example.ee')
|
||||
expect(trn_data.css('trStatus').text).to eq('pending')
|
||||
expect(trn_data.css('reID').text).to eq('10577829')
|
||||
expect(trn_data.css('reDate').text).to eq(req_time)
|
||||
expect(trn_data.css('acID').text).to eq('10577829')
|
||||
expect(trn_data.css('exDate').text).to eq(d.valid_to.to_time.utc.to_s)
|
||||
end
|
||||
|
||||
it 'approves the transfer request', pending: true do
|
||||
s = Setting.find_by(code: 'transfer_wait_time')
|
||||
s.update(value: 1)
|
||||
|
||||
epp_request(domain_transfer_xml, :xml)
|
||||
xml = domain_transfer_xml(op: 'approve')
|
||||
response = epp_request(xml, :xml)
|
||||
trn_data = response[:parsed].css('trnData')
|
||||
d = Domain.first
|
||||
|
||||
expect(trn_data.css('name').text).to eq('example.ee')
|
||||
expect(trn_data.css('trStatus').text).to eq('serverApproved')
|
||||
expect(trn_data.css('reID').text).to eq('10577829')
|
||||
expect(trn_data.css('reDate').text).to eq(dtl.transfer_requested_at.to_time.utc.to_s)
|
||||
expect(trn_data.css('acID').text).to eq('10577829')
|
||||
expect(trn_data.css('exDate').text).to eq(d.valid_to.to_time.utc.to_s)
|
||||
end
|
||||
|
||||
it 'does not transfer with invalid pw' do
|
||||
response = epp_request(domain_transfer_xml(pw: 'test'), :xml)
|
||||
expect(response[:result_code]).to eq('2200')
|
||||
expect(response[:msg]).to eq('Authentication error')
|
||||
end
|
||||
end
|
||||
|
||||
context 'with citizen as an owner' do
|
||||
|
|
|
@ -275,5 +275,49 @@ describe 'EPP Helper', epp: true do
|
|||
generated = Nokogiri::XML(xml).to_s.squish
|
||||
expect(generated).to eq(expected)
|
||||
end
|
||||
|
||||
it 'generates valid transfer xml' do
|
||||
expected = Nokogiri::XML('<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<epp xmlns="urn:ietf:params:xml:ns:epp-1.0">
|
||||
<command>
|
||||
<transfer op="query">
|
||||
<domain:transfer
|
||||
xmlns:domain="urn:ietf:params:xml:ns:domain-1.0">
|
||||
<domain:name>example.ee</domain:name>
|
||||
<domain:authInfo>
|
||||
<domain:pw roid="JD1234-REP">98oiewslkfkd</domain:pw>
|
||||
</domain:authInfo>
|
||||
</domain:transfer>
|
||||
</transfer>
|
||||
<clTRID>ABC-12345</clTRID>
|
||||
</command>
|
||||
</epp>
|
||||
').to_s.squish
|
||||
|
||||
generated = Nokogiri::XML(domain_transfer_xml).to_s.squish
|
||||
expect(generated).to eq(expected)
|
||||
|
||||
expected = Nokogiri::XML('<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<epp xmlns="urn:ietf:params:xml:ns:epp-1.0">
|
||||
<command>
|
||||
<transfer op="approve">
|
||||
<domain:transfer
|
||||
xmlns:domain="urn:ietf:params:xml:ns:domain-1.0">
|
||||
<domain:name>one.ee</domain:name>
|
||||
<domain:authInfo>
|
||||
<domain:pw roid="askdf">test</domain:pw>
|
||||
</domain:authInfo>
|
||||
</domain:transfer>
|
||||
</transfer>
|
||||
<clTRID>ABC-12345</clTRID>
|
||||
</command>
|
||||
</epp>
|
||||
').to_s.squish
|
||||
|
||||
xml = domain_transfer_xml(name: 'one.ee', op: 'approve', pw: 'test', roid: 'askdf')
|
||||
|
||||
generated = Nokogiri::XML(xml).to_s.squish
|
||||
expect(generated).to eq(expected)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
|
|
@ -1,15 +0,0 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<epp xmlns="urn:ietf:params:xml:ns:epp-1.0">
|
||||
<command>
|
||||
<transfer op="query">
|
||||
<domain:transfer
|
||||
xmlns:domain="urn:ietf:params:xml:ns:domain-1.0">
|
||||
<domain:name>example.ee</domain:name>
|
||||
<domain:authInfo>
|
||||
<domain:pw roid="JD1234-REP">98oiewslkfkd</domain:pw>
|
||||
</domain:authInfo>
|
||||
</domain:transfer>
|
||||
</transfer>
|
||||
<clTRID>ABC-12345</clTRID>
|
||||
</command>
|
||||
</epp>
|
|
@ -46,7 +46,7 @@ describe Domain do
|
|||
name: ['is missing'],
|
||||
period: ['is not a number'],
|
||||
owner_contact: ['Registrant is missing'],
|
||||
admin_contacts: ['Admin contact is missing'],
|
||||
admin_contacts: ['Admin contacts count must be between 1 - infinity'],
|
||||
nameservers: ['Nameservers count must be between 1-13']
|
||||
})
|
||||
|
||||
|
|
|
@ -189,6 +189,33 @@ module Epp
|
|||
end
|
||||
end
|
||||
end
|
||||
|
||||
def domain_transfer_xml(xml_params = {})
|
||||
xml_params[:name] = xml_params[:name] || 'example.ee'
|
||||
xml_params[:pw] = xml_params[:pw] || '98oiewslkfkd'
|
||||
xml_params[:op] = xml_params[:op] || 'query'
|
||||
xml_params[:roid] = xml_params[:roid] || 'JD1234-REP'
|
||||
|
||||
xml = Builder::XmlMarkup.new
|
||||
|
||||
xml.instruct!(:xml, standalone: 'no')
|
||||
xml.epp('xmlns' => 'urn:ietf:params:xml:ns:epp-1.0') do
|
||||
xml.command do
|
||||
xml.transfer('op' => xml_params[:op]) do
|
||||
xml.tag!('domain:transfer', 'xmlns:domain' => 'urn:ietf:params:xml:ns:domain-1.0') do
|
||||
if xml_params[:name] != false
|
||||
xml.tag!('domain:name', xml_params[:name])
|
||||
end
|
||||
|
||||
xml.tag!('domain:authInfo') do
|
||||
xml.tag!('domain:pw', xml_params[:pw], 'roid' => xml_params[:roid])
|
||||
end if xml_params[:authInfo] != false
|
||||
end
|
||||
end
|
||||
xml.clTRID 'ABC-12345'
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
RSpec.configure do |c|
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue