Пример #1
0
 /**
  * @covers ::safeJoin
  */
 public function testSafeJoin()
 {
     $renderer = $this->prophesize(RendererInterface::class);
     $renderer->render(['#markup' => '<strong>will be rendered</strong>', '#printed' => FALSE])->willReturn('<strong>will be rendered</strong>');
     $renderer = $renderer->reveal();
     $twig_extension = new TwigExtension($renderer);
     $twig_environment = $this->prophesize(TwigEnvironment::class)->reveal();
     // Simulate t().
     $markup = $this->prophesize(TranslatableMarkup::class);
     $markup->__toString()->willReturn('<em>will be markup</em>');
     $markup = $markup->reveal();
     $items = ['<em>will be escaped</em>', $markup, ['#markup' => '<strong>will be rendered</strong>']];
     $result = $twig_extension->safeJoin($twig_environment, $items, '<br/>');
     $this->assertEquals('&lt;em&gt;will be escaped&lt;/em&gt;<br/><em>will be markup</em><br/><strong>will be rendered</strong>', $result);
     // Ensure safe_join Twig filter supports Traversable variables.
     $items = new \ArrayObject(['<em>will be escaped</em>', $markup, ['#markup' => '<strong>will be rendered</strong>']]);
     $result = $twig_extension->safeJoin($twig_environment, $items, ', ');
     $this->assertEquals('&lt;em&gt;will be escaped&lt;/em&gt;, <em>will be markup</em>, <strong>will be rendered</strong>', $result);
     // Ensure safe_join Twig filter supports empty variables.
     $items = NULL;
     $result = $twig_extension->safeJoin($twig_environment, $items, '<br>');
     $this->assertEmpty($result);
 }
Пример #2
0
  /**
   * @covers ::safeJoin
   */
  public function testSafeJoin() {
    $renderer = $this->prophesize(RendererInterface::class);
    $renderer->render(['#markup' => '<strong>will be rendered</strong>', '#printed' => FALSE])->willReturn('<strong>will be rendered</strong>');
    $renderer = $renderer->reveal();

    $twig_extension = new TwigExtension($renderer);
    $twig_environment = $this->prophesize(TwigEnvironment::class)->reveal();


    // Simulate t().
    $string = '<em>will be markup</em>';
    SafeMarkup::setMultiple([$string => ['html' => TRUE]]);

    $items = [
      '<em>will be escaped</em>',
      $string,
      ['#markup' => '<strong>will be rendered</strong>']
    ];
    $result = $twig_extension->safeJoin($twig_environment, $items, '<br/>');
    $this->assertEquals('&lt;em&gt;will be escaped&lt;/em&gt;<br/><em>will be markup</em><br/><strong>will be rendered</strong>', $result);
  }