internetee-registry/spec/support/epp.rb
Martin Lensment c7f32017b2 Fix tests
2014-12-29 17:28:27 +02:00

452 lines
18 KiB
Ruby

module Epp
def read_body(filename)
File.read("spec/epp/requests/#{filename}")
end
# handles connection and login automatically
def epp_request(data, *args)
server = server_zone
server = server_elkdata if args.include?(:elkdata)
res = parse_response(server.request(data)) if args.include?(:xml)
if res
log(data, res[:parsed])
return res
end
res = parse_response(server.request(read_body(data)))
log(read_body(data), res[:parsed])
return res
rescue => e
e
end
def epp_plain_request(data, *args)
server = server_gitlab
server = server_elkdata if args.include?(:elkdata)
server = server_zone if args.include?(:zone)
res = parse_response(server.send_request(data)) if args.include?(:xml)
if res
log(data, res[:parsed])
return res
end
res = parse_response(server.send_request(read_body(data)))
log(read_body(data), res[:parsed])
return res
rescue => e
e
end
def parse_response(raw)
res = Nokogiri::XML(raw)
obj = {
results: [],
clTRID: res.css('epp trID clTRID').text,
parsed: res.remove_namespaces!,
raw: raw
}
res.css('epp response result').each do |x|
obj[:results] << {
result_code: x[:code], msg: x.css('msg').text, value: x.css('value > *').try(:first).try(:text)
}
end
obj[:result_code] = obj[:results][0][:result_code]
obj[:msg] = obj[:results][0][:msg]
obj
end
# print output
def po(r)
puts r[:parsed].to_s
end
### REQUEST TEMPLATES ###
def domain_info_xml(xml_params = {})
defaults = {
name: { value: 'example.ee', attrs: { hosts: 'all' } },
authInfo: {
pw: { value: '2fooBAR' }
}
}
xml_params = defaults.deep_merge(xml_params)
epp_xml = EppXml::Domain.new(cl_trid: 'ABC-12345')
epp_xml.info(xml_params)
end
# rubocop: disable Metrics/MethodLength
def domain_create_xml(xml_params = {}, dnssec_params = {})
defaults = {
name: { value: 'example.ee' },
period: { value: '1', attrs: { unit: 'y' } },
ns: [
{
hostAttr: [
{ hostName: { value: 'ns1.example.net' } },
{ hostAddr: { value: '192.0.2.2', attrs: { ip: 'v4' } } },
{ hostAddr: { value: '1080:0:0:0:8:800:200C:417A', attrs: { ip: 'v6' } } }
]
},
{
hostAttr: {
hostName: { value: 'ns2.example.net' }
}
}
],
registrant: { value: 'jd1234' },
_anonymus: [
{ contact: { value: 'sh8013', attrs: { type: 'admin' } } },
{ contact: { value: 'sh8013', attrs: { type: 'tech' } } },
{ contact: { value: 'sh801333', attrs: { type: 'tech' } } }
]
}
xml_params = defaults.deep_merge(xml_params)
dnssec_defaults = {
_anonymus: [
{ keyData: {
flags: { value: '257' },
protocol: { value: '3' },
alg: { value: '5' },
pubKey: { value: 'AwEAAddt2AkLfYGKgiEZB5SmIF8EvrjxNMH6HtxWEA4RJ9Ao6LCWheg8' }
}
}]
}
dnssec_params = dnssec_defaults.deep_merge(dnssec_params) if dnssec_params != false
epp_xml = EppXml::Domain.new(cl_trid: 'ABC-12345')
epp_xml.create(xml_params, dnssec_params)
end
def domain_create_xml_with_legal_doc
epp_xml = EppXml::Domain.new(cl_trid: 'ABC-12345')
epp_xml.create({
name: { value: 'example.ee' },
period: { value: '1', attrs: { unit: 'y' } },
ns: [
{
hostAttr: [
{ hostName: { value: 'ns1.example.net' } },
{ hostAddr: { value: '192.0.2.2', attrs: { ip: 'v4' } } },
{ hostAddr: { value: '1080:0:0:0:8:800:200C:417A', attrs: { ip: 'v6' } } }
]
},
{
hostAttr: {
hostName: { value: 'ns2.example.net' }
}
}
],
registrant: { value: 'jd1234' },
_anonymus: [
{ contact: { value: 'sh8013', attrs: { type: 'admin' } } },
{ contact: { value: 'sh8013', attrs: { type: 'tech' } } },
{ contact: { value: 'sh801333', attrs: { type: 'tech' } } }
]
}, {}, {
_anonymus: [
legalDocument: { value: 'JVBERi0xLjQKJcOkw7zDtsOfCjIgMCBvYmoKPDwvTGVuZ3RoIDMgMCBSL0Zp'\
'bHRlci9GbGF0ZURlY29kZT4+CnN0cmVhbQp4nCWKsQrCMBRF9/cVdxaavBfz'\
'mhZCBrEKbsGAg7hZuymNg79vRO5yOOeyEXxoBYMb6ajGYfBiBtSZLhs8/62t'\
'LrQrpH1LIfh2LnfYg0AcyuMaWVIIkV2SyNvUucg+dRpZuefwk0Nqbky3cqKp'\
'UKaMFXY6nhXLG7ZUj/0Lmb7IGR/MCmVuZHN0cmVhbQplbmRvYmoKCjMgMCBv'\
'YmoKMTMwCmVuZG9iagoKNCAwIG9iago8PC9UeXBlL1hPYmplY3QKL1N1YnR5'\
'cGUvRm9ybQovQkJveFsgLTExMiA0MjAgNzA4IDQyMC4xIF0KL0dyb3VwPDwv'\
'Uy9UcmFuc3BhcmVuY3kvQ1MvRGV2aWNlUkdCL0sgdHJ1ZT4+Ci9MZW5ndGgg'\
'OAovRmlsdGVyL0ZsYXRlRGVjb2RlCj4+CnN0cmVhbQp4nAMAAAAAAQplbmRz'\
'dHJlYW0KZW5kb2JqCgo1IDAgb2JqCjw8L0NBIDAuNQogICAvY2EgMC41Cj4+'\
'CmVuZG9iagoKNyAwIG9iago8PC9MZW5ndGggOCAwIFIvRmlsdGVyL0ZsYXRl'\
'RGVjb2RlL0xlbmd0aDEgODQ0ND4+CnN0cmVhbQp4nOVYfVBbV3Y/970noQ9A'\
'EpZknoXRk5/Fh4UkQMZgm4AASQiDgzCQCBxAMhKg2HxYkp11nKzZTZx45bh2'\
's9t81G7jpNtOJtkZP+y0QzZpTKbZdjqbxJvZzW63G2/c2Z1pZ2Jqb5pkduLY'\
'9NwngT822Z3pdqZ/9CK9d87vfNxzzj33vofSyX1xyIdZYME7OhmdWVegVQHA'\
'2wCkaHR/Wlhq9QpIXwJgzGMz45MVnl/8JwD7W4A8xfieA2P/oGu9DqBFE01k'\
'Ih6NHaj/eg2AKYLApgkEum8cyEP+GeTXT0ymv/ZjrnM18q8jX7ZnejS6Rfsf'\
'hcj/GnnzZPRrM3+lPMwh/wXywlR0Mr49/vx3UFQCoOqamU6lY7B+CaB0gspn'\
'kvGZTwefxnhLj2B8acQI/tGRj6SS8gzLKZR5KjX8Px2KY2CCoOIu0MGMfL1t'\
'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'\
'0SzHcns+/5dzs7k3HRvO+CVjTh15g+TR/xLl63nCeQfIpevkwnUiXCeHrpHQ'\
'NTL78YmPmd9crbSeuXr+KtN9ZeTKmSts9RWiu0JUsKhfDC1GFmcWTy8qNbrL'\
'JB8+IoZfXWqwfui52P9Lzwf9cJE0hi7OXpQusvT9bvCiShu4SNj+D1izVb8g'\
'LFQvzCzMLvxo4dLC1QXV7Bsn3mD+/nW3Vfe69XXGeq773KFzbORFonvR+iIT'\
'Ohk5yZw4RXSnrKfcp9g/f9Zlfba91Pr0U+XWS09dfYqh7uueKjAERv6MHHry'\
'+JPMzGOzj514jJ09fOIwc2b/+f1MKlRpnZ5yWKfaN1h5T3F/noftV7JL8ou2'\
'b5e9IhAZ8VpHUGnnYLV1sL3SuspT1K/AYDlU1LFWtpntZqfZ4+x5Nk+1I1Rq'\
'7cHvpdDVEKPrtna7u+X/k6KdNnS0bWbb7Da2I1BpDbY3WHXt1nZ3+4X2D9uv'\
'tCtH2slz+AmcCZwPsN5ApTvgDZTaAiVBS7/ZY+rXe3T9DIF+4oF+t25Jx+h0'\
'I7pDOlaH/8kzs2aiIPPkxFxfr8PROZ+3tKNTUoV2SuSIZO+lV2/PoKQ8IkH/'\
'4M7wHCF/MnD42DFoXdsp1faGpcjagU4phoSXErNI6NfOmaF1IJVKO+jAV20k'\
'9+EVHPsQGk5lQXAsi8GRIqkUpFLEQWUyiQikHBSmCLUhaDmcAnqhUoesRalU'\
'qnj4vwGYP7CyCmVuZHN0cmVhbQplbmRvYmoKCjggMCBvYmoKNTE1NQplbmRv'\
'YmoKCjkgMCBvYmoKPDwvVHlwZS9Gb250RGVzY3JpcHRvci9Gb250TmFtZS9C'\
'QUFBQUErTGliZXJhdGlvblNlcmlmCi9GbGFncyA0Ci9Gb250QkJveFstMTc2'\
'IC0zMDMgMTAwNSA5ODFdL0l0YWxpY0FuZ2xlIDAKL0FzY2VudCA4OTEKL0Rl'\
'c2NlbnQgLTIxNgovQ2FwSGVpZ2h0IDk4MQovU3RlbVYgODAKL0ZvbnRGaWxl'\
'MiA3IDAgUgo+PgplbmRvYmoKCjEwIDAgb2JqCjw8L0xlbmd0aCAyNjMvRmls'\
'dGVyL0ZsYXRlRGVjb2RlPj4Kc3RyZWFtCnicXZDNasQgFIX3PoXL6WLQZCaZ'\
'BoJQUgay6A9N+wBGb1KhUTFmkbevP9MWulC+yz1H77mk6x97rTx5dUYM4PGk'\
'tHSwms0JwCPMSqOixFIJf6vSLRZuEQneYV89LL2eTNsi8hZ6q3c7PjxIM8Id'\
'Ii9OglN6xoePbgj1sFn7BQtojyliDEuYwjtP3D7zBUhyHXsZ2srvx2D5E7zv'\
'FnCZ6iKPIoyE1XIBjusZUEspw+31yhBo+a/XZMc4iU/ugrIISkqrMwtcJq6r'\
'yKfEl1Pkc+akqRKXNHKd9XXkS+Yi8n3mJnKTuUuz3H6NU8W1/aTFYnMuJE27'\
'TRFjOKXhd/3W2OhK5xucIn/9CmVuZHN0cmVhbQplbmRvYmoKCjExIDAgb2Jq'\
'Cjw8L1R5cGUvRm9udC9TdWJ0eXBlL1RydWVUeXBlL0Jhc2VGb250L0JBQUFB'\
'QStMaWJlcmF0aW9uU2VyaWYKL0ZpcnN0Q2hhciAwCi9MYXN0Q2hhciA5Ci9X'\
'aWR0aHNbMzY1IDYxMCA0NDMgMzg5IDI3NyAyNTAgMzMzIDQ0MyAyNzcgMjc3'\
'IF0KL0ZvbnREZXNjcmlwdG9yIDkgMCBSCi9Ub1VuaWNvZGUgMTAgMCBSCj4+'\
'CmVuZG9iagoKMTIgMCBvYmoKPDwvRjEgMTEgMCBSCj4+CmVuZG9iagoKMTMg'\
'MCBvYmoKPDwvRm9udCAxMiAwIFIKL1hPYmplY3Q8PC9UcjQgNCAwIFI+Pgov'\
'RXh0R1N0YXRlPDwvRUdTNSA1IDAgUj4+Ci9Qcm9jU2V0Wy9QREYvVGV4dC9J'\
'bWFnZUMvSW1hZ2VJL0ltYWdlQl0KPj4KZW5kb2JqCgoxIDAgb2JqCjw8L1R5'\
'cGUvUGFnZS9QYXJlbnQgNiAwIFIvUmVzb3VyY2VzIDEzIDAgUi9NZWRpYUJv'\
'eFswIDAgNTk1IDg0Ml0vR3JvdXA8PC9TL1RyYW5zcGFyZW5jeS9DUy9EZXZp'\
'Y2VSR0IvSSB0cnVlPj4vQ29udGVudHMgMiAwIFI+PgplbmRvYmoKCjYgMCBv'\
'YmoKPDwvVHlwZS9QYWdlcwovUmVzb3VyY2VzIDEzIDAgUgovTWVkaWFCb3hb'\
'IDAgMCA1OTUgODQyIF0KL0tpZHNbIDEgMCBSIF0KL0NvdW50IDE+PgplbmRv'\
'YmoKCjE0IDAgb2JqCjw8L1R5cGUvQ2F0YWxvZy9QYWdlcyA2IDAgUgovT3Bl'\
'bkFjdGlvblsxIDAgUiAvWFlaIG51bGwgbnVsbCAwXQovTGFuZyhlbi1VUykK'\
'Pj4KZW5kb2JqCgoxNSAwIG9iago8PC9DcmVhdG9yPEZFRkYwMDU3MDA3MjAw'\
'NjkwMDc0MDA2NTAwNzI+Ci9Qcm9kdWNlcjxGRUZGMDA0QzAwNjkwMDYyMDA3'\
'MjAwNjUwMDRGMDA2NjAwNjYwMDY5MDA2MzAwNjUwMDIwMDAzNDAwMkUwMDMy'\
'PgovQ3JlYXRpb25EYXRlKEQ6MjAxNDEyMjkxMjM5MTkrMDInMDAnKT4+CmVu'\
'ZG9iagoKeHJlZgowIDE2CjAwMDAwMDAwMDAgNjU1MzUgZiAKMDAwMDAwNjYw'\
'MiAwMDAwMCBuIAowMDAwMDAwMDE5IDAwMDAwIG4gCjAwMDAwMDAyMjAgMDAw'\
'MDAgbiAKMDAwMDAwMDI0MCAwMDAwMCBuIAowMDAwMDAwNDE5IDAwMDAwIG4g'\
'CjAwMDAwMDY3NDUgMDAwMDAgbiAKMDAwMDAwMDQ1OSAwMDAwMCBuIAowMDAw'\
'MDA1Njk4IDAwMDAwIG4gCjAwMDAwMDU3MTkgMDAwMDAgbiAKMDAwMDAwNTkx'\
'NCAwMDAwMCBuIAowMDAwMDA2MjQ3IDAwMDAwIG4gCjAwMDAwMDY0NDQgMDAw'\
'MDAgbiAKMDAwMDAwNjQ3NyAwMDAwMCBuIAowMDAwMDA2ODQ0IDAwMDAwIG4g'\
'CjAwMDAwMDY5NDEgMDAwMDAgbiAKdHJhaWxlcgo8PC9TaXplIDE2L1Jvb3Qg'\
'MTQgMCBSCi9JbmZvIDE1IDAgUgovSUQgWyA8MTM0NjQ3Qzk5NTQ5RDA2RTZB'\
'RUI5ODBDOERCRENBRUM+CjwxMzQ2NDdDOTk1NDlEMDZFNkFFQjk4MEM4REJE'\
'Q0FFQz4gXQovRG9jQ2hlY2tzdW0gLzFDNzgzNDRCNkIxRTEzQjlBQ0Y0NTlC'\
'OEExMzZDNEY1Cj4+CnN0YXJ0eHJlZgo3MTE2CiUlRU9GCg==', attrs: { type: 'pdf' } }
]
})
end
def domain_create_with_invalid_ns_ip_xml
xml_params = {
name: { value: 'example.ee' },
period: { value: '1', attrs: { unit: 'y' } },
ns: [
{
hostAttr: {
hostName: { value: 'ns1.example.net' },
hostAddr: { value: '192.0.2.2.invalid', attrs: { ip: 'v4' } }
}
},
{
hostAttr: {
hostName: { value: 'ns2.example.net' },
hostAddr: { value: 'invalid_ipv6', attrs: { ip: 'v6' } }
}
}
],
registrant: { value: 'jd1234' },
contact: { value: 'sh8013', attrs: { type: 'admin' } },
contact: { value: 'sh8013', attrs: { type: 'tech' } },
contact: { value: 'sh801333', attrs: { type: 'tech' } },
authInfo: {
pw: {
value: '2fooBAR'
}
}
}
epp_xml = EppXml::Domain.new(cl_trid: 'ABC-12345')
epp_xml.create(xml_params, {})
end
def domain_create_with_host_attrs
xml_params = {
name: { value: 'example.ee' },
period: { value: '1', attrs: { unit: 'y' } },
ns: [
{
hostAttr: [
{ hostName: { value: 'ns1.example.net' } },
{ hostAddr: { value: '192.0.2.2', attrs: { ip: 'v4' } } },
{ hostAddr: { value: '1080:0:0:0:8:800:200C:417A', attrs: { ip: 'v6' } } }
]
},
{
hostAttr: {
hostName: { value: 'ns2.example.net' }
}
}
],
registrant: { value: 'jd1234' },
contact: { value: 'sh8013', attrs: { type: 'admin' } },
contact: { value: 'sh8013', attrs: { type: 'tech' } },
contact: { value: 'sh801333', attrs: { type: 'tech' } },
authInfo: {
pw: {
value: '2fooBAR'
}
}
}
epp_xml = EppXml::Domain.new(cl_trid: 'ABC-12345')
epp_xml.create(xml_params, {})
end
def domain_update_xml(xml_params = {}, dnssec_params = {})
defaults = {
name: { value: 'example.ee' }
}
xml_params = defaults.deep_merge(xml_params)
epp_xml = EppXml::Domain.new(cl_trid: 'ABC-12345')
epp_xml.update(xml_params, dnssec_params)
end
def domain_check_xml(xml_params = {})
defaults = {
_anonymus: [
{ name: { value: 'example.ee' } }
]
}
xml_params = defaults.deep_merge(xml_params)
epp_xml = EppXml::Domain.new(cl_trid: 'ABC-12345')
epp_xml.check(xml_params)
end
def domain_transfer_xml(xml_params = {}, op = 'query')
defaults = {
name: { value: 'example.ee' },
authInfo: {
pw: { value: '98oiewslkfkd', attrs: { roid: 'JD1234-REP' } }
}
}
xml_params = defaults.deep_merge(xml_params)
epp_xml = EppXml::Domain.new(cl_trid: 'ABC-12345')
epp_xml.transfer(xml_params, op)
end
def log(req, res)
return unless ENV['EPP_DOC']
puts "REQUEST:
```xml
#{Nokogiri(req)}```
"
puts "RESPONSE:
```xml
#{res}```
"
end
end
RSpec.configure do |c|
c.include Epp, epp: true
end