From a02c849585aba900804a0a2a25d9b736237dbd91 Mon Sep 17 00:00:00 2001 From: Seamus Lee Date: Sat, 17 Apr 2021 09:28:44 +1000 Subject: [PATCH] (NFC) Fix possible flacky tests by splitting the parts of the checksum up so that the timestamp part can be tested using ApproxEquals assertion Update test as per Dave D --- tests/phpunit/CRM/Core/BAO/MessageTemplateTest.php | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/tests/phpunit/CRM/Core/BAO/MessageTemplateTest.php b/tests/phpunit/CRM/Core/BAO/MessageTemplateTest.php index 83d5029aa0..42da7e778f 100644 --- a/tests/phpunit/CRM/Core/BAO/MessageTemplateTest.php +++ b/tests/phpunit/CRM/Core/BAO/MessageTemplateTest.php @@ -164,7 +164,15 @@ Default Domain Name $expected .= $this->getExpectedContactOutput($address['id'], $tokenData, $messageContent['html']); $this->assertEquals($expected, $messageContent['html']); $this->assertEquals($expected, $messageContent['text']); - $this->assertEquals(rtrim(str_replace("\n", ' ', $expected)), $messageContent['subject']); + $checksum_position = strpos($messageContent['subject'], 'cs='); + $this->assertTrue($checksum_position !== FALSE); + $fixedExpected = rtrim(str_replace("\n", ' ', $expected)); + $this->assertEquals(substr($fixedExpected, 0, $checksum_position), substr($messageContent['subject'], 0, $checksum_position)); + $returned_parts = explode('_', substr($messageContent['subject'], $checksum_position)); + $expected_parts = explode('_', substr($fixedExpected, $checksum_position)); + $this->assertEquals($expected_parts[0], $returned_parts[0]); + $this->assertApproxEquals($expected_parts[1], $returned_parts[1], 2); + $this->assertEquals($expected_parts[2], $returned_parts[2]); } /** -- 2.25.1