Merge branch 'master' of github.com:internetee/registry

This commit is contained in:
Andres Keskküla 2014-11-03 18:00:08 +02:00
commit 660e910208
5 changed files with 40 additions and 12 deletions

View file

@ -89,7 +89,7 @@ group :development, :test do
gem 'epp', '~> 1.4.0' gem 'epp', '~> 1.4.0'
# EPP XMLs # EPP XMLs
gem 'epp-xml', '~> 0.3.0' gem 'epp-xml', '~> 0.5.0'
# Replacement for fixtures # Replacement for fixtures
gem 'fabrication', '~> 2.11.3' gem 'fabrication', '~> 2.11.3'

View file

@ -93,7 +93,7 @@ GEM
epp (1.4.0) epp (1.4.0)
hpricot hpricot
libxml-ruby libxml-ruby
epp-xml (0.3.0) epp-xml (0.5.0)
activesupport (~> 4.1) activesupport (~> 4.1)
builder (~> 3.2) builder (~> 3.2)
equalizer (0.0.9) equalizer (0.0.9)
@ -365,7 +365,7 @@ DEPENDENCIES
database_cleaner (~> 1.3.0) database_cleaner (~> 1.3.0)
devise (~> 3.3.0) devise (~> 3.3.0)
epp (~> 1.4.0) epp (~> 1.4.0)
epp-xml (~> 0.3.0) epp-xml (~> 0.5.0)
fabrication (~> 2.11.3) fabrication (~> 2.11.3)
faker (~> 1.3.0) faker (~> 1.3.0)
guard (~> 2.6.1) guard (~> 2.6.1)

View file

@ -31,7 +31,11 @@ module Epp::DomainsHelper
@domain = find_domain @domain = find_domain
handle_errors(@domain) and return unless @domain handle_errors(@domain) and return unless @domain
handle_errors(@domain) and return unless @domain.renew(@ph[:curExpDate], @ph[:period]) handle_errors(@domain) and return unless @domain.renew(
parsed_frame.css('curExpDate').text,
parsed_frame.css('period').text,
parsed_frame.css('period').first['unit']
)
render '/epp/domains/renew' render '/epp/domains/renew'
end end

View file

@ -22,7 +22,8 @@ class Epp::EppDomain < Domain
[:admin_contacts, :out_of_range], [:admin_contacts, :out_of_range],
[:base, :ds_data_with_key_not_allowed], [:base, :ds_data_with_key_not_allowed],
[:base, :ds_data_not_allowed], [:base, :ds_data_not_allowed],
[:base, :key_data_not_allowed] [:base, :key_data_not_allowed],
[:period, :not_a_number]
], ],
'2004' => [ # Parameter value range error '2004' => [ # Parameter value range error
[:nameservers, :out_of_range, [:nameservers, :out_of_range,
@ -268,7 +269,6 @@ class Epp::EppDomain < Domain
return false if errors.any? return false if errors.any?
p = self.class.convert_period_to_time(period, unit) p = self.class.convert_period_to_time(period, unit)
self.valid_to = valid_to + p self.valid_to = valid_to + p
self.period = period self.period = period
self.period_unit = unit self.period_unit = unit
@ -288,6 +288,11 @@ class Epp::EppDomain < Domain
return approve_pending_transfer(params[:current_user]) return approve_pending_transfer(params[:current_user])
end end
if !pt && params[:action] != 'query'
add_epp_error('2306', nil, nil, I18n.t('errors.messages.attribute_op_is_invalid'))
return false
end
if !pt && params[:action] == 'query' if !pt && params[:action] == 'query'
return false unless can_be_transferred_to?(params[:current_user].registrar) return false unless can_be_transferred_to?(params[:current_user].registrar)
end end
@ -313,7 +318,7 @@ class Epp::EppDomain < Domain
generate_auth_info generate_auth_info
self.registrar = params[:current_user].registrar self.registrar = params[:current_user].registrar
save save(validate: false)
end end
end end
# rubocop: enable Metrics/PerceivedComplexity # rubocop: enable Metrics/PerceivedComplexity
@ -335,13 +340,18 @@ class Epp::EppDomain < Domain
generate_auth_info generate_auth_info
self.registrar = pt.transfer_to self.registrar = pt.transfer_to
save save(validate: false)
end end
### VALIDATIONS ### ### VALIDATIONS ###
def validate_exp_dates(cur_exp_date) def validate_exp_dates(cur_exp_date)
return if cur_exp_date.to_date == valid_to begin
return if cur_exp_date.to_date == valid_to
rescue
add_epp_error('2306', 'curExpDate', cur_exp_date, I18n.t('errors.messages.epp_exp_dates_do_not_match'))
return
end
add_epp_error('2306', 'curExpDate', cur_exp_date, I18n.t('errors.messages.epp_exp_dates_do_not_match')) add_epp_error('2306', 'curExpDate', cur_exp_date, I18n.t('errors.messages.epp_exp_dates_do_not_match'))
end end

View file

@ -682,7 +682,12 @@ describe 'EPP Domain', epp: true do
it 'renews a domain' do it 'renews a domain' do
exp_date = (Date.today + 1.year) exp_date = (Date.today + 1.year)
xml = domain_renew_xml(curExpDate: exp_date.to_s) xml = EppXml::Domain.renew(
name: { value: 'example.ee' },
curExpDate: { value: exp_date.to_s },
period: { value: '1', attrs: { unit: 'y' } }
)
response = epp_request(xml, :xml) response = epp_request(xml, :xml)
ex_date = response[:parsed].css('renData exDate').text ex_date = response[:parsed].css('renData exDate').text
name = response[:parsed].css('renData name').text name = response[:parsed].css('renData name').text
@ -691,7 +696,11 @@ describe 'EPP Domain', epp: true do
end end
it 'returns an error when given and current exp dates do not match' do it 'returns an error when given and current exp dates do not match' do
xml = domain_renew_xml(curExpDate: '2016-08-07') xml = EppXml::Domain.renew(
name: { value: 'example.ee' },
curExpDate: { value: '2016-08-07' },
period: { value: '1', attrs: { unit: 'y' } }
)
response = epp_request(xml, :xml) response = epp_request(xml, :xml)
expect(response[:results][0][:result_code]).to eq('2306') expect(response[:results][0][:result_code]).to eq('2306')
@ -700,7 +709,12 @@ describe 'EPP Domain', epp: true do
it 'returns an error when period is invalid' do it 'returns an error when period is invalid' do
exp_date = (Date.today + 1.year) exp_date = (Date.today + 1.year)
xml = domain_renew_xml(period_value: 4, curExpDate: exp_date.to_s)
xml = EppXml::Domain.renew(
name: { value: 'example.ee' },
curExpDate: { value: exp_date.to_s },
period: { value: '4', attrs: { unit: 'y' } }
)
response = epp_request(xml, :xml) response = epp_request(xml, :xml)
expect(response[:results][0][:result_code]).to eq('2004') expect(response[:results][0][:result_code]).to eq('2004')