From e02b6fcbbe6f21213d36294893ea4ea533950430 Mon Sep 17 00:00:00 2001 From: mark burdett Date: Thu, 5 Jul 2018 23:44:02 -0700 Subject: [PATCH] add test for CRM_Mailing_BAO_MailingJob --- .../CRM/Mailing/BAO/MailingJobTest.php | 67 +++++++++++++++++++ 1 file changed, 67 insertions(+) create mode 100644 tests/phpunit/CRM/Mailing/BAO/MailingJobTest.php diff --git a/tests/phpunit/CRM/Mailing/BAO/MailingJobTest.php b/tests/phpunit/CRM/Mailing/BAO/MailingJobTest.php new file mode 100644 index 0000000000..1ca02517c2 --- /dev/null +++ b/tests/phpunit/CRM/Mailing/BAO/MailingJobTest.php @@ -0,0 +1,67 @@ +getMethod($name); + $method->setAccessible(TRUE); + return $method->invokeArgs($obj, $args); + } + + /** + * Tests CRM_Mailing_BAO_MailingJob::isTemporaryError() method. + */ + public function testIsTemporaryError() { + $testcases[] = ['return' => TRUE, 'message' => 'Failed to set sender: test@example.org [SMTP: Invalid response code received from SMTP server while sending email. This is often caused by a misconfiguration in Outbound Email settings. Please verify the settings at Administer CiviCRM >> Global Settings >> Outbound Email (SMTP). (code: 421, response: Timeout waiting for data from client.)]']; + $testcases[] = ['return' => TRUE, 'message' => 'Failed to send data [SMTP: Invalid response code received from SMTP server while sending email. This is often caused by a misconfiguration in Outbound Email settings. Please verify the settings at Administer CiviCRM >> Global Settings >> Outbound Email (SMTP). (code: 454, response: Throttling failure: Maximum sending rate exceeded.)]']; + $testcases[] = ['return' => TRUE, 'message' => 'Failed to set sender: test@example.org [SMTP: Failed to write to socket: not connected (code: -1, response: )]']; + // @fixme: These errors also seem to be temporary, but are not yet handled as temporary. + $testcases[] = ['return' => FALSE, 'message' => 'Failed to connect to email.example.com:587 [SMTP: Failed to connect socket: Connection timed out (code: -1, response: )]']; + $testcases[] = ['return' => FALSE, 'message' => 'Failed to send data [SMTP: Invalid response code received from SMTP server while sending email. This is often caused by a misconfiguration in Outbound Email settings. Please verify the settings at Administer CiviCRM >> Global Settings >> Outbound Email (SMTP). (code: 554, response: Message rejected: Sending suspended for this account. For more information, please check the inbox of the email address associated with your AWS account.)]']; + $testcases[] = ['return' => FALSE, 'message' => 'authentication failure [SMTP: Invalid response code received from SMTP server while sending email. This is often caused by a misconfiguration in Outbound Email settings. Please verify the settings at Administer CiviCRM >> Global Settings >> Outbound Email (SMTP). (code: 454, response: Temporary authentication failure)]']; + $object = new CRM_Mailing_BAO_MailingJob(); + foreach ($testcases as $testcase) { + $isTemporaryError = self::callMethod($object, 'isTemporaryError', [$testcase['message']]); + if ($testcase['return']) { + $this->assertTrue($isTemporaryError); + } + else { + $this->assertFalse($isTemporaryError); + } + } + } + +} -- 2.25.1