CyclicAjaxTest.php in Automated Logout 8
File
tests/src/FunctionalJavascript/CyclicAjaxTest.php
View source
<?php
namespace Drupal\Tests\autologout\FunctionalJavascript;
use Drupal\Core\Url;
use Drupal\FunctionalJavascriptTests\WebDriverTestBase;
class CyclicAjaxTest extends WebDriverTestBase {
public static $modules = [
'user',
'autologout',
];
protected $defaultTheme = 'stark';
protected $configFactory;
protected $privilegedUser;
public function setUp() {
parent::setUp();
$this->privilegedUser = $this
->drupalCreateUser([
'administer site configuration',
'access administration pages',
'administer autologout',
'change own logout threshold',
'view the administration theme',
]);
$this->baseUrl = Url::fromRoute('<front>', [], [
'absolute' => TRUE,
])
->toString();
$this->configFactory = \Drupal::service('config.factory');
$this->configFactory
->getEditable('autologout.settings')
->set('timeout', 10)
->set('padding', 5)
->save();
}
public function testCyclicRequest() {
$this
->drupalLogin($this->privilegedUser);
self::assertTrue($this
->drupalUserIsLoggedIn($this->privilegedUser));
$this
->getSession()
->executeScript("\n function sendRequest() {\n \$.ajax({\n url: \"{$this->baseUrl}\",\n type: 'GET',\n success:\n function (res) {\n console.log('Request was sent!');\n },\n complete: function () {\n setTimeout(sendRequest, 5000); // The interval set to 5 seconds\n }\n });\n sendRequest();\n }");
sleep(13);
self::assertTrue($this
->drupalUserIsLoggedIn($this->privilegedUser));
sleep(5);
self::assertFalse($this
->drupalUserIsLoggedIn($this->privilegedUser));
}
}
Classes
Name |
Description |
CyclicAjaxTest |
Test that checks if cyclic ajax request do not prevent logout. |