View source
<?php
namespace Drupal\Tests\metatag_page_manager\Functional;
use Drupal\page_manager\Entity\Page;
use Drupal\page_manager\Entity\PageVariant;
use Drupal\Tests\BrowserTestBase;
use Drupal\Tests\metatag\Functional\MetatagHelperTrait;
class MetatagPageManagerTest extends BrowserTestBase {
use MetatagHelperTrait;
protected static $modules = [
'metatag_page_manager',
'page_manager_ui',
];
protected $defaultTheme = 'stark';
public $assertSession;
public function setUp() {
parent::setUp();
$this->assertSession = $this
->assertSession();
Page::create([
'id' => 'metatag_page_manager_test',
'label' => 'Metatag Page',
'path' => 'metatag-test',
])
->save();
PageVariant::create([
'id' => 'metatag_page_manager_variant_test',
'variant' => 'block_display',
'label' => 'Metatag Variant',
'page' => 'metatag_page_manager_test',
'weight' => 10,
])
->save();
\Drupal::service("router.builder")
->rebuild();
$this
->loginUser1();
}
public function testSingleVariantPage() {
$this
->drupalGet('/metatag-test');
$this->assertSession
->statusCodeEquals(200);
$this->assertSession
->titleEquals('Metatag Page | Drupal');
$edit = [
'id' => 'page_variant__metatag_page_manager_variant_test',
'title' => 'My title',
];
$this
->drupalPostForm('/admin/config/search/metatag/add', $edit, 'Save');
$this->assertSession
->pageTextContains('Page Variant: Metatag Page: Metatag Variant');
drupal_flush_all_caches();
$this
->drupalGet('/metatag-test');
$this->assertSession
->statusCodeEquals(200);
$this->assertSession
->titleEquals('My title');
}
public function testMultipleVariantPage() {
$old_variant = PageVariant::load('metatag_page_manager_variant_test');
$selection = [
'id' => 'user_role',
'roles' => [
'anonymous' => 'anonymous',
],
'negate' => TRUE,
'context_mapping' => [
'user' => '@user.current_user_context:current_user',
],
];
$old_variant
->set('selection_criteria', [
$selection,
]);
$old_variant
->save();
$new_variant = PageVariant::create([
'id' => 'metatag_page_manager_multiple_variant_test',
'variant' => 'block_display',
'label' => 'Anonymous variant',
'page' => 'metatag_page_manager_test',
'weight' => 0,
]);
$selection = [
'id' => 'user_role',
'roles' => [
'anonymous' => 'anonymous',
],
'negate' => FALSE,
'context_mapping' => [
'user' => '@user.current_user_context:current_user',
],
];
$new_variant
->set('selection_criteria', [
$selection,
]);
$new_variant
->save();
$this
->drupalGet('admin/structure/page_manager/manage/metatag_page_manager_test/general');
$this->assertSession
->statusCodeEquals(200);
drupal_flush_all_caches();
$this
->drupalGet('/metatag-test');
$this->assertSession
->statusCodeEquals(200);
$this->assertSession
->titleEquals('Metatag Page | Drupal');
$edit = [
'id' => 'page_variant__metatag_page_manager_variant_test',
'title' => 'My title',
];
$this
->drupalPostForm('/admin/config/search/metatag/add', $edit, 'Save');
$this->assertSession
->pageTextContains('Page Variant: Metatag Page: Metatag Variant');
drupal_flush_all_caches();
$this
->drupalGet('/metatag-test');
$this->assertSession
->statusCodeEquals(200);
$this->assertSession
->titleEquals('My title');
$this
->drupalLogout();
$this
->drupalGet('/metatag-test');
$this->assertSession
->statusCodeEquals(200);
$this->assertSession
->titleEquals('Metatag Page | Drupal');
$this
->loginUser1();
$edit = [
'id' => 'page_variant__metatag_page_manager_multiple_variant_test',
'title' => 'My title anonymous',
];
$this
->drupalPostForm('/admin/config/search/metatag/add', $edit, 'Save');
$this->assertSession
->pageTextContains('Page Variant: Metatag Page: Anonymous variant');
drupal_flush_all_caches();
$this
->drupalGet('/metatag-test');
$this->assertSession
->statusCodeEquals(200);
$this->assertSession
->titleEquals('My title');
$this
->drupalLogout();
$this
->drupalGet('/metatag-test');
$this->assertSession
->statusCodeEquals(200);
$this->assertSession
->titleEquals('My title anonymous');
}
}