require 'rails_helper' describe 'EPP Helper', epp: true do context 'in context of Domain' do it 'generates valid create xml' do expected = Nokogiri::XML(' example.ee 1 ns1.example.net ns2.example.net jd1234 257 3 5 AwEAAddt2AkLfYGKgiEZB5SmIF8EvrjxNMH6HtxWEA4RJ9Ao6LCWheg8 sh8013 sh8013 sh801333 ABC-12345 ').to_s.squish generated = Nokogiri::XML(domain_create_xml).to_s.squish expect(generated).to eq(expected) ### expected = Nokogiri::XML(' one.ee 345 ns1.test.net ns2.test.net 32fsdaf 257 3 5 AwEAAddt2AkLfYGKgiEZB5SmIF8EvrjxNMH6HtxWEA4RJ9Ao6LCWheg8 2323rafaf 3dgxx 345xxv ABC-12345 ').to_s.squish xml = domain_create_xml({ name: { value: 'one.ee' }, period: {value: '345', attrs: { unit: 'd' } }, ns: [ { hostObj: {value: 'ns1.test.net' } }, { hostObj: {value: 'ns2.test.net' } } ], registrant: { value: '32fsdaf' }, _other: [ { contact: {value: '2323rafaf', attrs: { type: 'admin' } } }, { contact: {value: '3dgxx', attrs: { type: 'tech' } } }, { contact: {value: '345xxv', attrs: { type: 'tech' } } } ] }) generated = Nokogiri::XML(xml).to_s.squish expect(generated).to eq(expected) ### expected = Nokogiri::XML(' one.ee ABC-12345 ').to_s.squish xml = domain_create_xml({ name: { value: 'one.ee' }, period: nil, ns: nil, registrant: nil, _other: nil, dnssec: nil }) generated = Nokogiri::XML(xml).to_s.squish expect(generated).to eq(expected) end it 'generates valid info xml' do expected = Nokogiri::XML(' example.ee 2fooBAR ABC-12345 ').to_s.squish generated = Nokogiri::XML(domain_info_xml).to_s.squish expect(generated).to eq(expected) expected = Nokogiri::XML(' one.ee b3rafsla ABC-12345 ').to_s.squish generated = Nokogiri::XML(domain_info_xml(name_value: 'one.ee', name_hosts: 'sub', pw: 'b3rafsla')).to_s.squish expect(generated).to eq(expected) end it 'generates valid check xml' do expected = Nokogiri::XML(' example.ee ABC-12345 ').to_s.squish generated = Nokogiri::XML(domain_check_xml).to_s.squish expect(generated).to eq(expected) expected = Nokogiri::XML(' example.ee example2.ee example3.ee ABC-12345 ').to_s.squish generated = Nokogiri::XML(domain_check_xml(names: ['example.ee', 'example2.ee', 'example3.ee'])).to_s.squish expect(generated).to eq(expected) end it 'generates valid renew xml' do expected = Nokogiri::XML(' example.ee 2014-08-07 1 ABC-12345 ').to_s.squish generated = Nokogiri::XML(domain_renew_xml).to_s.squish expect(generated).to eq(expected) expected = Nokogiri::XML(' one.ee 2009-11-15 365 ABC-12345 ').to_s.squish generated = Nokogiri::XML(domain_renew_xml(name: 'one.ee', curExpDate: '2009-11-15', period_value: '365', period_unit: 'd')).to_s.squish expect(generated).to eq(expected) end it 'generates valid update xml' do # Detailed update expected = Nokogiri::XML(' example.ee ns2.example.com mak21 Payment overdue. ns1.example.com sh8013 mak21 ABC-12345 ').to_s.squish xml = domain_update_xml( name: { value: 'example.ee' }, add: [ { ns: [ hostObj: { value: 'ns1.example.com' }, hostObj: { value: 'ns2.example.com' } ] }, { contact: { attrs: { type: 'tech' }, value: 'mak21' } }, { status: { attrs: { s: 'clientUpdateProhibited' }, value: '' } }, { status: { attrs: { s: 'clientHold', lang: 'en' }, value: 'Payment overdue.' } } ], rem: [ ns: [ hostObj: { value: 'ns1.example.com' } ], contact: { attrs: { type: 'tech' }, value: 'sh8013' }, status: { attrs: { s: 'clientUpdateProhibited' }, value: '' } ], chg: [ registrant: { value: 'mak21' } ] ) generated = Nokogiri::XML(xml).to_s.squish expect(generated).to eq(expected) # Update with NS IP-s expected = Nokogiri::XML(' one.ee sh8013 Payment overdue. ns1.example.net 192.0.2.2 1080:0:0:0:8:800:200C:417A sh8013 sh8013 ABC-12345 ').to_s.squish xml = domain_update_xml( name: { value: 'one.ee' }, add: [ ns: nil, contact: { value: 'sh8013', attrs: { type: 'admin' } }, status: { value: 'Payment overdue.', attrs: { s: 'testStatus', lang: 'et' } } ], rem: [ 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' } } } ] ], contact: { attrs: { type: 'tech' }, value: 'sh8013' }, status: { attrs: { s: 'clientUpdateProhibited' }, value: '' } ], chg: [ registrant: { value: 'sh8013' } ] ) generated = Nokogiri::XML(xml).to_s.squish expect(generated).to eq(expected) ## Update with chg expected = Nokogiri::XML(' example.ee mak21 ABC-12345 ').to_s.squish xml = domain_update_xml( chg: [ registrant: { value: 'mak21' } ] ) generated = Nokogiri::XML(xml).to_s.squish expect(generated).to eq(expected) end it 'generates valid transfer xml' do expected = Nokogiri::XML(' example.ee 98oiewslkfkd ABC-12345 ').to_s.squish generated = Nokogiri::XML(domain_transfer_xml).to_s.squish expect(generated).to eq(expected) expected = Nokogiri::XML(' one.ee test ABC-12345 ').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 it 'generates valid delete xml' do expected = Nokogiri::XML(' example.ee ABC-12345 ').to_s.squish generated = Nokogiri::XML(domain_delete_xml).to_s.squish expect(generated).to eq(expected) expected = Nokogiri::XML(' one.ee ABC-12345 ').to_s.squish generated = Nokogiri::XML(domain_delete_xml(name: 'one.ee')).to_s.squish expect(generated).to eq(expected) end end end