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)