From 9c9ff71e1eb20d138a96f9f93eb8fbde2f9c05a7 Mon Sep 17 00:00:00 2001 From: Martin Lensment Date: Fri, 27 Jun 2014 18:00:39 +0300 Subject: [PATCH] Domain checking for single domain --- app/helpers/epp/domains_helper.rb | 2 ++ app/views/epp/domains/check.xml.builder | 2 +- spec/epp/domain_spec.rb | 13 +++++++++++++ spec/support/epp.rb | 3 ++- 4 files changed, 18 insertions(+), 2 deletions(-) diff --git a/app/helpers/epp/domains_helper.rb b/app/helpers/epp/domains_helper.rb index 892582dc1..09d426b4a 100644 --- a/app/helpers/epp/domains_helper.rb +++ b/app/helpers/epp/domains_helper.rb @@ -6,7 +6,9 @@ module Epp::DomainsHelper def check_domain cp = command_params_for('check') + @domain = cp[:name] + @avail = Domain.find_by(name: @domain) ? '0' : '1' render '/epp/domains/check' end diff --git a/app/views/epp/domains/check.xml.builder b/app/views/epp/domains/check.xml.builder index da955e0cb..dad1f9646 100644 --- a/app/views/epp/domains/check.xml.builder +++ b/app/views/epp/domains/check.xml.builder @@ -7,7 +7,7 @@ xml.epp_head do xml.resData do xml.tag!('domain:chkData', 'xmlns:domain' => 'http://www.nic.cz/xml/epp/domain-1.4', 'xsi:schemaLocation' => 'http://www.nic.cz/xml/epp/domain-1.4 domain-1.4.xsd') do xml.tag!('domain:cd') do - xml.tag!('domain:name', @domain, 'avail' => 1) + xml.tag!('domain:name', @domain, 'avail' => @avail) end end end diff --git a/spec/epp/domain_spec.rb b/spec/epp/domain_spec.rb index 331a3d354..2504e79c8 100644 --- a/spec/epp/domain_spec.rb +++ b/spec/epp/domain_spec.rb @@ -6,6 +6,7 @@ describe 'EPP Domain', epp: true do context 'with valid user' do before(:each) { Fabricate(:epp_user) } + # incomplete it 'creates a domain' do response = epp_request('domains/create.xml') expect(response[:result_code]).to eq('1000') @@ -14,10 +15,22 @@ describe 'EPP Domain', epp: true do expect(Domain.first.registrar.name).to eq('Zone Media OÜ') end + # incomplete it 'checks domain' do response = epp_request('domains/check.xml') expect(response[:result_code]).to eq('1000') expect(response[:msg]).to eq('Command completed successfully') + + domain = response[:parsed].css('resData chkData cd name').first + expect(domain.text).to eq('test.ee') + expect(domain[:avail]).to eq('1') + + Fabricate(:domain, name: 'test.ee') + + response = epp_request('domains/check.xml') + domain = response[:parsed].css('resData chkData cd name').first + expect(domain.text).to eq('test.ee') + expect(domain[:avail]).to eq('0') end end diff --git a/spec/support/epp.rb b/spec/support/epp.rb index 866cdceff..798f63a64 100644 --- a/spec/support/epp.rb +++ b/spec/support/epp.rb @@ -18,7 +18,8 @@ module Epp { result_code: res.css('epp response result').first[:code], msg: res.css('epp response result msg').text, - clTRID: res.css('epp trID clTRID').text + clTRID: res.css('epp trID clTRID').text, + parsed: res.remove_namespaces! } end