1 common.test | CommonJavaScriptTestCase::testDeprecatedBrowserConditionalComments() |
Test deprecated conditional comments are no longer output.
Since Backdrop 1.27.0, the "browsers" option for backdrop_add_js() and backdrop_add_css() no longer outputs conditional comments, because conditional comments only work on IE 4-10 (which is completely unsupported). The "browsers" attribute still exists to prevent IE-only files from suddenly appearing on existing sites.
See also
backdrop_pre_render_conditional_comments()
File
- core/
modules/ simpletest/ tests/ common.test, line 1530 - Tests for common.inc functionality.
Class
- CommonJavaScriptTestCase
- Tests for the JavaScript system.
Code
function testDeprecatedBrowserConditionalComments() {
$default_query_string = state_get('css_js_query_string', '0');
backdrop_add_js('core/misc/collapse.js', array('browsers' => array('IE' => 'lte IE 8', '!IE' => FALSE)));
backdrop_add_js('jQuery(function () { });', array('type' => 'inline', 'browsers' => array('IE' => FALSE)));
$javascript = backdrop_get_js();
$expected_1 = '<script src="' . file_create_url('core/misc/collapse.js') . '?' . $default_query_string . '"></script>';
$expected_2 = '<script>jQuery(function () { });</script>';
$this->assertTrue(strpos($javascript, $expected_1) === FALSE, 'IE-only browser file not output at all.');
$this->assertTrue(strpos($javascript, '<!--[if lte IE 8]>') === FALSE, 'IE conditional comment output is suppressed.');
$this->assertTrue(strpos($javascript, $expected_2) > 0, 'Browsers except IE file output directly with no conditional comments.');
$this->assertTrue(strpos($javascript, '<!--[if !IE]>') === FALSE, 'Not-IE conditional comment output is suppressed.');
}