diff --git a/mailpoet/tests/acceptance/Settings/CreateNewWordPressUserCest.php b/mailpoet/tests/acceptance/Settings/CreateNewWordPressUserCest.php index e648ea1b2a..4347ab0eb8 100644 --- a/mailpoet/tests/acceptance/Settings/CreateNewWordPressUserCest.php +++ b/mailpoet/tests/acceptance/Settings/CreateNewWordPressUserCest.php @@ -3,6 +3,7 @@ namespace MailPoet\Test\Acceptance; use Codeception\Util\Locator; +use MailPoet\Captcha\CaptchaConstants; use MailPoet\Test\DataFactories\Settings; /** @@ -32,6 +33,8 @@ class CreateNewWordPressUserCest { $i->click('[data-automation-id="settings-submit-button"]'); //save settings $i->waitForElementNotVisible('#mailpoet_loading'); + $this->settings->withCaptchaType(CaptchaConstants::TYPE_DISABLED); + // create a wp user via registration // Note: Xpath used to avoid flakyness and to pass multisite testing where we have different registration page designs $i->logOut(); diff --git a/mailpoet/tests/acceptance/Settings/SubscribeOnRegistrationPageCest.php b/mailpoet/tests/acceptance/Settings/SubscribeOnRegistrationPageCest.php index 79a224c43b..2aba3f25aa 100644 --- a/mailpoet/tests/acceptance/Settings/SubscribeOnRegistrationPageCest.php +++ b/mailpoet/tests/acceptance/Settings/SubscribeOnRegistrationPageCest.php @@ -3,19 +3,29 @@ namespace MailPoet\Test\Acceptance; use Codeception\Util\Locator; +use MailPoet\Captcha\CaptchaConstants; use MailPoet\Test\DataFactories\Segment; +use MailPoet\Test\DataFactories\Settings; /** * @group frontend */ class SubscribeOnRegistrationPageCest { + private Settings $settings; + + public function before() { + $this->settings = new Settings(); + } + public function allowSubscribeOnRegistrationPage(\AcceptanceTester $i) { $i->wantTo('Allow users to subscribe to lists on site registration page'); + //create a list for this test $segmentFactory = new Segment(); $regseg = 'RegistrationPageSignup'; $segment1 = $segmentFactory->withName($regseg)->create(); $regpageuseremail = 'registerpagesignup@fake.fake'; + $i->login(); //Go to settings $i->amOnMailPoetPage('Settings'); @@ -24,6 +34,9 @@ class SubscribeOnRegistrationPageCest { //save settings $i->click('[data-automation-id="settings-submit-button"]'); $i->waitForText('Settings saved'); + + $this->settings->withCaptchaType(CaptchaConstants::TYPE_DISABLED); + $i->logOut(); $i->amOnPage('/wp-login.php?action=register'); $i->waitForElement(['css' => '.registration-form-mailpoet']); @@ -41,6 +54,7 @@ class SubscribeOnRegistrationPageCest { $i->click('Next'); $i->waitForText('muregisterpagesignup is your new username'); } + $i->login(); $i->amOnMailPoetPage('Subscribers'); $i->waitForText('registerpagesignup@fake.fake'); @@ -51,6 +65,7 @@ class SubscribeOnRegistrationPageCest { public function sendConfirmationEmailOnRegistration(\AcceptanceTester $i) { $i->wantTo('send confirmation email on user registration when no additional lists'); $userEmail = 'registerpagesignupconfirmation@fake.fake'; + $i->login(); //Go to settings $i->amOnMailPoetPage('Settings'); @@ -58,6 +73,9 @@ class SubscribeOnRegistrationPageCest { //save settings $i->click('[data-automation-id="settings-submit-button"]'); $i->waitForText('Settings saved'); + + $this->settings->withCaptchaType(CaptchaConstants::TYPE_DISABLED); + $i->logOut(); $i->amOnPage('/wp-login.php?action=register'); $i->waitForElement(['css' => '.registration-form-mailpoet']); @@ -75,6 +93,7 @@ class SubscribeOnRegistrationPageCest { $i->click('Next'); $i->waitForText('muregisterpagesignupconfirmation is your new username'); } + $i->checkEmailWasReceived('Confirm your subscription'); $i->click(Locator::contains('span.subject', 'Confirm your subscription')); $i->switchToIframe('#preview-html'); diff --git a/mailpoet/tests/acceptance/Subscribers/ManageSubscriptionLinkCest.php b/mailpoet/tests/acceptance/Subscribers/ManageSubscriptionLinkCest.php index 7bf7d93252..82160255b1 100644 --- a/mailpoet/tests/acceptance/Subscribers/ManageSubscriptionLinkCest.php +++ b/mailpoet/tests/acceptance/Subscribers/ManageSubscriptionLinkCest.php @@ -31,7 +31,7 @@ class ManageSubscriptionLinkCest { $this->settings ->withConfirmationEmailEnabled() ->withCronTriggerMethod('Action Scheduler'); - + $segmentFactory = new Segment(); $segmentFactory->withName(self::ADDITIONAL_FIRST_FANCY_LIST)->create(); $segmentFactory->withName(self::ADDITIONAL_SECOND_FANCY_LIST)->create(); @@ -110,7 +110,7 @@ class ManageSubscriptionLinkCest { $i->selectOption('[data-automation-id="subscriber-status"]', 'Subscribed'); $i->click('Save'); $i->waitForText('Subscriber was updated successfully!'); - $i->amOnUrl(\AcceptanceTester::WP_URL . '/?mailpoet_page=subscriptions&mailpoet_router&endpoint=subscription&action=unsubscribe&data='); + $i->amOnUrl(\AcceptanceTester::WP_URL . '/?mailpoet_page=template&mailpoet_router&endpoint=subscription&action=unsubscribe&data='); $i->waitForElementVisible('.mailpoet_page-template-default'); // we will verify only a portion of the full sentence // since there is a microscopic difference between blockbased and non-block theme diff --git a/mailpoet/tests/acceptance/Subscribers/SubscriberCookieCest.php b/mailpoet/tests/acceptance/Subscribers/SubscriberCookieCest.php index 9d07518a3e..371a072b13 100644 --- a/mailpoet/tests/acceptance/Subscribers/SubscriberCookieCest.php +++ b/mailpoet/tests/acceptance/Subscribers/SubscriberCookieCest.php @@ -4,6 +4,7 @@ namespace MailPoet\Test\Acceptance; use AcceptanceTester; use Codeception\Util\Locator; +use MailPoet\Captcha\CaptchaConstants; use MailPoet\DI\ContainerWrapper; use MailPoet\Subscribers\SubscribersRepository; use MailPoet\Test\DataFactories\Newsletter; @@ -25,6 +26,7 @@ class SubscriberCookieCest { (new Settings()) ->withSubscribeOnRegisterEnabled() + ->withCaptchaType(CaptchaConstants::TYPE_DISABLED) ->withTransactionEmailsViaMailPoet(); $email = 'test-user@example.com'; @@ -67,7 +69,6 @@ class SubscriberCookieCest { $i->fillField('Password', $password); $i->click('Log In'); $i->waitForText('Dashboard'); - } // subscriber cookie should be set right after signup $this->checkSubscriberCookie($i, $email); diff --git a/mailpoet/tests/acceptance/Subscriptions/WooMyAccountRegistrationCest.php b/mailpoet/tests/acceptance/Subscriptions/WooMyAccountRegistrationCest.php index c0e6f56c08..ea562717a1 100644 --- a/mailpoet/tests/acceptance/Subscriptions/WooMyAccountRegistrationCest.php +++ b/mailpoet/tests/acceptance/Subscriptions/WooMyAccountRegistrationCest.php @@ -2,6 +2,7 @@ namespace MailPoet\Test\Acceptance; +use MailPoet\Captcha\CaptchaConstants; use MailPoet\Entities\SubscriberEntity; use MailPoet\Test\DataFactories\Settings; @@ -19,8 +20,9 @@ class WooMyAccountRegistrationCest { public function _before(\AcceptanceTester $i) { $i->activateWooCommerce(); $this->settingsFactory = new Settings(); - $this->settingsFactory->withWooCommerceListImportPageDisplayed(true); - $this->settingsFactory->withCookieRevenueTrackingDisabled(); + $this->settingsFactory->withWooCommerceListImportPageDisplayed(true) + ->withCookieRevenueTrackingDisabled() + ->withCaptchaType(CaptchaConstants::TYPE_DISABLED); } public function registerOptInDisabled(\AcceptanceTester $i) { diff --git a/mailpoet/tests/integration/API/JSON/v1/SubscribersTest.php b/mailpoet/tests/integration/API/JSON/v1/SubscribersTest.php index fb2a995018..d66c6665dd 100644 --- a/mailpoet/tests/integration/API/JSON/v1/SubscribersTest.php +++ b/mailpoet/tests/integration/API/JSON/v1/SubscribersTest.php @@ -11,6 +11,7 @@ use MailPoet\API\JSON\SuccessResponse; use MailPoet\API\JSON\v1\Subscribers; use MailPoet\Captcha\CaptchaConstants; use MailPoet\Captcha\CaptchaSession; +use MailPoet\Config\Populator; use MailPoet\DI\ContainerWrapper; use MailPoet\Entities\CustomFieldEntity; use MailPoet\Entities\FormEntity; @@ -740,17 +741,21 @@ class SubscribersTest extends \MailPoetTest { } public function testItCannotSubscribeWithoutBuiltInCaptchaWhenEnabled() { + $this->diContainer->get(Populator::class)->up(); + $this->settings->set('captcha', ['type' => CaptchaConstants::TYPE_BUILTIN]); $email = 'toto@mailpoet.com'; (new SubscriberFactory()) ->withEmail($email) ->withCountConfirmations(1) ->create(); + $response = $this->endpoint->subscribe([ $this->obfuscatedEmail => $email, 'form_id' => $this->form->getId(), $this->obfuscatedSegments => [$this->segment1->getId(), $this->segment2->getId()], ]); + verify($response->status)->equals(APIResponse::STATUS_BAD_REQUEST); verify($response->errors[0]['message'])->equals('Please fill in the CAPTCHA.'); $this->settings->set('captcha', []); @@ -888,13 +893,12 @@ class SubscribersTest extends \MailPoetTest { } public function testThirdPartiesCanInterruptSubscriptionProcess() { - $expectedErrorMessage = 'ErrorMessage'; \MailPoet\WP\add_action( 'mailpoet_subscription_before_subscribe', - function($data) use ($expectedErrorMessage) { - throw new UnexpectedValueException($expectedErrorMessage); + function ($data) use ($expectedErrorMessage) { + throw new UnexpectedValueException($expectedErrorMessage); } ); diff --git a/mailpoet/tests/integration/Captcha/Validator/BuiltInCaptchaValidatorTest.php b/mailpoet/tests/integration/Captcha/Validator/BuiltInCaptchaValidatorTest.php index 833897c9d0..c6153aa688 100644 --- a/mailpoet/tests/integration/Captcha/Validator/BuiltInCaptchaValidatorTest.php +++ b/mailpoet/tests/integration/Captcha/Validator/BuiltInCaptchaValidatorTest.php @@ -5,6 +5,7 @@ namespace Mailpoet\Test\Captcha\Validator; use MailPoet\Captcha\CaptchaSession; use MailPoet\Captcha\Validator\CaptchaValidator; use MailPoet\Captcha\Validator\ValidationError; +use MailPoet\Config\Populator; use MailPoet\Entities\SubscriberIPEntity; use MailPoet\Test\DataFactories\Subscriber as SubscriberFactory; use MailPoet\WP\Functions as WPFunctions; @@ -29,6 +30,8 @@ class BuiltInCaptchaValidatorTest extends \MailPoetTest { } public function testEmptyCaptchaThrowsError() { + $this->diContainer->get(Populator::class)->up(); + try { $this->testee->validate(['captcha_session_id' => '123']); } catch (ValidationError $error) { @@ -50,6 +53,8 @@ class BuiltInCaptchaValidatorTest extends \MailPoetTest { } public function testThrowsErrorWhenCaptchaHasTimedOut() { + $this->diContainer->get(Populator::class)->up(); + $sessionId = '123'; $this->session->setCaptchaHash($sessionId, ['phrase' => null]); try { @@ -81,7 +86,7 @@ class BuiltInCaptchaValidatorTest extends \MailPoetTest { public function testItTakesFilterIntoAccountToDisableCaptcha() { $wp = new WPFunctions; $_SERVER['REMOTE_ADDR'] = '127.0.0.1'; - $filter = function() { + $filter = function () { return 1; }; $wp->addFilter('mailpoet_subscription_captcha_recipient_limit', $filter);