Commit 194f2a8c authored by dbeam's avatar dbeam Committed by Commit bot

Convert i18n_process.css to use * /deep/ instead of ::shadow and add tests.

R=esprehn@chromium.org,thestig@chromium.org
BUG=511486

Review URL: https://codereview.chromium.org/1246253002

Cr-Commit-Position: refs/heads/master@{#339814}
parent 0a13a603
...@@ -573,10 +573,12 @@ repack("packed_extra_resources") { ...@@ -573,10 +573,12 @@ repack("packed_extra_resources") {
repack("browser_tests_pak") { repack("browser_tests_pak") {
sources = [ sources = [
"$root_gen_dir/chrome/options_test_resources.pak", "$root_gen_dir/chrome/options_test_resources.pak",
"$root_gen_dir/chrome/webui_test_resources.pak",
] ]
output = "$root_out_dir/browser_tests.pak" output = "$root_out_dir/browser_tests.pak"
deps = [ deps = [
"//chrome/browser/resources:options_test_resources", "//chrome/browser/resources:options_test_resources",
"//chrome/test/data:webui_test_resources",
] ]
} }
......
...@@ -598,12 +598,28 @@ ...@@ -598,12 +598,28 @@
], ],
'includes': [ '../build/grit_target.gypi' ], 'includes': [ '../build/grit_target.gypi' ],
}, },
{
# GN version: //chrome/test/data/resources:webui_test_resources
'target_name': 'webui_test_resources',
'type': 'none',
'actions': [
{
'action_name': 'generate_webui_test_resources',
'variables': {
'grit_grd_file': 'test/data/webui_test_resources.grd',
},
'includes': [ '../build/grit_action.gypi' ],
},
],
'includes': [ '../build/grit_target.gypi' ],
},
{ {
# GN version: //chrome:browser_tests_pak # GN version: //chrome:browser_tests_pak
'target_name': 'browser_tests_pak', 'target_name': 'browser_tests_pak',
'type': 'none', 'type': 'none',
'dependencies': [ 'dependencies': [
'options_test_resources', 'options_test_resources',
'webui_test_resources',
], ],
'actions': [ 'actions': [
{ {
...@@ -611,6 +627,7 @@ ...@@ -611,6 +627,7 @@
'variables': { 'variables': {
'pak_inputs': [ 'pak_inputs': [
'<(SHARED_INTERMEDIATE_DIR)/chrome/options_test_resources.pak', '<(SHARED_INTERMEDIATE_DIR)/chrome/options_test_resources.pak',
'<(SHARED_INTERMEDIATE_DIR)/chrome/webui_test_resources.pak',
], ],
'pak_output': '<(PRODUCT_DIR)/browser_tests.pak', 'pak_output': '<(PRODUCT_DIR)/browser_tests.pak',
}, },
......
# Copyright 2015 The Chromium Authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
import("//tools/grit/grit_rule.gni")
grit("webui_test_resources") {
source = "webui_test_resources.grd"
outputs = [
"chrome/test/data/grit/webui_test_resources.h",
"webui_test_resources.pak",
]
output_dir = "$root_gen_dir/chrome"
}
<!doctype html>
<style>
<include src="../../../../ui/webui/resources/css/i18n_process.css">
</style>
<h1 i18n-content="buy"></h1>
<span i18n-values=".innerHTML:link"></span>
<script>
function testI18nProcess_NbspPlaceholder() {
var h1 = document.querySelector('h1');
var span = document.querySelector('span');
assertFalse(document.documentElement.hasAttribute('i18n-processed'));
assertEquals('', h1.textContent);
assertEquals('', span.textContent);
/* We can't check that the non-breaking space hack actually works because it
* uses :psuedo-elements that are inaccessible to the DOM. Let's just check
* that they're not auto-collapsed. */
assertNotEqual(0, h1.offsetHeight);
assertNotEqual(0, span.offsetHeight);
h1.removeAttribute('i18n-content');
assertEquals(0, h1.offsetHeight);
span.removeAttribute('i18n-values');
assertEquals(0, span.offsetHeight);
}
</script>
...@@ -10,6 +10,7 @@ ...@@ -10,6 +10,7 @@
#include "chrome/grit/options_test_resources.h" #include "chrome/grit/options_test_resources.h"
#include "chrome/test/base/in_process_browser_test.h" #include "chrome/test/base/in_process_browser_test.h"
#include "chrome/test/base/ui_test_utils.h" #include "chrome/test/base/ui_test_utils.h"
#include "chrome/test/data/grit/webui_test_resources.h"
#include "content/public/browser/notification_registrar.h" #include "content/public/browser/notification_registrar.h"
#include "content/public/browser/web_contents.h" #include "content/public/browser/web_contents.h"
#include "content/public/test/browser_test_utils.h" #include "content/public/test/browser_test_utils.h"
...@@ -28,15 +29,15 @@ class WebUIResourceBrowserTest : public InProcessBrowserTest { ...@@ -28,15 +29,15 @@ class WebUIResourceBrowserTest : public InProcessBrowserTest {
} }
// Runs all test functions in |file|, waiting for them to complete. // Runs all test functions in |file|, waiting for them to complete.
void RunTest(const base::FilePath& file) { void LoadFile(const base::FilePath& file) {
GURL url = ui_test_utils::GetTestUrl( base::FilePath webui(FILE_PATH_LITERAL("webui"));
base::FilePath(FILE_PATH_LITERAL("webui")), file); RunTest(ui_test_utils::GetTestUrl(webui, file));
ui_test_utils::NavigateToURL(browser(), url); }
content::WebContents* web_contents = void LoadResource(int idr) {
browser()->tab_strip_model()->GetActiveWebContents(); ResourceBundle& bundle = ResourceBundle::GetSharedInstance();
ASSERT_TRUE(web_contents); base::StringPiece resource = bundle.GetRawDataResource(idr);
EXPECT_TRUE(ExecuteWebUIResourceTest(web_contents, include_libraries_)); RunTest(GURL(std::string("data:text/html,") + resource.as_string()));
} }
// Queues the library corresponding to |resource_id| for injection into the // Queues the library corresponding to |resource_id| for injection into the
...@@ -48,6 +49,14 @@ class WebUIResourceBrowserTest : public InProcessBrowserTest { ...@@ -48,6 +49,14 @@ class WebUIResourceBrowserTest : public InProcessBrowserTest {
} }
private: private:
void RunTest(const GURL& url) {
ui_test_utils::NavigateToURL(browser(), url);
content::WebContents* web_contents =
browser()->tab_strip_model()->GetActiveWebContents();
ASSERT_TRUE(web_contents);
EXPECT_TRUE(ExecuteWebUIResourceTest(web_contents, include_libraries_));
}
// Resource IDs for internal javascript libraries to inject into the test. // Resource IDs for internal javascript libraries to inject into the test.
std::vector<int> include_libraries_; std::vector<int> include_libraries_;
}; };
...@@ -56,26 +65,30 @@ IN_PROC_BROWSER_TEST_F(WebUIResourceBrowserTest, ArrayDataModelTest) { ...@@ -56,26 +65,30 @@ IN_PROC_BROWSER_TEST_F(WebUIResourceBrowserTest, ArrayDataModelTest) {
AddLibrary(IDR_WEBUI_JS_CR); AddLibrary(IDR_WEBUI_JS_CR);
AddLibrary(IDR_WEBUI_JS_CR_EVENT_TARGET); AddLibrary(IDR_WEBUI_JS_CR_EVENT_TARGET);
AddLibrary(IDR_WEBUI_JS_CR_UI_ARRAY_DATA_MODEL); AddLibrary(IDR_WEBUI_JS_CR_UI_ARRAY_DATA_MODEL);
RunTest(base::FilePath(FILE_PATH_LITERAL("array_data_model_test.html"))); LoadFile(base::FilePath(FILE_PATH_LITERAL("array_data_model_test.html")));
} }
IN_PROC_BROWSER_TEST_F(WebUIResourceBrowserTest, CrTest) { IN_PROC_BROWSER_TEST_F(WebUIResourceBrowserTest, CrTest) {
AddLibrary(IDR_WEBUI_JS_CR); AddLibrary(IDR_WEBUI_JS_CR);
AddLibrary(IDR_WEBUI_JS_CR_EVENT_TARGET); AddLibrary(IDR_WEBUI_JS_CR_EVENT_TARGET);
RunTest(base::FilePath(FILE_PATH_LITERAL("cr_test.html"))); LoadFile(base::FilePath(FILE_PATH_LITERAL("cr_test.html")));
} }
IN_PROC_BROWSER_TEST_F(WebUIResourceBrowserTest, EventTargetTest) { IN_PROC_BROWSER_TEST_F(WebUIResourceBrowserTest, EventTargetTest) {
AddLibrary(IDR_WEBUI_JS_CR); AddLibrary(IDR_WEBUI_JS_CR);
AddLibrary(IDR_WEBUI_JS_CR_EVENT_TARGET); AddLibrary(IDR_WEBUI_JS_CR_EVENT_TARGET);
RunTest(base::FilePath(FILE_PATH_LITERAL("event_target_test.html"))); LoadFile(base::FilePath(FILE_PATH_LITERAL("event_target_test.html")));
}
IN_PROC_BROWSER_TEST_F(WebUIResourceBrowserTest, I18nProcessCssTest) {
LoadResource(IDR_WEBUI_TEST_I18N_PROCESS_CSS_TEST);
} }
IN_PROC_BROWSER_TEST_F(WebUIResourceBrowserTest, I18nProcessTest) { IN_PROC_BROWSER_TEST_F(WebUIResourceBrowserTest, I18nProcessTest) {
AddLibrary(IDR_WEBUI_JS_LOAD_TIME_DATA); AddLibrary(IDR_WEBUI_JS_LOAD_TIME_DATA);
AddLibrary(IDR_WEBUI_JS_I18N_TEMPLATE_NO_PROCESS); AddLibrary(IDR_WEBUI_JS_I18N_TEMPLATE_NO_PROCESS);
AddLibrary(IDR_WEBUI_JS_UTIL); AddLibrary(IDR_WEBUI_JS_UTIL);
RunTest(base::FilePath(FILE_PATH_LITERAL("i18n_process_test.html"))); LoadFile(base::FilePath(FILE_PATH_LITERAL("i18n_process_test.html")));
} }
IN_PROC_BROWSER_TEST_F(WebUIResourceBrowserTest, ListTest) { IN_PROC_BROWSER_TEST_F(WebUIResourceBrowserTest, ListTest) {
...@@ -87,7 +100,7 @@ IN_PROC_BROWSER_TEST_F(WebUIResourceBrowserTest, ListTest) { ...@@ -87,7 +100,7 @@ IN_PROC_BROWSER_TEST_F(WebUIResourceBrowserTest, ListTest) {
AddLibrary(IDR_WEBUI_JS_CR_UI_LIST_SELECTION_CONTROLLER); AddLibrary(IDR_WEBUI_JS_CR_UI_LIST_SELECTION_CONTROLLER);
AddLibrary(IDR_WEBUI_JS_CR_UI_LIST_SELECTION_MODEL); AddLibrary(IDR_WEBUI_JS_CR_UI_LIST_SELECTION_MODEL);
AddLibrary(IDR_WEBUI_JS_CR_UI_LIST); AddLibrary(IDR_WEBUI_JS_CR_UI_LIST);
RunTest(base::FilePath(FILE_PATH_LITERAL("list_test.html"))); LoadFile(base::FilePath(FILE_PATH_LITERAL("list_test.html")));
} }
IN_PROC_BROWSER_TEST_F(WebUIResourceBrowserTest, GridTest) { IN_PROC_BROWSER_TEST_F(WebUIResourceBrowserTest, GridTest) {
...@@ -101,27 +114,27 @@ IN_PROC_BROWSER_TEST_F(WebUIResourceBrowserTest, GridTest) { ...@@ -101,27 +114,27 @@ IN_PROC_BROWSER_TEST_F(WebUIResourceBrowserTest, GridTest) {
AddLibrary(IDR_WEBUI_JS_CR_UI_LIST_SELECTION_MODEL); AddLibrary(IDR_WEBUI_JS_CR_UI_LIST_SELECTION_MODEL);
// Grid must be the last addition as it depends on list libraries. // Grid must be the last addition as it depends on list libraries.
AddLibrary(IDR_WEBUI_JS_CR_UI_GRID); AddLibrary(IDR_WEBUI_JS_CR_UI_GRID);
RunTest(base::FilePath(FILE_PATH_LITERAL("grid_test.html"))); LoadFile(base::FilePath(FILE_PATH_LITERAL("grid_test.html")));
} }
IN_PROC_BROWSER_TEST_F(WebUIResourceBrowserTest, LinkControllerTest) { IN_PROC_BROWSER_TEST_F(WebUIResourceBrowserTest, LinkControllerTest) {
AddLibrary(IDR_WEBUI_JS_CR); AddLibrary(IDR_WEBUI_JS_CR);
AddLibrary(IDR_WEBUI_JS_CR_LINK_CONTROLLER); AddLibrary(IDR_WEBUI_JS_CR_LINK_CONTROLLER);
RunTest(base::FilePath(FILE_PATH_LITERAL("link_controller_test.html"))); LoadFile(base::FilePath(FILE_PATH_LITERAL("link_controller_test.html")));
} }
IN_PROC_BROWSER_TEST_F(WebUIResourceBrowserTest, ListSelectionModelTest) { IN_PROC_BROWSER_TEST_F(WebUIResourceBrowserTest, ListSelectionModelTest) {
AddLibrary(IDR_WEBUI_JS_CR); AddLibrary(IDR_WEBUI_JS_CR);
AddLibrary(IDR_WEBUI_JS_CR_EVENT_TARGET); AddLibrary(IDR_WEBUI_JS_CR_EVENT_TARGET);
AddLibrary(IDR_WEBUI_JS_CR_UI_LIST_SELECTION_MODEL); AddLibrary(IDR_WEBUI_JS_CR_UI_LIST_SELECTION_MODEL);
RunTest(base::FilePath(FILE_PATH_LITERAL("list_selection_model_test.html"))); LoadFile(base::FilePath(FILE_PATH_LITERAL("list_selection_model_test.html")));
} }
IN_PROC_BROWSER_TEST_F(WebUIResourceBrowserTest, ListSingleSelectionModelTest) { IN_PROC_BROWSER_TEST_F(WebUIResourceBrowserTest, ListSingleSelectionModelTest) {
AddLibrary(IDR_WEBUI_JS_CR); AddLibrary(IDR_WEBUI_JS_CR);
AddLibrary(IDR_WEBUI_JS_CR_EVENT_TARGET); AddLibrary(IDR_WEBUI_JS_CR_EVENT_TARGET);
AddLibrary(IDR_WEBUI_JS_CR_UI_LIST_SINGLE_SELECTION_MODEL); AddLibrary(IDR_WEBUI_JS_CR_UI_LIST_SINGLE_SELECTION_MODEL);
RunTest(base::FilePath(FILE_PATH_LITERAL( LoadFile(base::FilePath(FILE_PATH_LITERAL(
"list_single_selection_model_test.html"))); "list_single_selection_model_test.html")));
} }
...@@ -137,7 +150,7 @@ IN_PROC_BROWSER_TEST_F(WebUIResourceBrowserTest, InlineEditableListTest) { ...@@ -137,7 +150,7 @@ IN_PROC_BROWSER_TEST_F(WebUIResourceBrowserTest, InlineEditableListTest) {
AddLibrary(IDR_WEBUI_JS_LOAD_TIME_DATA); AddLibrary(IDR_WEBUI_JS_LOAD_TIME_DATA);
AddLibrary(IDR_OPTIONS_DELETABLE_ITEM_LIST); AddLibrary(IDR_OPTIONS_DELETABLE_ITEM_LIST);
AddLibrary(IDR_OPTIONS_INLINE_EDITABLE_LIST); AddLibrary(IDR_OPTIONS_INLINE_EDITABLE_LIST);
RunTest(base::FilePath(FILE_PATH_LITERAL( LoadFile(base::FilePath(FILE_PATH_LITERAL(
"inline_editable_list_test.html"))); "inline_editable_list_test.html")));
} }
...@@ -148,29 +161,29 @@ IN_PROC_BROWSER_TEST_F(WebUIResourceBrowserTest, MenuTest) { ...@@ -148,29 +161,29 @@ IN_PROC_BROWSER_TEST_F(WebUIResourceBrowserTest, MenuTest) {
AddLibrary(IDR_WEBUI_JS_CR_UI_COMMAND); AddLibrary(IDR_WEBUI_JS_CR_UI_COMMAND);
AddLibrary(IDR_WEBUI_JS_CR_UI_MENU_ITEM); AddLibrary(IDR_WEBUI_JS_CR_UI_MENU_ITEM);
AddLibrary(IDR_WEBUI_JS_CR_UI_MENU); AddLibrary(IDR_WEBUI_JS_CR_UI_MENU);
RunTest(base::FilePath(FILE_PATH_LITERAL("menu_test.html"))); LoadFile(base::FilePath(FILE_PATH_LITERAL("menu_test.html")));
} }
IN_PROC_BROWSER_TEST_F(WebUIResourceBrowserTest, MockTimerTest) { IN_PROC_BROWSER_TEST_F(WebUIResourceBrowserTest, MockTimerTest) {
RunTest(base::FilePath(FILE_PATH_LITERAL("mock_timer_test.html"))); LoadFile(base::FilePath(FILE_PATH_LITERAL("mock_timer_test.html")));
} }
IN_PROC_BROWSER_TEST_F(WebUIResourceBrowserTest, ParseHtmlSubsetTest) { IN_PROC_BROWSER_TEST_F(WebUIResourceBrowserTest, ParseHtmlSubsetTest) {
AddLibrary(IDR_WEBUI_JS_PARSE_HTML_SUBSET); AddLibrary(IDR_WEBUI_JS_PARSE_HTML_SUBSET);
RunTest(base::FilePath(FILE_PATH_LITERAL("parse_html_subset_test.html"))); LoadFile(base::FilePath(FILE_PATH_LITERAL("parse_html_subset_test.html")));
} }
IN_PROC_BROWSER_TEST_F(WebUIResourceBrowserTest, PositionUtilTest) { IN_PROC_BROWSER_TEST_F(WebUIResourceBrowserTest, PositionUtilTest) {
AddLibrary(IDR_WEBUI_JS_CR); AddLibrary(IDR_WEBUI_JS_CR);
AddLibrary(IDR_WEBUI_JS_CR_UI_POSITION_UTIL); AddLibrary(IDR_WEBUI_JS_CR_UI_POSITION_UTIL);
RunTest(base::FilePath(FILE_PATH_LITERAL("position_util_test.html"))); LoadFile(base::FilePath(FILE_PATH_LITERAL("position_util_test.html")));
} }
IN_PROC_BROWSER_TEST_F(WebUIResourceBrowserTest, RepeatingButtonTest) { IN_PROC_BROWSER_TEST_F(WebUIResourceBrowserTest, RepeatingButtonTest) {
AddLibrary(IDR_WEBUI_JS_CR); AddLibrary(IDR_WEBUI_JS_CR);
AddLibrary(IDR_WEBUI_JS_CR_UI); AddLibrary(IDR_WEBUI_JS_CR_UI);
AddLibrary(IDR_WEBUI_JS_CR_UI_REPEATING_BUTTON); AddLibrary(IDR_WEBUI_JS_CR_UI_REPEATING_BUTTON);
RunTest(base::FilePath(FILE_PATH_LITERAL("repeating_button_test.html"))); LoadFile(base::FilePath(FILE_PATH_LITERAL("repeating_button_test.html")));
} }
IN_PROC_BROWSER_TEST_F(WebUIResourceBrowserTest, CommandTest) { IN_PROC_BROWSER_TEST_F(WebUIResourceBrowserTest, CommandTest) {
...@@ -178,7 +191,7 @@ IN_PROC_BROWSER_TEST_F(WebUIResourceBrowserTest, CommandTest) { ...@@ -178,7 +191,7 @@ IN_PROC_BROWSER_TEST_F(WebUIResourceBrowserTest, CommandTest) {
AddLibrary(IDR_WEBUI_JS_CR); AddLibrary(IDR_WEBUI_JS_CR);
AddLibrary(IDR_WEBUI_JS_CR_UI); AddLibrary(IDR_WEBUI_JS_CR_UI);
AddLibrary(IDR_WEBUI_JS_CR_UI_COMMAND); AddLibrary(IDR_WEBUI_JS_CR_UI_COMMAND);
RunTest(base::FilePath(FILE_PATH_LITERAL("command_test.html"))); LoadFile(base::FilePath(FILE_PATH_LITERAL("command_test.html")));
} }
IN_PROC_BROWSER_TEST_F(WebUIResourceBrowserTest, ContextMenuHandlerTest) { IN_PROC_BROWSER_TEST_F(WebUIResourceBrowserTest, ContextMenuHandlerTest) {
...@@ -192,7 +205,7 @@ IN_PROC_BROWSER_TEST_F(WebUIResourceBrowserTest, ContextMenuHandlerTest) { ...@@ -192,7 +205,7 @@ IN_PROC_BROWSER_TEST_F(WebUIResourceBrowserTest, ContextMenuHandlerTest) {
AddLibrary(IDR_WEBUI_JS_CR_UI_MENU_BUTTON); AddLibrary(IDR_WEBUI_JS_CR_UI_MENU_BUTTON);
AddLibrary(IDR_WEBUI_JS_CR_UI_MENU); AddLibrary(IDR_WEBUI_JS_CR_UI_MENU);
AddLibrary(IDR_WEBUI_JS_CR_UI_CONTEXT_MENU_HANDLER); AddLibrary(IDR_WEBUI_JS_CR_UI_CONTEXT_MENU_HANDLER);
RunTest(base::FilePath(FILE_PATH_LITERAL("context_menu_handler_test.html"))); LoadFile(base::FilePath(FILE_PATH_LITERAL("context_menu_handler_test.html")));
} }
IN_PROC_BROWSER_TEST_F(WebUIResourceBrowserTest, MenuButtonTest) { IN_PROC_BROWSER_TEST_F(WebUIResourceBrowserTest, MenuButtonTest) {
...@@ -203,5 +216,5 @@ IN_PROC_BROWSER_TEST_F(WebUIResourceBrowserTest, MenuButtonTest) { ...@@ -203,5 +216,5 @@ IN_PROC_BROWSER_TEST_F(WebUIResourceBrowserTest, MenuButtonTest) {
AddLibrary(IDR_WEBUI_JS_CR_UI_POSITION_UTIL); AddLibrary(IDR_WEBUI_JS_CR_UI_POSITION_UTIL);
AddLibrary(IDR_WEBUI_JS_CR_UI_MENU_BUTTON); AddLibrary(IDR_WEBUI_JS_CR_UI_MENU_BUTTON);
AddLibrary(IDR_WEBUI_JS_CR_UI_MENU); AddLibrary(IDR_WEBUI_JS_CR_UI_MENU);
RunTest(base::FilePath(FILE_PATH_LITERAL("menu_button_test.html"))); LoadFile(base::FilePath(FILE_PATH_LITERAL("menu_button_test.html")));
} }
<?xml version="1.0" encoding="UTF-8"?>
<grit latest_public_release="0" current_release="1">
<outputs>
<output filename="chrome/test/data/grit/webui_test_resources.h" type="rc_header">
<emit emit_type='prepend'></emit>
</output>
<output filename="webui_test_resources.pak" type="data_package" />
</outputs>
<release seq="1">
<includes>
<include name="IDR_WEBUI_TEST_I18N_PROCESS_CSS_TEST" file="webui/i18n_process_css_test.html" flattenhtml="true" allowexternalscript="true" type="BINDATA" />
</includes>
</release>
</grit>
...@@ -135,7 +135,11 @@ ...@@ -135,7 +135,11 @@
}, },
"chrome/browser/resources/options_test_resources.grd": { "chrome/browser/resources/options_test_resources.grd": {
"includes": [23400], "includes": [23400],
"structures": [23450], "structures": [23440],
},
"chrome/test/data/webui_test_resources.grd": {
"includes": [23480],
"structures": [23490],
}, },
"cloud_print/virtual_driver/win/install/virtual_driver_setup_resources.grd": { "cloud_print/virtual_driver/win/install/virtual_driver_setup_resources.grd": {
"messages": [23500], "messages": [23500],
......
...@@ -4,8 +4,8 @@ ...@@ -4,8 +4,8 @@
[i18n-content]::before, [i18n-content]::before,
[i18n-values*=".innerHTML:"]::before, [i18n-values*=".innerHTML:"]::before,
::shadow [i18n-content]::before, * /deep/ [i18n-content]::before,
::shadow [i18n-values*=".innerHTML:"]::before { * /deep/ [i18n-values*=".innerHTML:"]::before {
/* Insert a non-breaking space into nodes that have i18n content. */ /* Insert a non-breaking space into nodes that have i18n content. */
content: '\00a0'; content: '\00a0';
} }
...@@ -14,10 +14,10 @@ ...@@ -14,10 +14,10 @@
[i18n-processed] [i18n-content]::before, [i18n-processed] [i18n-content]::before,
[i18n-processed][i18n-values*=".innerHTML:"]::before, [i18n-processed][i18n-values*=".innerHTML:"]::before,
[i18n-processed] [i18n-values*=".innerHTML:"]::before, [i18n-processed] [i18n-values*=".innerHTML:"]::before,
::shadow [i18n-processed][i18n-content]::before, * /deep/ [i18n-processed][i18n-content]::before,
::shadow [i18n-processed] [i18n-content]::before, * /deep/ [i18n-processed] [i18n-content]::before,
::shadow [i18n-processed][i18n-values*=".innerHTML:"]::before, * /deep/ [i18n-processed][i18n-values*=".innerHTML:"]::before,
::shadow [i18n-processed] [i18n-values*=".innerHTML:"]::before { * /deep/ [i18n-processed] [i18n-values*=".innerHTML:"]::before {
/* Undo the non-breaking space hack after i18n processing has run. */ /* Undo the non-breaking space hack after i18n processing has run. */
content: normal; content: normal;
} }
...@@ -143,8 +143,17 @@ function assertDeepEquals(expected, observed, opt_message) { ...@@ -143,8 +143,17 @@ function assertDeepEquals(expected, observed, opt_message) {
*/ */
function runTests() { function runTests() {
for (var name in window) { for (var name in window) {
if (typeof window[name] == 'function' && /^test/.test(name)) try {
testCases.push(name); if (typeof window[name] == 'function' && /^test/.test(name))
testCases.push(name);
} catch(e) {
if (location.protocol == 'data:' && e.name == 'SecurityError') {
// Sometimes this file gets loaded as a data: URI. That causes issues
// when it touches window.caches or window.cookie.
} else {
throw e;
}
}
} }
if (!testCases.length) { if (!testCases.length) {
console.error('Failed to find test cases.'); console.error('Failed to find test cases.');
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment