You are here

public function HtmlTagTest::providerPreRenderConditionalComments in Drupal 8

Same name and namespace in other branches
  1. 9 core/tests/Drupal/Tests/Core/Render/Element/HtmlTagTest.php \Drupal\Tests\Core\Render\Element\HtmlTagTest::providerPreRenderConditionalComments()

Data provider for conditional comments test.

File

core/tests/Drupal/Tests/Core/Render/Element/HtmlTagTest.php, line 239

Class

HtmlTagTest
@coversDefaultClass \Drupal\Core\Render\Element\HtmlTag @group Render

Namespace

Drupal\Tests\Core\Render\Element

Code

public function providerPreRenderConditionalComments() {

  // No browser specification.
  $element = [
    '#tag' => 'link',
  ];
  $tags['no-browser'] = [
    $element,
    $element,
  ];

  // Specify all browsers.
  $element['#browsers'] = [
    'IE' => TRUE,
    '!IE' => TRUE,
  ];
  $tags['all-browsers'] = [
    $element,
    $element,
  ];

  // All IE.
  $element = [
    '#tag' => 'link',
    '#browsers' => [
      'IE' => TRUE,
      '!IE' => FALSE,
    ],
  ];
  $expected = $element;
  $expected['#prefix'] = "\n<!--[if IE]>\n";
  $expected['#suffix'] = "<![endif]-->\n";
  $tags['all-ie'] = [
    $element,
    $expected,
  ];

  // Exclude IE.
  $element = [
    '#tag' => 'link',
    '#browsers' => [
      'IE' => FALSE,
    ],
  ];
  $expected = $element;
  $expected['#prefix'] = "\n<!--[if !IE]><!-->\n";
  $expected['#suffix'] = "<!--<![endif]-->\n";
  $tags['no-ie'] = [
    $element,
    $expected,
  ];

  // IE gt 8
  $element = [
    '#tag' => 'link',
    '#browsers' => [
      'IE' => 'gt IE 8',
    ],
  ];
  $expected = $element;
  $expected['#prefix'] = "\n<!--[if gt IE 8]><!-->\n";
  $expected['#suffix'] = "<!--<![endif]-->\n";
  $tags['ie9plus'] = [
    $element,
    $expected,
  ];

  // Prefix and suffix filtering if not safe.
  $element = [
    '#tag' => 'link',
    '#browsers' => [
      'IE' => FALSE,
    ],
    '#prefix' => '<blink>prefix</blink>',
    '#suffix' => '<blink>suffix</blink>',
  ];
  $expected = $element;
  $expected['#prefix'] = "\n<!--[if !IE]><!-->\nprefix";
  $expected['#suffix'] = "suffix<!--<![endif]-->\n";
  $tags['non-ie-unsafe'] = [
    $element,
    $expected,
  ];

  // Prefix and suffix filtering if marked as safe. This has to come after the
  // previous test case.
  $expected['#prefix'] = "\n<!--[if !IE]><!-->\n<blink>prefix</blink>";
  $expected['#suffix'] = "<blink>suffix</blink><!--<![endif]-->\n";
  $tags['non-ie-safe'] = [
    $element,
    $expected,
    TRUE,
  ];
  return $tags;
}