Update subscription integration test
[MAILPOET-3297]
This commit is contained in:
committed by
Veljko V
parent
441cb86a76
commit
baf67a96a1
@ -17,6 +17,7 @@ use MailPoet\Entities\SegmentEntity;
|
|||||||
use MailPoet\Entities\SendingQueueEntity;
|
use MailPoet\Entities\SendingQueueEntity;
|
||||||
use MailPoet\Entities\SubscriberEntity;
|
use MailPoet\Entities\SubscriberEntity;
|
||||||
use MailPoet\Entities\SubscriberSegmentEntity;
|
use MailPoet\Entities\SubscriberSegmentEntity;
|
||||||
|
use MailPoet\Form\FormsRepository;
|
||||||
use MailPoet\Form\Util\FieldNameObfuscator;
|
use MailPoet\Form\Util\FieldNameObfuscator;
|
||||||
use MailPoet\Listing\Handler;
|
use MailPoet\Listing\Handler;
|
||||||
use MailPoet\Models\CustomField;
|
use MailPoet\Models\CustomField;
|
||||||
@ -103,7 +104,8 @@ class SubscribersTest extends \MailPoetTest {
|
|||||||
$container->get(SubscriberListingRepository::class),
|
$container->get(SubscriberListingRepository::class),
|
||||||
$container->get(SegmentsRepository::class),
|
$container->get(SegmentsRepository::class),
|
||||||
$obfuscator,
|
$obfuscator,
|
||||||
$container->get(WelcomeScheduler::class)
|
$container->get(WelcomeScheduler::class),
|
||||||
|
$container->get(FormsRepository::class)
|
||||||
);
|
);
|
||||||
$this->obfuscatedEmail = $obfuscator->obfuscate('email');
|
$this->obfuscatedEmail = $obfuscator->obfuscate('email');
|
||||||
$this->obfuscatedSegments = $obfuscator->obfuscate('segments');
|
$this->obfuscatedSegments = $obfuscator->obfuscate('segments');
|
||||||
@ -137,7 +139,15 @@ class SubscribersTest extends \MailPoetTest {
|
|||||||
);
|
);
|
||||||
|
|
||||||
$this->form = new FormEntity('My Form');
|
$this->form = new FormEntity('My Form');
|
||||||
$this->form->setBody(Fixtures::get('form_body_template'));
|
$body = Fixtures::get('form_body_template');
|
||||||
|
// Add segment selection block
|
||||||
|
$body[] = [
|
||||||
|
'type' => 'segment',
|
||||||
|
'params' => [
|
||||||
|
'values' => [['id' => $this->segment1->getId()], ['id' => $this->segment2->getId()]],
|
||||||
|
],
|
||||||
|
];
|
||||||
|
$this->form->setBody($body);
|
||||||
$this->form->setSettings([
|
$this->form->setSettings([
|
||||||
'segments_selected_by' => 'user',
|
'segments_selected_by' => 'user',
|
||||||
'segments' => [
|
'segments' => [
|
||||||
@ -579,6 +589,21 @@ class SubscribersTest extends \MailPoetTest {
|
|||||||
expect($response->status)->equals(APIResponse::STATUS_OK);
|
expect($response->status)->equals(APIResponse::STATUS_OK);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public function testItCanSubscribeToSelectedSegment() {
|
||||||
|
$response = $this->endpoint->subscribe([
|
||||||
|
$this->obfuscatedEmail => 'toto@mailpoet.com',
|
||||||
|
'form_id' => $this->form->getId(),
|
||||||
|
$this->obfuscatedSegments => [$this->segment2->getId()],
|
||||||
|
]);
|
||||||
|
|
||||||
|
expect($response->status)->equals(APIResponse::STATUS_OK);
|
||||||
|
$subscriberRepository = $this->diContainer->get(SubscribersRepository::class);
|
||||||
|
$subscriber = $subscriberRepository->findOneBy(['email' => 'toto@mailpoet.com']);
|
||||||
|
$segments = $subscriber->getSegments();
|
||||||
|
expect($segments->count())->equals(1);
|
||||||
|
expect($segments->get(0)->getId())->equals($this->segment2->getId());
|
||||||
|
}
|
||||||
|
|
||||||
public function testItCannotSubscribeWithoutReCaptchaWhenEnabled() {
|
public function testItCannotSubscribeWithoutReCaptchaWhenEnabled() {
|
||||||
$this->settings->set('captcha', ['type' => Captcha::TYPE_RECAPTCHA]);
|
$this->settings->set('captcha', ['type' => Captcha::TYPE_RECAPTCHA]);
|
||||||
$response = $this->endpoint->subscribe([
|
$response = $this->endpoint->subscribe([
|
||||||
@ -660,6 +685,7 @@ class SubscribersTest extends \MailPoetTest {
|
|||||||
$settings = $this->form->getSettings();
|
$settings = $this->form->getSettings();
|
||||||
$settings['segments_selected_by'] = 'admin';
|
$settings['segments_selected_by'] = 'admin';
|
||||||
$this->form->setSettings($settings);
|
$this->form->setSettings($settings);
|
||||||
|
$this->form->setBody(Fixtures::get('form_body_template')); // Body without select segments block
|
||||||
$this->entityManager->flush();
|
$this->entityManager->flush();
|
||||||
|
|
||||||
$response = $this->endpoint->subscribe([
|
$response = $this->endpoint->subscribe([
|
||||||
@ -682,6 +708,7 @@ class SubscribersTest extends \MailPoetTest {
|
|||||||
$settings['segments_selected_by'] = 'admin';
|
$settings['segments_selected_by'] = 'admin';
|
||||||
$settings['segments'] = [];
|
$settings['segments'] = [];
|
||||||
$this->form->setSettings($settings);
|
$this->form->setSettings($settings);
|
||||||
|
$this->form->setBody(Fixtures::get('form_body_template')); // Body without select segments block
|
||||||
$this->entityManager->flush();
|
$this->entityManager->flush();
|
||||||
|
|
||||||
$response = $this->endpoint->subscribe([
|
$response = $this->endpoint->subscribe([
|
||||||
|
Reference in New Issue
Block a user