public function NodeViewTest::testHtmlHeadLinks in Drupal 8
Same name and namespace in other branches
- 9 core/modules/node/tests/src/Functional/NodeViewTest.php \Drupal\Tests\node\Functional\NodeViewTest::testHtmlHeadLinks()
- 10 core/modules/node/tests/src/Functional/NodeViewTest.php \Drupal\Tests\node\Functional\NodeViewTest::testHtmlHeadLinks()
Tests the html head links.
File
- core/
modules/ node/ tests/ src/ Functional/ NodeViewTest.php, line 23
Class
- NodeViewTest
- Tests the node/{node} page.
Namespace
Drupal\Tests\node\FunctionalCode
public function testHtmlHeadLinks() {
$node = $this
->drupalCreateNode();
$this
->drupalGet($node
->toUrl());
$result = $this
->xpath('//link[@rel = "canonical"]');
$this
->assertEqual($result[0]
->getAttribute('href'), $node
->toUrl()
->setAbsolute()
->toString());
// Link relations are checked for access for anonymous users.
$result = $this
->xpath('//link[@rel = "version-history"]');
$this
->assertEmpty($result, 'Version history not present for anonymous users without access.');
$result = $this
->xpath('//link[@rel = "edit-form"]');
$this
->assertEmpty($result, 'Edit form not present for anonymous users without access.');
$this
->drupalLogin($this
->createUser([
'access content',
]));
$this
->drupalGet($node
->toUrl());
$result = $this
->xpath('//link[@rel = "canonical"]');
$this
->assertEqual($result[0]
->getAttribute('href'), $node
->toUrl()
->setAbsolute()
->toString());
// Link relations are present regardless of access for authenticated users.
$result = $this
->xpath('//link[@rel = "version-history"]');
$this
->assertEqual($result[0]
->getAttribute('href'), $node
->toUrl('version-history')
->setAbsolute()
->toString());
$result = $this
->xpath('//link[@rel = "edit-form"]');
$this
->assertEqual($result[0]
->getAttribute('href'), $node
->toUrl('edit-form')
->setAbsolute()
->toString());
// Give anonymous users access to edit the node. Do this through the UI to
// ensure caches are handled properly.
$this
->drupalLogin($this->rootUser);
$edit = [
'anonymous[edit own ' . $node
->bundle() . ' content]' => TRUE,
];
$this
->drupalPostForm('admin/people/permissions', $edit, 'Save permissions');
$this
->drupalLogout();
// Anonymous user's should now see the edit-form link but not the
// version-history link.
$this
->drupalGet($node
->toUrl());
$result = $this
->xpath('//link[@rel = "canonical"]');
$this
->assertEqual($result[0]
->getAttribute('href'), $node
->toUrl()
->setAbsolute()
->toString());
$result = $this
->xpath('//link[@rel = "version-history"]');
$this
->assertEmpty($result, 'Version history not present for anonymous users without access.');
$result = $this
->xpath('//link[@rel = "edit-form"]');
$this
->assertEqual($result[0]
->getAttribute('href'), $node
->toUrl('edit-form')
->setAbsolute()
->toString());
}