Files
piratepoet/tests/acceptance/UnauthorizedAddressCest.php
2019-05-10 08:28:52 -04:00

105 lines
3.8 KiB
PHP

<?php
namespace MailPoet\Test\Acceptance;
use MailPoet\Mailer\Mailer;
use MailPoet\Test\DataFactories\Newsletter;
use MailPoet\Test\DataFactories\Settings;
require_once __DIR__ . '/../DataFactories/Newsletter.php';
require_once __DIR__ . '/../DataFactories/Settings.php';
class UnauthorizedAddressCest {
function _before() {
$settings = new Settings();
$settings->withSendingMethodMailPoet();
}
function unauthorizedFreeAddressError(\AcceptanceTester $I) {
$I->wantTo('See proper sending error when using unauthorized free address');
$newsletter_title = 'Unauthorized free address';
$newsletter_from = 'random@gmail.com';
$segment_name = $I->createListWithSubscriber();
// step 1 - Prepare newsletter data
$newsletterFactory = new Newsletter();
$newsletter = $newsletterFactory
->withSubject($newsletter_title)
->loadBodyFrom('newsletterWithText.json')
->create();
// step 2 - Go to editor
$I->login();
$I->amEditingNewsletter($newsletter->id);
$I->click('Next');
// step 3 - Choose list and send
$I->waitForElement('[data-automation-id="newsletter_send_form"]');
$I->selectOptionInSelect2($segment_name);
$I->fillField('[name="sender_address"]', $newsletter_from);
$I->click('Send');
// step 4 - Check that error notice is visible
$I->waitForElement('[data-automation-id="newsletters_listing_tabs"]');
$I->wait(2);
$I->amOnMailpoetPage('Emails');
$I->waitForElement('.mailpoet_notice.notice-error');
$I->see('The MailPoet Sending Service did not send your latest email because the address ' . $newsletter_from, '.notice-error');
$href = $I->grabAttributeFrom('//a[text()="Authorize your email in your account now."]', 'href');
expect($href)->equals('https://account.mailpoet.com/authorization');
// step 5 - Trash newsletter and resume sending
$I->clickItemRowActionByItemName($newsletter_title, 'Move to trash');
$I->scrollToTop();
$I->click('Resume sending');
$I->waitForText('Sending has been resumed.');
}
function unauthorizedOwnAddressError(\AcceptanceTester $I) {
$I->wantTo('See proper sending error when using unauthorized own address');
$newsletter_title = 'Unauthorized own address';
$newsletter_from = 'random@own-domain.com';
$segment_name = $I->createListWithSubscriber();
// step 1 - Prepare newsletter data
$newsletterFactory = new Newsletter();
$newsletter = $newsletterFactory
->withSubject($newsletter_title)
->loadBodyFrom('newsletterWithText.json')
->create();
// step 2 - Go to editor
$I->login();
$I->amEditingNewsletter($newsletter->id);
$I->click('Next');
// step 3 - Choose list and send
$I->waitForElement('[data-automation-id="newsletter_send_form"]');
$I->selectOptionInSelect2($segment_name);
$I->fillField('[name="sender_address"]', $newsletter_from);
$I->click('Send');
// step 4 - Check that error notice is visible
$I->waitForElement('[data-automation-id="newsletters_listing_tabs"]');
$I->wait(2);
$I->amOnMailpoetPage('Emails');
$I->waitForElement('.mailpoet_notice.notice-error');
$I->see('The MailPoet Sending Service did not send your latest email because the address ' . $newsletter_from, '.notice-error');
$href = $I->grabAttributeFrom('//a[text()="Authorize your email in your account now."]', 'href');
expect($href)->equals('https://account.mailpoet.com/authorization');
// step 5 - Trash newsletter and resume sending
$I->clickItemRowActionByItemName($newsletter_title, 'Move to trash');
$I->scrollToTop();
$I->click('Resume sending');
$I->waitForText('Sending has been resumed.');
}
function _after() {
$settings = new Settings();
$settings->withSendingMethod(Mailer::METHOD_PHPMAIL);
}
}