AjaxLinkNoJsTest.php in Flag 8.4
File
tests/src/Functional/AjaxLinkNoJsTest.php
View source
<?php
namespace Drupal\Tests\flag\Functional;
use Drupal\Tests\BrowserTestBase;
use Drupal\Tests\flag\Traits\FlagCreateTrait;
use Drupal\Tests\flag\Traits\FlagPermissionsTrait;
use Drupal\Core\Url;
class AjaxLinkNoJsTest extends BrowserTestBase {
use FlagCreateTrait;
use FlagPermissionsTrait;
protected $defaultTheme = 'stark';
public static $modules = [
'flag',
'node',
'user',
];
protected $flag;
protected $flagService;
protected $node;
protected $admin;
protected $webUser;
protected function setUp() {
parent::setUp();
$this
->createContentType([
'type' => 'article',
]);
$this->admin = $this
->createUser();
$this->node = $this
->createNode([
'type' => 'article',
'uid' => $this->admin
->id(),
]);
$this->flag = $this
->createFlag('node', [
'article',
], 'ajax_link');
$this->flagService = $this->container
->get('flag');
$this->webUser = $this
->createUser([
'access content',
]);
$this
->grantFlagPermissions($this->flag);
$this
->drupalLogin($this->webUser);
}
public function testNoJsMessage() {
$this
->drupalGet(Url::fromRoute('entity.node.canonical', [
'node' => $this->node
->id(),
]));
$session = $this
->getSession();
$page = $session
->getPage();
$flag_link = $page
->findLink($this->flag
->getShortText('flag'));
$this
->assertNotNull($flag_link, 'flag link exists.');
$flag_link
->click();
$flag_message = $this->flag
->getMessage('flag');
$this
->assertSession()
->pageTextContains($flag_message);
$unflag_link = $session
->getPage()
->findLink($this->flag
->getShortText('unflag'));
$this
->assertNotNull($unflag_link, 'unflag link exists.');
$unflag_link
->click();
$unflag_message = $this->flag
->getMessage('unflag');
$this
->assertSession()
->pageTextContains($unflag_message);
$flag_link2 = $session
->getPage()
->findLink($this->flag
->getShortText('flag'));
$this
->assertNotNull($flag_link2, 'flag cycle return to start.');
}
}