RenderTest.php in Zircon Profile 8
Same filename and directory in other branches
Contains \Drupal\system\Tests\Common\RenderTest.
Namespace
Drupal\system\Tests\CommonFile
core/modules/system/src/Tests/Common/RenderTest.phpView source
<?php
/**
* @file
* Contains \Drupal\system\Tests\Common\RenderTest.
*/
namespace Drupal\system\Tests\Common;
use Drupal\Core\Render\Element;
use Drupal\simpletest\KernelTestBase;
/**
* Performs functional tests on drupal_render().
*
* @group Common
*/
class RenderTest extends KernelTestBase {
/**
* Modules to enable.
*
* @var array
*/
public static $modules = array(
'system',
'common_test',
);
/**
* Tests theme preprocess functions being able to attach assets.
*/
function testDrupalRenderThemePreprocessAttached() {
\Drupal::state()
->set('theme_preprocess_attached_test', TRUE);
$test_element = [
'#theme' => 'common_test_render_element',
'foo' => [
'#markup' => 'Kittens!',
],
];
\Drupal::service('renderer')
->renderRoot($test_element);
$expected_attached = [
'library' => [
'test/generic_preprocess',
'test/specific_preprocess',
],
];
$this
->assertEqual($expected_attached, $test_element['#attached'], 'All expected assets from theme preprocess hooks attached.');
\Drupal::state()
->set('theme_preprocess_attached_test', FALSE);
}
/**
* Tests that we get an exception when we try to attach an illegal type.
*/
public function testProcessAttached() {
// Specify invalid attachments in a render array.
$build['#attached']['library'][] = 'core/drupal.states';
$build['#attached']['drupal_process_states'][] = [];
$renderer = $this->container
->get('bare_html_page_renderer');
try {
$renderer
->renderBarePage($build, '', $this->container
->get('theme.manager')
->getActiveTheme()
->getName());
$this
->fail("Invalid #attachment 'drupal_process_states' allowed");
} catch (\LogicException $e) {
$this
->pass("Invalid #attachment 'drupal_process_states' not allowed");
}
}
}
Classes
Name | Description |
---|---|
RenderTest | Performs functional tests on drupal_render(). |