From 908d9e8baa09888b21b99218e5013e18b03cc4e5 Mon Sep 17 00:00:00 2001 From: demeritcowboy Date: Thu, 29 Jul 2021 12:11:20 -0400 Subject: [PATCH] test for invalidateChecksum hook --- tests/phpunit/CRM/Contact/BAO/ContactTest.php | 25 +++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/tests/phpunit/CRM/Contact/BAO/ContactTest.php b/tests/phpunit/CRM/Contact/BAO/ContactTest.php index aa307e7b61..0d727d359b 100644 --- a/tests/phpunit/CRM/Contact/BAO/ContactTest.php +++ b/tests/phpunit/CRM/Contact/BAO/ContactTest.php @@ -1801,4 +1801,29 @@ class CRM_Contact_BAO_ContactTest extends CiviUnitTestCase { $this->assertGreaterThanOrEqual('59', $age['years']); } + /** + * Test invalidateChecksum hook. + */ + public function testInvalidateChecksumHook() { + $contact_id = $this->individualCreate(); + $checksum = CRM_Contact_BAO_Contact_Utils::generateChecksum($contact_id); + // without the hook it's valid + $this->assertTrue(CRM_Contact_BAO_Contact_Utils::validChecksum($contact_id, $checksum)); + $this->hookClass->setHook('civicrm_invalidateChecksum', [$this, 'hookForInvalidateChecksum']); + // with the hook it should be invalid, because our hook implementation says so + $this->assertFalse(CRM_Contact_BAO_Contact_Utils::validChecksum($contact_id, $checksum)); + } + + /** + * Hook for invalidateChecksum. + * + * @param int $contactID + * @param string $inputCheck + * @param bool $invalid + */ + public function hookForInvalidateChecksum(int $contactID, string $inputCheck, bool &$invalid) { + // invalidate all checksums + $invalid = TRUE; + } + } -- 2.25.1