Attach dnskeys upon domain create

This commit is contained in:
Martin Lensment 2014-10-02 10:23:16 +03:00
parent 4816e46457
commit 17e1668794
2 changed files with 60 additions and 1 deletions

View file

@ -339,7 +339,15 @@ class Epp::EppDomain < Domain
def parse_dnskeys_from_frame(parsed_frame)
res = []
parsed_frame.css('dnskey').each do |x|
res << {
flags: x.css('flags').first.try(:text),
protocol: x.css('protocol').first.try(:text),
alg: x.css('alg').first.try(:text),
public_key: x.css('pubKey').first.try(:text)
}
end
res
end
def check_availability(domains)

View file

@ -201,6 +201,14 @@ describe 'EPP Domain', epp: true do
expect(d.nameservers.count).to eq(2)
expect(d.auth_info).not_to be_empty
expect(d.dnskeys.count).to eq(1)
key = d.dnskeys.first
expect(key.flags).to eq(257)
expect(key.protocol).to eq(3)
expect(key.alg).to eq(5)
expect(key.public_key).to eq('AwEAAddt2AkLfYGKgiEZB5SmIF8EvrjxNMH6HtxWEA4RJ9Ao6LCWheg8')
end
it 'validates nameserver ipv4 when in same zone as domain' do
@ -314,6 +322,49 @@ describe 'EPP Domain', epp: true do
expect(response[:results][0][:msg]).to eq('Period must add up to 1, 2 or 3 years')
expect(response[:results][0][:value]).to eq('367')
end
it 'creates a domain with multiple dnskeys' do
xml = domain_create_xml({
dnssec: [
{
dnskey: {
flags: { value: '257' },
protocol: { value: '3' },
alg: { value: '3' },
pubKey: { value: 'AwEAAddt2AkLfYGKgiEZB5SmIF8EvrjxNMH6HtxWEA4RJ9Ao6LCWheg8' }
}
},
{
dnskey: {
flags: { value: '0' },
protocol: { value: '3' },
alg: { value: '5' },
pubKey: { value: '700b97b591ed27ec2590d19f06f88bba700b97b591ed27ec2590d19f' }
}
},
{
dnskey: {
flags: { value: '256' },
protocol: { value: '3' },
alg: { value: '254' },
pubKey: { value: '841936717ae427ace63c28d04918569a841936717ae427ace63c28d0' }
}
}
]
})
response = epp_request(xml, :xml)
d = Domain.first
expect(d.dnskeys.pluck(:flags)).to match_array([257, 0, 256])
expect(d.dnskeys.pluck(:protocol)).to match_array([3, 3, 3])
expect(d.dnskeys.pluck(:alg)).to match_array([3, 5, 254])
expect(d.dnskeys.pluck(:public_key)).to match_array(%w(
AwEAAddt2AkLfYGKgiEZB5SmIF8EvrjxNMH6HtxWEA4RJ9Ao6LCWheg8
700b97b591ed27ec2590d19f06f88bba700b97b591ed27ec2590d19f
841936717ae427ace63c28d04918569a841936717ae427ace63c28d0
))
end
end
context 'with juridical persion as an owner' do