diff --git a/core/lib/Drupal/Core/Render/RenderVariable.php b/core/lib/Drupal/Core/Render/RenderVariable.php index 0253166..83e4497 100644 --- a/core/lib/Drupal/Core/Render/RenderVariable.php +++ b/core/lib/Drupal/Core/Render/RenderVariable.php @@ -83,6 +83,7 @@ public static function wrap($thing, $prefix, $suffix) { $output = static::makeRenderArray($thing); $output['#prefix'] = $prefix; $output['#suffix'] = $suffix; + return $output; } /** diff --git a/core/tests/Drupal/Tests/Core/Render/RenderVariableTest.php b/core/tests/Drupal/Tests/Core/Render/RenderVariableTest.php index f58ffa6..fd007c3 100644 --- a/core/tests/Drupal/Tests/Core/Render/RenderVariableTest.php +++ b/core/tests/Drupal/Tests/Core/Render/RenderVariableTest.php @@ -8,6 +8,7 @@ namespace Drupal\Tests\Core\Render; use Drupal\Core\Render\RenderVariable; +use Drupal\Core\Render\SafeString; /** * @coversDefaultClass \Drupal\Core\Render\RenderVariable @@ -37,11 +38,13 @@ public function providerRenderVariablePrefix() { $data[] = ['1 2 <em>blah</em>', 'blah', ['1', ' ', '2', ' ']]; $data[] = ['testblah', ['#markup' => 'blah'], ['test']]; $data[] = ['test blah', ['#markup' => 'blah'], ['test', ' ']]; + $data[] = ['testblah', SafeString::create('blah'), ['test']]; + $data[] = ['test blah', SafeString::create('blah'), ['test', ' ']]; return $data; } /** - * @covers ::prefix + * @covers ::suffix * * @dataProvider providerRenderVariableSuffix */ @@ -62,6 +65,30 @@ public function providerRenderVariableSuffix() { $data[] = ['<em>blah</em>1 2', 'blah', ['1', ' ', '2']]; $data[] = ['blahtest', ['#markup' => 'blah'], ['test']]; $data[] = ['blah test', ['#markup' => 'blah'], [' ', 'test']]; + $data[] = ['blahtest', SafeString::create('blah'), ['test']]; + $data[] = ['blah test', SafeString::create('blah'), [' ', 'test']]; + return $data; + } + + /** + * @covers ::wrap + * + * @dataProvider providerRenderVariableWrap + */ + public function testRenderVariableWrap($expected, $variable, $prefix, $suffix) { + $build = RenderVariable::wrap($variable, $prefix, $suffix); + $render_output = $this->renderer->renderRoot($build); + $this->assertEquals($expected, (string) $render_output); + } + + /** + * @return array + */ + public function providerRenderVariableWrap() { + $data = []; + $data[] = ['<em>blah</em>', 'blah', '', '']; + $data[] = ['blah', ['#markup' => 'blah'], '', '']; + $data[] = ['bar', SafeString::create('bar'), '', '']; return $data; }