View source
<?php
namespace Drupal\Tests\varbase_seo\FunctionalJavascript;
use Drupal\FunctionalJavascriptTests\WebDriverTestBase;
use Drupal\Core\StringTranslation\StringTranslationTrait;
use Drupal\script_manager\Entity\Script;
use Drupal\script_manager\Entity\ScriptInterface;
class VarbaseSeoJavascriptSnippetsTest extends WebDriverTestBase {
use StringTranslationTrait;
protected $profile = 'standard';
protected $defaultTheme = 'olivero';
protected $strictConfigSchema = FALSE;
protected $testScript;
protected static $modules = [
'rdf',
'metatag',
'metatag_facebook',
'metatag_google_plus',
'metatag_hreflang',
'metatag_mobile',
'metatag_open_graph',
'metatag_twitter_cards',
'metatag_verification',
'pathauto',
'redirect',
'redirect_404',
'redirect_domain',
'schema_metatag',
'schema_article',
'schema_item_list',
'schema_web_page',
'schema_web_site',
'simple_sitemap',
'yoast_seo',
'script_manager',
'varbase_seo',
];
protected function setUp() : void {
parent::setUp();
$this->container
->get('theme_installer')
->install([
'claro',
]);
$this
->config('system.theme')
->set('admin', 'claro')
->save();
$seo_admin_permissions = $this
->config('user.role.seo_admin')
->get('permissions');
$seo_admin_available_permissions = [];
$available_permissions = array_keys(\Drupal::service('user.permissions')
->getPermissions());
foreach ($seo_admin_permissions as $seo_admin_permission) {
if (in_array($seo_admin_permission, $available_permissions)) {
$seo_admin_available_permissions[] = $seo_admin_permission;
}
}
$this->seoAdminUser = $this
->drupalCreateUser($seo_admin_available_permissions, 'SEO Admin');
}
public function testCheckVarbaseSeoJavascriptSnippetsFunctionality() {
$this
->drupalLogin($this->seoAdminUser);
$this
->drupalGet('admin/structure/scripts');
$this
->assertSession()
->pageTextContains('Scripts');
$this
->assertSession()
->pageTextContains('There are no script entities yet.');
$this
->drupalGet('admin/structure/scripts/add');
$this
->assertSession()
->pageTextContains('Add script');
$this->testScript = Script::create([
'id' => 'test_script',
'label' => $this
->t('Test Script'),
'snippet' => '<script> document.getElementById("main-wrapper").innerHTML = "Hello JavaScript!"; </script>',
'position' => ScriptInterface::POSITION_BOTTOM,
]);
$this->testScript
->save();
$this->testScript
->set('visibility', [
'request_path' => [
'id' => 'request_path',
'pages' => '<front>',
'negate' => FALSE,
'context_mapping' => [],
],
])
->save();
$this
->drupalGet('admin/structure/scripts');
$this
->assertSession()
->pageTextContains('Scripts');
$this
->assertSession()
->pageTextContains('Test Script');
$this
->drupalGet('<front>');
$this
->assertSession()
->pageTextContains('Hello JavaScript!');
$this
->drupalGet('/user');
$this
->assertSession()
->pageTextNotContains('Hello JavaScript!');
}
}