public function BlockViewBuilderTest::testBlockViewBuilder in Twig Tweak 3.x
Same name and namespace in other branches
- 3.1.x tests/src/Kernel/BlockViewBuilderTest.php \Drupal\Tests\twig_tweak\Kernel\BlockViewBuilderTest::testBlockViewBuilder()
Test callback.
See also
\Drupal\twig_tweak_test\Plugin\Block\FooBlock
File
- tests/
src/ Kernel/ BlockViewBuilderTest.php, line 33
Class
- BlockViewBuilderTest
- A test for BlockViewBuilder.
Namespace
Drupal\Tests\twig_tweak\KernelCode
public function testBlockViewBuilder() : void {
$view_builder = $this->container
->get('twig_tweak.block_view_builder');
// -- Default output.
$this
->setUpCurrentUser([
'name' => 'User 1',
]);
$build = $view_builder
->build('twig_tweak_test_foo');
$expected_build = [
'content' => [
'#markup' => 'Foo',
'#cache' => [
'contexts' => [
'url',
],
'tags' => [
'tag_from_build',
],
],
],
'#theme' => 'block',
'#id' => NULL,
'#attributes' => [
'id' => 'foo',
],
'#contextual_links' => [],
'#configuration' => [
'id' => 'twig_tweak_test_foo',
'label' => '',
'provider' => 'twig_tweak_test',
'label_display' => 'visible',
'content' => 'Foo',
],
'#plugin_id' => 'twig_tweak_test_foo',
'#base_plugin_id' => 'twig_tweak_test_foo',
'#derivative_plugin_id' => NULL,
'#cache' => [
'contexts' => [
'user',
],
'tags' => [
'tag_from_blockAccess',
],
'max-age' => 35,
'keys' => [
'twig_tweak_block',
'twig_tweak_test_foo',
'[configuration]=04c46ea912d2866a3a36c67326da1ef38f1c93cc822d6c45e1639f3decdebbdc',
'[wrapper]=1',
],
],
];
self::assertSame($expected_build, $build);
self::assertSame('<div id="foo">Foo</div>', $this
->renderPlain($build));
// -- Non-default configuration.
$configuration = [
'content' => 'Bar',
'label' => 'Example',
'id' => 'example',
];
$build = $view_builder
->build('twig_tweak_test_foo', $configuration);
$expected_build['content']['#markup'] = 'Bar';
$expected_build['#configuration']['label'] = 'Example';
$expected_build['#configuration']['content'] = 'Bar';
$expected_build['#configuration']['id'] = 'example';
$expected_build['#id'] = 'example';
$expected_build['#cache']['keys'] = [
'twig_tweak_block',
'twig_tweak_test_foo',
'[configuration]=8e53716fcf7e5d5c45effd55e9b2a267bbaf333f7253766f572d58e4f7991b36',
'[wrapper]=1',
];
self::assertSame($expected_build, $build);
self::assertSame('<div id="block-example"><h2>Example</h2>Bar</div>', $this
->renderPlain($build));
// -- Without wrapper.
$build = $view_builder
->build('twig_tweak_test_foo', [], FALSE);
$expected_build = [
'content' => [
'#markup' => 'Foo',
// Since the block is built without wrapper #attributes must remain in
// 'content' element.
'#attributes' => [
'id' => 'foo',
],
'#cache' => [
'contexts' => [
'url',
],
'tags' => [
'tag_from_build',
],
],
],
'#cache' => [
'contexts' => [
'user',
],
'tags' => [
'tag_from_blockAccess',
],
'max-age' => 35,
'keys' => [
'twig_tweak_block',
'twig_tweak_test_foo',
'[configuration]=04c46ea912d2866a3a36c67326da1ef38f1c93cc822d6c45e1639f3decdebbdc',
'[wrapper]=0',
],
],
];
self::assertSame($expected_build, $build);
self::assertSame('Foo', $this
->renderPlain($build));
// -- Unprivileged user.
$this
->setUpCurrentUser([
'name' => 'User 2',
]);
$build = $view_builder
->build('twig_tweak_test_foo');
$expected_build = [
'#cache' => [
'contexts' => [
'user',
],
'tags' => [
'tag_from_blockAccess',
],
'max-age' => 35,
'keys' => [
'twig_tweak_block',
'twig_tweak_test_foo',
'[configuration]=04c46ea912d2866a3a36c67326da1ef38f1c93cc822d6c45e1639f3decdebbdc',
'[wrapper]=1',
],
],
];
self::assertSame($expected_build, $build);
self::assertSame('', $this
->renderPlain($build));
}