mirror of
https://github.com/internetee/registry.git
synced 2025-06-30 08:13:34 +02:00
parent
d993226208
commit
e0582bb0a9
2 changed files with 99 additions and 0 deletions
|
@ -603,6 +603,14 @@ class Epp::Domain < Domain
|
|||
plural_period_unit_name = (unit == 'm' ? 'months' : 'years').to_sym
|
||||
renewed_expire_time = valid_to.advance(plural_period_unit_name => period.to_i)
|
||||
|
||||
max_reg_time = 11.years.from_now
|
||||
|
||||
if renewed_expire_time >= max_reg_time
|
||||
add_epp_error('2105', nil, nil, I18n.t('epp.domains.object_is_not_eligible_for_renewal',
|
||||
max_date: max_reg_time.to_date.to_s(:db)))
|
||||
return false if errors.any?
|
||||
end
|
||||
|
||||
self.expire_time = renewed_expire_time
|
||||
self.outzone_at = nil
|
||||
self.delete_at = nil
|
||||
|
|
91
spec/requests/epp/domain/renew/max_expire_time_spec.rb
Normal file
91
spec/requests/epp/domain/renew/max_expire_time_spec.rb
Normal file
|
@ -0,0 +1,91 @@
|
|||
require 'rails_helper'
|
||||
|
||||
RSpec.describe 'EPP domain:renew' do
|
||||
let(:user) { create(:api_user_epp, registrar: registrar) }
|
||||
let(:registrar) { create(:registrar_with_unlimited_balance) }
|
||||
let!(:zone) { create(:zone, origin: 'test') }
|
||||
let!(:price) { create(:price,
|
||||
duration: '10 years',
|
||||
price: Money.from_amount(1),
|
||||
operation_category: 'renew',
|
||||
valid_from: Time.zone.parse('05.07.2010'),
|
||||
valid_to: Time.zone.parse('05.07.2010'),
|
||||
zone: zone)
|
||||
}
|
||||
subject(:response_xml) { Nokogiri::XML(response.body) }
|
||||
subject(:response_code) { response_xml.xpath('//xmlns:result').first['code'] }
|
||||
subject(:response_description) { response_xml.css('result msg').text }
|
||||
|
||||
before :example do
|
||||
travel_to Time.zone.parse('05.07.2010')
|
||||
Setting.days_to_renew_domain_before_expire = 0
|
||||
sign_in_to_epp_area(user: user)
|
||||
end
|
||||
|
||||
context 'when domain can be renewed' do
|
||||
let!(:domain) { create(:domain,
|
||||
registrar: registrar,
|
||||
name: 'test.test',
|
||||
expire_time: Time.zone.parse('05.07.2010'))
|
||||
}
|
||||
let(:request_xml) { <<-XML
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<epp xmlns="https://epp.tld.ee/schema/epp-ee-1.0.xsd">
|
||||
<command>
|
||||
<renew>
|
||||
<domain:renew xmlns:domain="https://epp.tld.ee/schema/domain-eis-1.0.xsd">
|
||||
<domain:name>test.test</domain:name>
|
||||
<domain:curExpDate>2010-07-05</domain:curExpDate>
|
||||
<domain:period unit="y">10</domain:period>
|
||||
</domain:renew>
|
||||
</renew>
|
||||
</command>
|
||||
</epp>
|
||||
XML
|
||||
}
|
||||
|
||||
it 'returns epp code of 1000' do
|
||||
post '/epp/command/renew', frame: request_xml
|
||||
expect(response_code).to eq('1000')
|
||||
end
|
||||
|
||||
it 'returns epp description' do
|
||||
post '/epp/command/renew', frame: request_xml
|
||||
expect(response_description).to eq('Command completed successfully')
|
||||
end
|
||||
end
|
||||
|
||||
context 'when domain cannot be renewed' do
|
||||
let!(:domain) { create(:domain,
|
||||
registrar: registrar,
|
||||
name: 'test.test',
|
||||
expire_time: Time.zone.parse('05.07.2011'))
|
||||
}
|
||||
let(:request_xml) { <<-XML
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<epp xmlns="https://epp.tld.ee/schema/epp-ee-1.0.xsd">
|
||||
<command>
|
||||
<renew>
|
||||
<domain:renew xmlns:domain="https://epp.tld.ee/schema/domain-eis-1.0.xsd">
|
||||
<domain:name>test.test</domain:name>
|
||||
<domain:curExpDate>2011-07-05</domain:curExpDate>
|
||||
<domain:period unit="y">10</domain:period>
|
||||
</domain:renew>
|
||||
</renew>
|
||||
</command>
|
||||
</epp>
|
||||
XML
|
||||
}
|
||||
|
||||
it 'returns epp code of 2105' do
|
||||
post '/epp/command/renew', frame: request_xml
|
||||
expect(response_code).to eq('2105')
|
||||
end
|
||||
|
||||
it 'returns epp description' do
|
||||
post '/epp/command/renew', frame: request_xml
|
||||
expect(response_description).to eq('Object is not eligible for renewal; ' \
|
||||
'Expiration date must be before 2021-07-05')
|
||||
end
|
||||
end
|
||||
end
|
Loading…
Add table
Add a link
Reference in a new issue