diff --git a/app/models/epp/domain.rb b/app/models/epp/domain.rb index 8e1da51b8..c6589b63d 100644 --- a/app/models/epp/domain.rb +++ b/app/models/epp/domain.rb @@ -187,7 +187,7 @@ class Epp::Domain < Domain self.period = period self.period_unit = unit - statuses.delete(DomainStatus::SERVER_HOLD) if self.status_notes["serverHold"].nil? || self.status_notes["serverHold"].empty? + statuses.delete(DomainStatus::SERVER_HOLD) if self.status_notes["serverHold"].blank? statuses.delete(DomainStatus::EXPIRED) cancel_pending_delete diff --git a/test/integration/epp/domain/renew/base_test.rb b/test/integration/epp/domain/renew/base_test.rb index 68d4f7d2a..0c573bc8d 100644 --- a/test/integration/epp/domain/renew/base_test.rb +++ b/test/integration/epp/domain/renew/base_test.rb @@ -70,6 +70,78 @@ class EppDomainRenewBaseTest < EppTestCase assert domain.statuses.include? DomainStatus::SERVER_UPDATE_PROHIBITED end + def test_domain_renew_if_hold_status_has_notes + travel_to Time.zone.parse('2010-07-05') + domain = domains(:shop) + original_valid_to = domain.valid_to + default_renewal_period = 1.year + domain.statuses << DomainStatus::SERVER_HOLD + domain.status_notes["serverHold"] = "test" + domain.save + + request_xml = <<-XML + + + + + + #{domain.name} + #{domain.expire_time.to_date} + 1 + + + + + XML + + post epp_renew_path, params: { frame: request_xml }, + headers: { 'HTTP_COOKIE' => 'session=api_bestnames' } + response_xml = Nokogiri::XML(response.body) + assert_correct_against_schema response_xml + + domain.reload + + assert_epp_response :completed_successfully + assert_equal original_valid_to + default_renewal_period, domain.valid_to + assert domain.statuses.include? DomainStatus::SERVER_HOLD + end + + def test_domain_renew_if_hold_status_do_not_has_notes + travel_to Time.zone.parse('2010-07-05') + domain = domains(:shop) + original_valid_to = domain.valid_to + default_renewal_period = 1.year + domain.statuses << DomainStatus::SERVER_HOLD + domain.status_notes["serverHold"] = "" + domain.save + + request_xml = <<-XML + + + + + + #{domain.name} + #{domain.expire_time.to_date} + 1 + + + + + XML + + post epp_renew_path, params: { frame: request_xml }, + headers: { 'HTTP_COOKIE' => 'session=api_bestnames' } + response_xml = Nokogiri::XML(response.body) + assert_correct_against_schema response_xml + + domain.reload + + assert_epp_response :completed_successfully + assert_equal original_valid_to + default_renewal_period, domain.valid_to + assert_not domain.statuses.include? DomainStatus::SERVER_HOLD + end + def test_domain_cannot_be_renewed_when_invalid domain = domains(:invalid)