function EntityFilteringThemeTest::setUp
Same name in other branches
- 9 core/modules/system/tests/src/Functional/Theme/EntityFilteringThemeTest.php \Drupal\Tests\system\Functional\Theme\EntityFilteringThemeTest::setUp()
- 8.9.x core/modules/system/tests/src/Functional/Theme/EntityFilteringThemeTest.php \Drupal\Tests\system\Functional\Theme\EntityFilteringThemeTest::setUp()
- 10 core/modules/system/tests/src/Functional/Theme/EntityFilteringThemeTest.php \Drupal\Tests\system\Functional\Theme\EntityFilteringThemeTest::setUp()
Overrides BrowserTestBase::setUp
File
-
core/
modules/ system/ tests/ src/ Functional/ Theme/ EntityFilteringThemeTest.php, line 84
Class
- EntityFilteringThemeTest
- Tests XSS filtering for themed output for each entity type in all themes.
Namespace
Drupal\Tests\system\Functional\ThemeCode
protected function setUp() : void {
parent::setUp();
// Install all available non-testing themes.
$listing = new ExtensionDiscovery(\Drupal::root());
$this->themes = $listing->scan('theme', FALSE);
/** @var \Drupal\Core\Extension\ThemeHandlerInterface $theme_handler */
$theme_data = \Drupal::service('extension.list.theme')->reset()
->getList();
foreach (array_keys($this->themes) as $theme) {
// Skip obsolete and deprecated themes.
$info = $theme_data[$theme]->info;
if ($info[ExtensionLifecycle::LIFECYCLE_IDENTIFIER] === ExtensionLifecycle::OBSOLETE || $info[ExtensionLifecycle::LIFECYCLE_IDENTIFIER] === ExtensionLifecycle::DEPRECATED) {
unset($this->themes[$theme]);
}
}
\Drupal::service('theme_installer')->install(array_keys($this->themes));
// Create a test user.
$this->user = $this->drupalCreateUser([
'access content',
'access user profiles',
]);
$this->user->name = $this->xssLabel;
$this->user
->save();
$this->drupalLogin($this->user);
// Create a test term.
$this->term = Term::create([
'name' => $this->xssLabel,
'vid' => 1,
]);
$this->term
->save();
$this->createContentType([
'type' => 'article',
]);
// Add a comment field.
$this->addDefaultCommentField('node', 'article', 'comment', CommentItemInterface::OPEN);
// Create a test node tagged with the test term.
$this->node = $this->drupalCreateNode([
'title' => $this->xssLabel,
'type' => 'article',
'promote' => NodeInterface::PROMOTED,
'field_tags' => [
[
'target_id' => $this->term
->id(),
],
],
]);
// Create a test comment on the test node.
$this->comment = Comment::create([
'entity_id' => $this->node
->id(),
'entity_type' => 'node',
'field_name' => 'comment',
'status' => CommentInterface::PUBLISHED,
'subject' => $this->xssLabel,
'comment_body' => [
$this->randomMachineName(),
],
]);
$this->comment
->save();
}
Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.