MessageSubscribeEmailTest.php in Message Subscribe 8
File
message_subscribe_email/tests/src/FunctionalJavascript/MessageSubscribeEmailTest.php
View source
<?php
namespace Drupal\Tests\message_subscribe_email\FunctionalJavascript;
use Drupal\FunctionalJavascriptTests\WebDriverTestBase;
class MessageSubscribeEmailTest extends WebDriverTestBase {
public static $modules = [
'message_subscribe_email',
'node',
];
protected $flagService;
protected $nodes;
protected $users;
public function setUp() {
parent::setUp();
$type = $this
->createContentType();
foreach (range(1, 3) as $i) {
$this->nodes[$i] = $this
->drupalCreateNode([
'type' => $type
->id(),
]);
}
$permissions = [
'flag subscribe_node',
'unflag subscribe_node',
'flag email_node',
'unflag email_node',
];
$this->users[1] = $this
->createUser($permissions);
$this->users[2] = $this
->createUser($permissions);
$this->users[3] = $this
->createUser($permissions);
$this->flagService = $this->container
->get('flag');
$flags = $this->flagService
->getAllFlags('node');
$flags['subscribe_node']
->enable();
$flags['subscribe_node']
->save();
$flags['email_node']
->enable();
$flags['email_node']
->save();
}
public function testUi() {
$flag = $this->flagService
->getFlagById('subscribe_node');
$this
->drupalLogin($this->users[2]);
$this
->drupalGet($this->nodes[2]
->toUrl());
$this
->clickLink(t('Subscribe'));
$this
->assertSession()
->assertWaitOnAjaxRequest();
$this
->assertTrue($this->flagService
->getFlagging($flag, $this->nodes[2], $this->users[2]));
$this
->clickLink(t('Unsubscribe'));
$this
->assertSession()
->assertWaitOnAjaxRequest();
$this
->assertFalse($this->flagService
->getFlagging($flag, $this->nodes[2], $this->users[2]));
$this
->clickLink(t('Subscribe'));
$this
->assertSession()
->assertWaitOnAjaxRequest();
$this
->assertTrue($this->flagService
->getFlagging($flag, $this->nodes[2], $this->users[2]));
}
}