diff --git a/app/helpers/epp/domains_helper.rb b/app/helpers/epp/domains_helper.rb index b73b1d231..8e4935f14 100644 --- a/app/helpers/epp/domains_helper.rb +++ b/app/helpers/epp/domains_helper.rb @@ -30,8 +30,7 @@ module Epp::DomainsHelper if @domain.renew(ph[:curExpDate], ph[:period]) render '/epp/domains/renew' else - handle_errors - render '/epp/error' + handle_errors(@domain) end end diff --git a/app/models/domain.rb b/app/models/domain.rb index e4552def2..33d7911ce 100644 --- a/app/models/domain.rb +++ b/app/models/domain.rb @@ -5,9 +5,10 @@ class Domain < ActiveRecord::Base include EppErrors EPP_CODE_MAP = { - '2302' => ['Domain name already exists', 'Domain name is reserved or restricted'], - '2306' => ['Registrant is missing', 'Nameservers count must be between 1-13', 'Admin contact is missing'], - '2303' => ['Contact was not found'] + '2302' => ['Domain name already exists', 'Domain name is reserved or restricted'], # Object exists + '2306' => ['Registrant is missing', 'Admin contact is missing', 'Given and current expire dates do not match'], # Parameter policy error + '2004' => ['Nameservers count must be between 1-13'], # Parameter value range error + '2303' => ['Contact was not found'] # Object does not exist } EPP_OBJ = 'domain' diff --git a/spec/epp/domain_spec.rb b/spec/epp/domain_spec.rb index 264f69a1b..3fef6fc2a 100644 --- a/spec/epp/domain_spec.rb +++ b/spec/epp/domain_spec.rb @@ -69,13 +69,13 @@ describe 'EPP Domain', epp: true do it 'does not create domain without nameservers' do response = epp_request('domains/create_wo_nameservers.xml') - expect(response[:result_code]).to eq('2306') + expect(response[:result_code]).to eq('2004') expect(response[:msg]).to eq('Nameservers count must be between 1-13') end it 'does not create domain with too many nameservers' do response = epp_request('domains/create_w_too_many_nameservers.xml') - expect(response[:result_code]).to eq('2306') + expect(response[:result_code]).to eq('2004') expect(response[:msg]).to eq('Nameservers count must be between 1-13') end @@ -141,6 +141,12 @@ describe 'EPP Domain', epp: true do expect(exDate).to eq ('2015-08-07 00:00:00 UTC') expect(name).to eq ('example.ee') end + + it 'returns an error when given and current exp dates do not match' do + response = epp_request('domains/renew_w_not_matching_exp_dates.xml') + expect(response[:results][0][:result_code]).to eq('2306') + expect(response[:results][0][:msg]).to eq('Given and current expire dates do not match') + end end it 'checks a domain' do diff --git a/spec/epp/requests/domains/renew_w_not_matching_exp_dates.xml b/spec/epp/requests/domains/renew_w_not_matching_exp_dates.xml new file mode 100644 index 000000000..cfb9f5041 --- /dev/null +++ b/spec/epp/requests/domains/renew_w_not_matching_exp_dates.xml @@ -0,0 +1,14 @@ + + + + + + example.ee + 2016-08-07 + 1 + + + ABC-12345 + +