1 node.test | NodeTitleTestCase::testNodeTitle() |
Creates one node and tests if the node title has the correct value.
File
- core/
modules/ node/ tests/ node.test, line 2583 - Tests for node.module.
Class
- NodeTitleTestCase
- Tests node title functionality.
Code
function testNodeTitle() {
// Create "Page" content with title.
// Add the node to the frontpage so we can test if teaser links are clickable.
$settings = array(
'title' => $this->randomName(8),
'promote' => 1,
);
$node = $this->backdropCreateNode($settings);
// Test <title> tag.
$this->backdropGet("node/$node->nid");
$xpath = '//title';
$this->assertEqual(current($this->xpath($xpath)), $node->title . ' | Backdrop CMS', 'Page title is equal to node title.', 'Node');
// Test breadcrumb in comment preview.
$this->backdropGet("comment/reply/$node->nid");
$xpath = '//nav[@class="breadcrumb"]/ol/li[last()]/a';
$this->assertEqual(current($this->xpath($xpath)), $node->title, 'Node breadcrumb is equal to node title.', 'Node');
// Test node title in comment preview.
$this->assertEqual(current($this->xpath('//article[@id=:id]//h2/a', array(':id' => 'node-' . $node->nid))), $node->title, 'Node preview title is equal to node title.', 'Node');
// Test node title is clickable on teaser list (/node).
$this->backdropGet('node');
$this->clickLink($node->title);
// Hide path display for Post node type.
$config = config('node.type.post');
$config->set('settings.hidden_path', '1');
$config->save();
$this->assertEqual($config->get('settings.hidden_path'), '1', 'The POST content type has hidden_path enabled.');
// Create "Post" content with title.
$settings = array(
'type' => 'post',
'title' => $this->randomName(8),
'promote' => 1,
);
$node = $this->backdropCreateNode($settings);
backdrop_flush_all_caches();
// Test post title is clickable for admin account on teaser list (/node).
$this->backdropGet('');
$this->assertLink($node->title);
$this->clickLink($node->title);
$this->assertResponse(200, 'Received 200 response from post with hidden_path.');
// Test node title is NOT clickable for standard account.
$this->backdropLogout();
backdrop_flush_all_caches();
$this->backdropGet('');
$this->assertNoLink($node->title);
// Also ensure that there is no "read more" link.
$this->assertNoLinkByHref(backdrop_get_path_alias('node/' . $node->nid));
}