public function SimplenewsSubscribeTest::testAdminCreate in Simplenews 8.2
Same name and namespace in other branches
- 3.x tests/src/Functional/SimplenewsSubscribeTest.php \Drupal\Tests\simplenews\Functional\SimplenewsSubscribeTest::testAdminCreate()
Tests admin creating a single subscriber.
File
- tests/
src/ Functional/ SimplenewsSubscribeTest.php, line 920
Class
- SimplenewsSubscribeTest
- Un/subscription of anonymous and authenticated users.
Namespace
Drupal\Tests\simplenews\FunctionalCode
public function testAdminCreate() {
$admin_user = $this
->drupalCreateUser([
'administer simplenews subscriptions',
]);
$this
->drupalLogin($admin_user);
$newsletter_id = $this
->getRandomNewsletter();
$mail = $this
->randomEmail();
$this
->drupalGet('admin/people/simplenews/create');
$this
->assertText('Add subscriber');
$edit = [
"subscriptions[{$newsletter_id}]" => TRUE,
'mail[0][value]' => $mail,
];
$this
->drupalPostForm(NULL, $edit, t('Save'));
$this
->assertText(t('Subscriber @mail has been added.', [
'@mail' => $mail,
]));
$subscriber = Subscriber::loadByMail($mail);
$subscription = $subscriber
->getSubscription($newsletter_id);
$this
->assertEquals(SIMPLENEWS_SUBSCRIPTION_STATUS_SUBSCRIBED, $subscription->status);
// Check that an unsubscribe link works without any permissions.
$this
->drupalLogout();
user_role_revoke_permissions(AccountInterface::ANONYMOUS_ROLE, [
'subscribe to newsletters',
]);
$node = $this
->drupalCreateNode([
'type' => 'simplenews_issue',
'simplenews_issue[target_id]' => [
'target_id' => $newsletter_id,
],
]);
\Drupal::service('simplenews.spool_storage')
->addIssue($node);
\Drupal::service('simplenews.mailer')
->sendSpool();
$unsubscribe_url = $this
->extractConfirmationLink($this
->getMail(0));
$this
->drupalGet($unsubscribe_url);
$this
->assertText('Confirm remove subscription');
$this
->drupalPostForm(NULL, [], t('Unsubscribe'));
$this
->assertText('was unsubscribed from the Default newsletter mailing list.');
}