diff --git a/config/application.yml.sample b/config/application.yml.sample
index 691740b2a..8f71d75d8 100644
--- a/config/application.yml.sample
+++ b/config/application.yml.sample
@@ -166,6 +166,7 @@ test:
lhv_keystore: 'test/fixtures/files/keystore.jks'
lhv_keystore_password: 'testtest'
lhv_keystore_alias: 'testtest'
+ legal_documents_dir: 'test/fixtures/files'
# Airbrake // Errbit:
airbrake_host: "https://your-errbit-host.ee"
diff --git a/test/fixtures/files/legaldoc.pdf b/test/fixtures/files/legaldoc.pdf
new file mode 100644
index 000000000..1ddf7a0e8
Binary files /dev/null and b/test/fixtures/files/legaldoc.pdf differ
diff --git a/test/jobs/domain_delete_confirm_job_test.rb b/test/jobs/domain_delete_confirm_job_test.rb
index 51af58c24..b999bd3c7 100644
--- a/test/jobs/domain_delete_confirm_job_test.rb
+++ b/test/jobs/domain_delete_confirm_job_test.rb
@@ -1,17 +1,11 @@
require "test_helper"
class DomainDeleteConfirmJobTest < ActiveSupport::TestCase
- def setup
- super
-
+ setup do
+ @legal_doc_path = 'test/fixtures/files/legaldoc.pdf'
@domain = domains(:shop)
@new_registrant = contacts(:william)
@user = users(:api_bestnames)
-
- @domain.update!(pending_json: { new_registrant_id: @new_registrant.id,
- new_registrant_name: @new_registrant.name,
- new_registrant_email: @new_registrant.email,
- current_user_id: @user.id })
end
def teardown
@@ -19,6 +13,11 @@ class DomainDeleteConfirmJobTest < ActiveSupport::TestCase
end
def test_rejected_registrant_verification_notifies_registrar
+ @domain.update!(pending_json: { new_registrant_id: @new_registrant.id,
+ new_registrant_name: @new_registrant.name,
+ new_registrant_email: @new_registrant.email,
+ current_user_id: @user.id })
+
DomainDeleteConfirmJob.enqueue(@domain.id, RegistrantVerification::REJECTED)
last_registrar_notification = @domain.registrar.notifications.last
@@ -27,10 +26,57 @@ class DomainDeleteConfirmJobTest < ActiveSupport::TestCase
end
def test_accepted_registrant_verification_notifies_registrar
+ @domain.update!(pending_json: { new_registrant_id: @new_registrant.id,
+ new_registrant_name: @new_registrant.name,
+ new_registrant_email: @new_registrant.email,
+ current_user_id: @user.id })
+
DomainDeleteConfirmJob.enqueue(@domain.id, RegistrantVerification::CONFIRMED)
last_registrar_notification = @domain.registrar.notifications.last
assert_equal(last_registrar_notification.attached_obj_id, @domain.id)
assert_equal(last_registrar_notification.text, 'Registrant confirmed domain deletion: shop.test')
end
+
+ def test_marks_domain_as_pending_delete_after_acceptance
+ epp_xml = "\n\n \n \n" \
+ " \n #{@domain.name}\n \n \n \n" \
+ " \n #{@legal_doc_path}\n" \
+ " \n \n 20alla-1594212240\n \n\n"
+
+ @domain.registrant_verification_asked!(epp_xml, @user.id)
+ @domain.pending_delete!
+ @domain.reload
+
+ assert @domain.registrant_delete_confirmable?(@domain.registrant_verification_token)
+ assert_equal @user.id, @domain.pending_json['current_user_id']
+
+ DomainDeleteConfirmJob.enqueue(@domain.id, RegistrantVerification::CONFIRMED)
+ @domain.reload
+
+ assert @domain.statuses.include? DomainStatus::PENDING_DELETE
+ assert @domain.statuses.include? DomainStatus::SERVER_HOLD
+ assert_not @domain.statuses.include? DomainStatus::PENDING_DELETE_CONFIRMATION
+ end
+
+ def test_clears_pending_flags_after_delete_denial
+ epp_xml = "\n\n \n \n" \
+ " \n #{@domain.name}\n \n \n \n" \
+ " \n #{@legal_doc_path}\n" \
+ " \n \n 20alla-1594212240\n \n\n"
+
+ @domain.registrant_verification_asked!(epp_xml, @user.id)
+ @domain.pending_delete!
+ @domain.reload
+
+ assert @domain.registrant_delete_confirmable?(@domain.registrant_verification_token)
+ assert_equal @user.id, @domain.pending_json['current_user_id']
+
+ DomainDeleteConfirmJob.enqueue(@domain.id, RegistrantVerification::REJECTED)
+ @domain.reload
+
+ assert_equal ['ok'], @domain.statuses
+ assert_not @domain.statuses.include? DomainStatus::PENDING_DELETE_CONFIRMATION
+ assert_not @domain.statuses.include? DomainStatus::PENDING_DELETE
+ end
end
diff --git a/test/jobs/domain_update_confirm_job_test.rb b/test/jobs/domain_update_confirm_job_test.rb
index 070b5d5f7..59bbf758d 100644
--- a/test/jobs/domain_update_confirm_job_test.rb
+++ b/test/jobs/domain_update_confirm_job_test.rb
@@ -7,6 +7,7 @@ class DomainUpdateConfirmJobTest < ActiveSupport::TestCase
@domain = domains(:shop)
@new_registrant = contacts(:william)
@user = users(:api_bestnames)
+ @legal_doc_path = 'test/fixtures/files/legaldoc.pdf'
@domain.update!(pending_json: { new_registrant_id: @new_registrant.id,
new_registrant_name: @new_registrant.name,
@@ -33,4 +34,34 @@ class DomainUpdateConfirmJobTest < ActiveSupport::TestCase
assert_equal(last_registrar_notification.attached_obj_id, @domain.id)
assert_equal(last_registrar_notification.text, 'Registrant confirmed domain update: shop.test')
end
+
+ def test_changes_domain_registrant_after_approval
+ epp_xml = "\n\n \n \n \n #{@domain.name}\n" \
+ " \n #{@new_registrant.code}\n \n \n \n \n \n" \
+ " \n #{@legal_doc_path}\n \n" \
+ " \n 20alla-1594199756\n \n\n"
+ @domain.pending_json['frame'] = epp_xml
+ @domain.update(pending_json: @domain.pending_json)
+
+ @domain.reload
+ DomainUpdateConfirmJob.enqueue(@domain.id, RegistrantVerification::CONFIRMED)
+ @domain.reload
+
+ assert_equal @domain.registrant.code, @new_registrant.code
+ end
+
+ def test_clears_pending_update_after_denial
+ epp_xml = "\n\n \n \n \n #{@domain.name}\n" \
+ " \n #{@new_registrant.code}\n \n \n \n \n \n" \
+ " \n #{@legal_doc_path}\n \n" \
+ " \n 20alla-1594199756\n \n\n"
+ @domain.pending_json['frame'] = epp_xml
+ @domain.update(pending_json: @domain.pending_json)
+
+ DomainUpdateConfirmJob.enqueue(@domain.id, RegistrantVerification::REJECTED)
+ @domain.reload
+
+ assert_not @domain.statuses.include? DomainStatus::PENDING_DELETE_CONFIRMATION
+ assert_not @domain.statuses.include? DomainStatus::PENDING_DELETE
+ end
end