X-Git-Url: http://www.aleph1.co.uk/gitweb/?p=yaffs-website;a=blobdiff_plain;f=web%2Fcore%2Fmodules%2Fviews%2Ftests%2Fsrc%2FUnit%2FPlugin%2Ffield%2FFieldPluginBaseTest.php;fp=web%2Fcore%2Fmodules%2Fviews%2Ftests%2Fsrc%2FUnit%2FPlugin%2Ffield%2FFieldPluginBaseTest.php;h=e8ff8d7d965694833c2f2b9c710226bbaeb466ad;hp=0b33a58917af55c1de468f83e2d73639aec93234;hb=bfbba508964731508b9bd6d5835c2edc858db95b;hpb=cb9a80db11fc6b014e5b1e693a5a391c95eb5d9a diff --git a/web/core/modules/views/tests/src/Unit/Plugin/field/FieldPluginBaseTest.php b/web/core/modules/views/tests/src/Unit/Plugin/field/FieldPluginBaseTest.php index 0b33a5891..e8ff8d7d9 100644 --- a/web/core/modules/views/tests/src/Unit/Plugin/field/FieldPluginBaseTest.php +++ b/web/core/modules/views/tests/src/Unit/Plugin/field/FieldPluginBaseTest.php @@ -717,6 +717,50 @@ class FieldPluginBaseTest extends UnitTestCase { $this->assertEquals($expected, $field->getRenderTokens([])); } + /** + * Ensures proper token replacement when generating CSS classes. + * + * @covers ::elementClasses + * @covers ::elementLabelClasses + * @covers ::elementWrapperClasses + */ + public function testElementClassesWithTokens() { + $functions = [ + 'elementClasses' => 'element_class', + 'elementLabelClasses' => 'element_label_class', + 'elementWrapperClasses' => 'element_wrapper_class', + ]; + + $tokens = ['test_token' => 'foo']; + $test_class = 'test-class-without-token test-class-with-{{ test_token }}-token'; + $expected_result = 'test-class-without-token test-class-with-foo-token'; + + // Inline template to render the tokens. + $build = [ + '#type' => 'inline_template', + '#template' => $test_class, + '#context' => $tokens, + '#post_render' => [function() {}], + ]; + + // We're not testing the token rendering itself, just that the function + // being tested correctly handles tokens when generating the element's class + // attribute. + $this->renderer->expects($this->any()) + ->method('renderPlain') + ->with($build) + ->willReturn($expected_result); + + foreach ($functions as $callable => $option_name) { + $field = $this->setupTestField([$option_name => $test_class]); + $field->view->style_plugin = new \stdClass(); + $field->view->style_plugin->render_tokens[] = $tokens; + + $result = $field->{$callable}(0); + $this->assertEquals($expected_result, $result); + } + } + } class FieldPluginBaseTestField extends FieldPluginBase {