From 2af18edfea92a990e36801efc9ce8bb947c4eba8 Mon Sep 17 00:00:00 2001 From: Alex Sherman Date: Tue, 21 Jan 2020 15:08:38 +0500 Subject: [PATCH] Add conditions for force delete clean on registrant change --- app/models/domain.rb | 2 +- .../epp/domain/update/base_test.rb | 40 +++++++++++++++++++ 2 files changed, 41 insertions(+), 1 deletion(-) diff --git a/app/models/domain.rb b/app/models/domain.rb index ca2a664b0..d6545284d 100644 --- a/app/models/domain.rb +++ b/app/models/domain.rb @@ -547,7 +547,7 @@ class Domain < ApplicationRecord activate if nameservers.reject(&:marked_for_destruction?).size >= Setting.ns_min_count end - cancel_force_delete if force_delete_scheduled? && pending_json['new_registrant_id'] + cancel_force_delete if force_delete_scheduled? && registrant_id_changed? if statuses.empty? && valid? statuses << DomainStatus::OK diff --git a/test/integration/epp/domain/update/base_test.rb b/test/integration/epp/domain/update/base_test.rb index 9e533a501..b645df95a 100644 --- a/test/integration/epp/domain/update/base_test.rb +++ b/test/integration/epp/domain/update/base_test.rb @@ -268,6 +268,46 @@ class EppDomainUpdateBaseTest < EppTestCase assert_no_emails end + def test_clears_force_delete_when_registrar_changed + Setting.request_confrimation_on_registrant_change_enabled = true + new_registrant = contacts(:william).becomes(Registrant) + @domain.schedule_force_delete(type: :fast_track) + assert_not_equal new_registrant, @domain.registrant + assert @domain.force_delete_scheduled? + + request_xml = <<-XML + + + + + + #{@domain.name} + + #{new_registrant.code} + + + + + + #{'test' * 2000} + + + + + XML + + post epp_update_path, params: { frame: request_xml }, + headers: { 'HTTP_COOKIE' => 'session=api_bestnames' } + @domain.reload + + assert_epp_response :completed_successfully + assert_equal new_registrant, @domain.registrant + assert_not @domain.registrant_verification_asked? + refute @domain.force_delete_scheduled? + refute_includes @domain.statuses, DomainStatus::PENDING_UPDATE + assert_no_emails + end + def test_deactivates_domain_when_all_name_servers_are_removed assert @domain.active? assert_equal 2, @domain.nameservers.count