public function SmartTitleFieldLayoutTest::testSmartTitlePlacement in Smart Title 8
Tests that Smart Title works properly with Field Layout.
File
- tests/
src/ Functional/ SmartTitleFieldLayoutTest.php, line 22
Class
- SmartTitleFieldLayoutTest
- Tests the module's title placement function.
Namespace
Drupal\Tests\smart_title\FunctionalCode
public function testSmartTitlePlacement() {
$this
->drupalLogin($this->adminUser);
// Enable Smart Title for test_page teaser display mode and make it visible.
$this
->drupalPostForm('admin/structure/types/manage/test_page/display/teaser', [
'smart_title__enabled' => TRUE,
], 'Save');
// Change layout for teaser view mode.
$form_edit = [
'field_layout' => 'layout_twocol',
];
$this
->drupalPostForm('admin/structure/types/manage/test_page/display/teaser', $form_edit, 'Change layout');
$this
->drupalPostForm(NULL, [], 'Save');
// Make Smart Title visible for teaser view mode with custom configuration.
$this
->drupalPostForm(NULL, [
'fields[smart_title][region]' => 'second',
], 'Save');
$this
->click('[name="smart_title_settings_edit"]');
$this
->drupalPostForm(NULL, [
'fields[smart_title][settings_edit_form][settings][smart_title__tag]' => 'h3',
'fields[smart_title][settings_edit_form][settings][smart_title__classes]' => 'smart-title--test',
], 'Save');
// Test that Smart Title is displayed on the front page (teaser view mode)
// in the corresponding field layout region for admin user.
$this
->drupalGet('node');
$this
->assertSession()
->pageTextContains($this->testPageNode
->label());
$article_title = $this
->xpath($this
->cssSelectToXpath('article .layout__region--second h3.smart-title--test'));
$this
->assertEquals($this->testPageNode
->label(), $article_title[0]
->getText());
// Default title isn't displayed on the front page for admin user.
$this
->drupalGet('node');
$article_title = $this
->xpath($this
->cssSelectToXpath('article > h2'));
$this
->assertEquals($article_title, []);
$this
->drupalLogout();
// Smart Title is displayed on the front page (teaser vm) in the
// corresponding field layout region for anonymous user.
$this
->drupalGet('node');
$this
->assertSession()
->pageTextContains($this->testPageNode
->label());
$article_title = $this
->xpath($this
->cssSelectToXpath('article .layout__region--second h3.smart-title--test'));
$this
->assertEquals($this->testPageNode
->label(), $article_title[0]
->getText());
// Default title isn't displayed on the front page for anonymous user.
$this
->drupalGet('node');
$article_title = $this
->xpath($this
->cssSelectToXpath('article > h2'));
$this
->assertEquals($article_title, []);
}