From 8a19fd906fdcc3dc6576ffcca58fc8aba2598a2f Mon Sep 17 00:00:00 2001 From: Sam Najian Date: Fri, 4 Nov 2022 20:41:24 +0100 Subject: [PATCH] Update test to check for distinct one-click urls in bulk [MAILPOET-4703] --- .../Mailer/Methods/MailPoetAPITest.php | 24 +++++++++++++++---- 1 file changed, 20 insertions(+), 4 deletions(-) diff --git a/mailpoet/tests/integration/Mailer/Methods/MailPoetAPITest.php b/mailpoet/tests/integration/Mailer/Methods/MailPoetAPITest.php index 089637aa7e..a641e3ec53 100644 --- a/mailpoet/tests/integration/Mailer/Methods/MailPoetAPITest.php +++ b/mailpoet/tests/integration/Mailer/Methods/MailPoetAPITest.php @@ -128,16 +128,32 @@ class MailPoetAPITest extends \MailPoetTest { public function testItCanAddExtraParametersToMultipleMessages() { $newsletters = array_fill(0, 10, $this->newsletter); $subscribers = array_fill(0, 10, $this->subscriber); + + $unsubscribeUrls = array_merge(array_fill(0, 5, 'http://example.com'), array_fill(0, 5, 'https://example.com')); + $unsubscribeUrls = array_map(function ($url, $index){ + return "$url/$index"; + }, $unsubscribeUrls, array_keys($unsubscribeUrls)); + + $oneClickUrls = array_fill(0, 10, 'https://oneclick.com'); + $oneClickUrls = array_map(function ($url, $index){ + return "$url/$index"; + }, $oneClickUrls, array_keys($oneClickUrls)); + $extraParams = [ - 'unsubscribe_url' => array_fill(0, 10, 'http://example.com'), - 'one_click_unsubscribe' => array_fill(0, 10, 'http://oneclick.com'), + 'unsubscribe_url' => $unsubscribeUrls, + 'one_click_unsubscribe' => $oneClickUrls, 'meta' => array_fill(0, 10, $this->metaInfo), ]; $body = $this->mailer->getBody($newsletters, $subscribers, $extraParams); expect(count($body))->equals(10); - expect($body[0]['unsubscribe'])->equals(['url' => $extraParams['unsubscribe_url'][0], 'post' => false]); - expect($body[9]['unsubscribe'])->equals(['url' => $extraParams['unsubscribe_url'][9], 'post' => false]); + + for ($i = 0; $i < count($newsletters); $i++) { + $hasHttps = strpos($extraParams['unsubscribe_url'][$i], 'https://') !== false; + $url = $hasHttps ? $extraParams['one_click_unsubscribe'][$i] : $extraParams['unsubscribe_url'][$i]; + expect($body[$i]['unsubscribe'])->equals(['url' => $url, 'post' => $hasHttps]); + } + expect($body[0]['meta'])->equals($extraParams['meta'][0]); expect($body[9]['meta'])->equals($extraParams['meta'][9]); }