DevelMenuLinksTest.php
Same filename in other branches
Namespace
Drupal\Tests\devel\FunctionalFile
-
tests/
src/ Functional/ DevelMenuLinksTest.php
View source
<?php
namespace Drupal\Tests\devel\Functional;
use Drupal\Core\Url;
use Drupal\Tests\BrowserTestBase;
/**
* Tests devel menu links.
*
* @group devel
*/
class DevelMenuLinksTest extends BrowserTestBase {
/**
* Modules to enable.
*
* @var array
*/
public static $modules = [
'devel',
'block',
'devel_test',
];
/**
* The user for tests.
*
* @var \Drupal\user\UserInterface
*/
protected $develUser;
/**
* {@inheritdoc}
*/
protected function setUp() {
parent::setUp();
// Devel links currently appears only in the devel menu.
// Place the devel menu block so we can ensure that these link works
// properly.
$this->drupalPlaceBlock('system_menu_block:devel');
$this->drupalPlaceBlock('page_title_block');
$this->develUser = $this->drupalCreateUser([
'access devel information',
'administer site configuration',
]);
$this->drupalLogin($this->develUser);
}
/**
* Tests CSFR protected links.
*/
public function testCsrfProtectedLinks() {
// Ensure CSRF link are not accessible directly.
$this->drupalGet('devel/run-cron');
$this->assertResponse(403);
$this->drupalGet('devel/cache/clear');
$this->assertResponse(403);
// Ensure clear cache link works properly.
$this->assertLink('Cache clear');
$this->clickLink('Cache clear');
$this->assertText('Cache cleared.');
// Ensure run cron link works properly.
$this->assertLink('Run cron');
$this->clickLink('Run cron');
$this->assertText('Cron ran successfully.');
// Ensure CSRF protected links work properly after change session.
$this->drupalLogout();
$this->drupalLogin($this->develUser);
$this->assertLink('Cache clear');
$this->clickLink('Cache clear');
$this->assertText('Cache cleared.');
$this->assertLink('Run cron');
$this->clickLink('Run cron');
$this->assertText('Cron ran successfully.');
}
/**
* Tests redirect destination links.
*/
public function testRedirectDestinationLinks() {
// By default, in the testing profile, front page is the user canonical URI.
// For better testing do not use the default frontpage.
$url = Url::fromRoute('devel.simple_page');
$destination = Url::fromRoute('devel.simple_page', [], [
'absolute' => FALSE,
]);
$this->drupalGet($url);
$this->assertLink(t('Reinstall Modules'));
$this->clickLink(t('Reinstall Modules'));
$this->assertUrl('devel/reinstall', [
'query' => [
'destination' => $destination->toString(),
],
]);
$this->drupalGet($url);
$this->assertLink(t('Rebuild Menu'));
$this->clickLink(t('Rebuild Menu'));
$this->assertUrl('devel/menu/reset', [
'query' => [
'destination' => $destination->toString(),
],
]);
$this->drupalGet($url);
$this->assertLink(t('Cache clear'));
$this->clickLink(t('Cache clear'));
$this->assertText('Cache cleared.');
$this->assertUrl($url);
$this->drupalGet($url);
$this->assertLink(t('Run cron'));
$this->clickLink(t('Run cron'));
$this->assertText(t('Cron ran successfully.'));
$this->assertUrl($url);
}
}
Classes
Title | Deprecated | Summary |
---|---|---|
DevelMenuLinksTest | Tests devel menu links. |