function CaseInsensitivePathTest::testMixedCasePaths
Same name in other branches
- 9 core/tests/Drupal/FunctionalTests/Routing/CaseInsensitivePathTest.php \Drupal\FunctionalTests\Routing\CaseInsensitivePathTest::testMixedCasePaths()
- 8.9.x core/tests/Drupal/FunctionalTests/Routing/CaseInsensitivePathTest.php \Drupal\FunctionalTests\Routing\CaseInsensitivePathTest::testMixedCasePaths()
- 11.x core/tests/Drupal/FunctionalTests/Routing/CaseInsensitivePathTest.php \Drupal\FunctionalTests\Routing\CaseInsensitivePathTest::testMixedCasePaths()
Tests mixed case paths.
File
-
core/
tests/ Drupal/ FunctionalTests/ Routing/ CaseInsensitivePathTest.php, line 40
Class
- CaseInsensitivePathTest
- Tests incoming path case insensitivity.
Namespace
Drupal\FunctionalTests\RoutingCode
public function testMixedCasePaths() : void {
// Tests paths defined by routes from standard modules as anonymous.
$this->drupalGet('user/login');
$this->assertSession()
->statusCodeEquals(200);
$this->assertSession()
->pageTextMatches('/Log in/');
$this->drupalGet('User/Login');
$this->assertSession()
->statusCodeEquals(200);
$this->assertSession()
->pageTextMatches('/Log in/');
// Tests paths defined by routes from the Views module.
$admin = $this->drupalCreateUser([
'access administration pages',
'administer nodes',
'access content overview',
]);
$this->drupalLogin($admin);
$this->drupalGet('admin/content');
$this->assertSession()
->statusCodeEquals(200);
$this->assertSession()
->pageTextMatches('/Content/');
$this->drupalGet('Admin/Content');
$this->assertSession()
->statusCodeEquals(200);
$this->assertSession()
->pageTextMatches('/Content/');
// Tests paths with query arguments.
// Make sure our node title doesn't exist.
$this->drupalGet('admin/content');
$this->assertSession()
->linkNotExists('FooBarBaz');
$this->assertSession()
->linkNotExists('foobarbaz');
// Create a node, and make sure it shows up on admin/content.
$node = $this->createNode([
'title' => 'FooBarBaz',
'type' => 'page',
]);
$this->drupalGet('admin/content', [
'query' => [
'title' => 'FooBarBaz',
],
]);
$this->assertSession()
->linkExists('FooBarBaz');
$this->assertSession()
->linkByHrefExists($node->toUrl()
->toString());
// Make sure the path is case-insensitive, and query case is preserved.
$this->drupalGet('Admin/Content', [
'query' => [
'title' => 'FooBarBaz',
],
]);
$this->assertSession()
->linkExists('FooBarBaz');
$this->assertSession()
->linkByHrefExists($node->toUrl()
->toString());
$this->assertSession()
->fieldValueEquals('edit-title', 'FooBarBaz');
// Check that we can access the node with a mixed case path.
$this->drupalGet('NOdE/' . $node->id());
$this->assertSession()
->statusCodeEquals(200);
$this->assertSession()
->pageTextMatches('/FooBarBaz/');
}
Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.