Commit 42ca9e7c authored by Oleh Lamzin's avatar Oleh Lamzin Committed by Commit Bot

[Telemetry SWX] compile browser tests with closure

Use closure compiler for browser tests.

Fix compilation error for MessagePipe.sendMessage since it expect object
or undefined.

Bug: b:158566609

Change-Id: I0c3cc042d9fbfd6da801d67ac8d6f27b37ffaa48
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2320593
Commit-Queue: Oleh Lamzin <lamzin@google.com>
Reviewed-by: default avatarGiovanni Ortuño Urquidi <ortuno@chromium.org>
Cr-Commit-Position: refs/heads/master@{#792666}
parent 340b45c8
...@@ -53,7 +53,7 @@ group("closure_compile") { ...@@ -53,7 +53,7 @@ group("closure_compile") {
if (!is_official_build) { if (!is_official_build) {
deps += [ deps += [
"//chromeos/components/sample_system_web_app_ui:closure_compile", "//chromeos/components/sample_system_web_app_ui:closure_compile",
"//chromeos/components/telemetry_extension_ui/resources:closure_compile", "//chromeos/components/telemetry_extension_ui:closure_compile",
] ]
} }
} }
...@@ -49,3 +49,11 @@ source_set("unit_tests") { ...@@ -49,3 +49,11 @@ source_set("unit_tests") {
"//testing/gtest", "//testing/gtest",
] ]
} }
group("closure_compile") {
testonly = true
deps = [
"resources:closure_compile",
"test:closure_compile",
]
}
...@@ -19,37 +19,36 @@ group("closure_compile") { ...@@ -19,37 +19,36 @@ group("closure_compile") {
js_type_check("trusted_closure_compile") { js_type_check("trusted_closure_compile") {
closure_flags = system_app_closure_flags_strict closure_flags = system_app_closure_flags_strict
deps = [ deps = [ ":trusted" ]
":message_types",
":trusted",
]
} }
js_type_check("untrusted_closure_compile") { js_type_check("untrusted_closure_compile") {
closure_flags = system_app_closure_flags_strict closure_flags = system_app_closure_flags_strict
deps = [ deps = [ ":untrusted" ]
":message_types",
":untrusted",
]
} }
js_type_check("untrusted_worker_closure_compile") { js_type_check("untrusted_worker_closure_compile") {
deps = [ ":untrusted_worker" ] deps = [ ":untrusted_worker" ]
} }
js_library("message_types") {
deps = [ "../mojom:mojom_js_library_for_compile" ]
}
js_library("trusted") { js_library("trusted") {
sources = [ "trusted.js" ]
deps = [ deps = [
"../mojom:mojom_js_library_for_compile", ":message_types",
"//chromeos/components/system_apps/public/js:message_pipe", "//chromeos/components/system_apps/public/js:message_pipe",
] ]
} }
js_library("untrusted") { js_library("untrusted") {
deps = [ "//chromeos/components/system_apps/public/js:message_pipe" ] sources = [ "untrusted.js" ]
deps = [
":message_types",
"//chromeos/components/system_apps/public/js:message_pipe",
]
}
js_library("message_types") {
deps = [ "../mojom:mojom_js_library_for_compile" ]
} }
js_library("untrusted_worker") { js_library("untrusted_worker") {
......
...@@ -3,6 +3,7 @@ ...@@ -3,6 +3,7 @@
# found in the LICENSE file. # found in the LICENSE file.
import("//chrome/test/base/js2gtest.gni") import("//chrome/test/base/js2gtest.gni")
import("//chromeos/components/web_applications/system_apps.gni")
import("//third_party/closure_compiler/compile_js.gni") import("//third_party/closure_compiler/compile_js.gni")
assert(is_chromeos, "Telemetry Extension is Chrome OS only") assert(is_chromeos, "Telemetry Extension is Chrome OS only")
...@@ -16,12 +17,7 @@ js2gtest("browser_tests_js") { ...@@ -16,12 +17,7 @@ js2gtest("browser_tests_js") {
defines = [ "HAS_OUT_OF_PROC_TEST_RUNNER" ] defines = [ "HAS_OUT_OF_PROC_TEST_RUNNER" ]
deps = [ deps = [ ":browser_test_support" ]
":browser_test_support",
":trusted_test_requester",
":untrusted_browsertest",
":untrusted_test_handlers",
]
} }
source_set("browser_test_support") { source_set("browser_test_support") {
...@@ -46,11 +42,44 @@ source_set("browser_test_support") { ...@@ -46,11 +42,44 @@ source_set("browser_test_support") {
] ]
} }
js_library("trusted_test_requester") { group("closure_compile") {
testonly = true
deps = [
":trusted_browsertest_closure_compile",
":untrusted_browsertest_closure_compile",
]
} }
js_library("untrusted_browsertest") { js_type_check("trusted_browsertest_closure_compile") {
testonly = true
closure_flags = system_app_closure_flags
deps = [ ":trusted_browsertest" ]
}
js_type_check("untrusted_browsertest_closure_compile") {
testonly = true
closure_flags = system_app_closure_flags
deps = [ ":untrusted_browsertest" ]
}
js_library("trusted_browsertest") {
testonly = true
sources = [
"telemetry_extension_ui_browsertest.js",
"trusted_test_requester.js",
]
deps = [ "//chromeos/components/telemetry_extension_ui/resources:trusted" ]
externs_list =
[ "//chromeos/components/web_applications/js2gtest_support.externs.js" ]
} }
js_library("untrusted_test_handlers") { js_library("untrusted_browsertest") {
testonly = true
sources = [
"untrusted_browsertest.js",
"untrusted_test_handlers.js",
]
deps = [ "//chromeos/components/telemetry_extension_ui/resources:untrusted" ]
externs_list =
[ "//chromeos/components/web_applications/js2gtest_support.externs.js" ]
} }
...@@ -53,8 +53,8 @@ var TelemetryExtensionUIBrowserTest = class extends testing.Test { ...@@ -53,8 +53,8 @@ var TelemetryExtensionUIBrowserTest = class extends testing.Test {
TEST_F('TelemetryExtensionUIBrowserTest', 'HasChromeSchemeURL', () => { TEST_F('TelemetryExtensionUIBrowserTest', 'HasChromeSchemeURL', () => {
const title = document.querySelector('title'); const title = document.querySelector('title');
expectEquals(title.innerText, 'Telemetry Extension'); assertEquals(title.innerText, 'Telemetry Extension');
expectEquals(document.location.origin, HOST_ORIGIN); assertEquals(document.location.origin, HOST_ORIGIN);
testDone(); testDone();
}); });
...@@ -62,7 +62,7 @@ TEST_F('TelemetryExtensionUIBrowserTest', 'HasChromeSchemeURL', () => { ...@@ -62,7 +62,7 @@ TEST_F('TelemetryExtensionUIBrowserTest', 'HasChromeSchemeURL', () => {
// chrome-untrusted:// iframe. // chrome-untrusted:// iframe.
TEST_F('TelemetryExtensionUIBrowserTest', 'HasChromeUntrustedIframe', () => { TEST_F('TelemetryExtensionUIBrowserTest', 'HasChromeUntrustedIframe', () => {
const iframe = document.querySelector('iframe'); const iframe = document.querySelector('iframe');
expectTrue(iframe !== null); assertNotEquals(iframe, null);
testDone(); testDone();
}); });
...@@ -71,13 +71,13 @@ TEST_F('TelemetryExtensionUIBrowserTest', 'HasChromeUntrustedIframe', () => { ...@@ -71,13 +71,13 @@ TEST_F('TelemetryExtensionUIBrowserTest', 'HasChromeUntrustedIframe', () => {
TEST_F( TEST_F(
'TelemetryExtensionUIBrowserTest', 'UntrustedCanSpawnWorkers', async () => { 'TelemetryExtensionUIBrowserTest', 'UntrustedCanSpawnWorkers', async () => {
expectTrue(await runTestInUntrusted('UntrustedCanSpawnWorkers')); await runTestInUntrusted('UntrustedCanSpawnWorkers');
testDone(); testDone();
}); });
TEST_F( TEST_F(
'TelemetryExtensionUIBrowserTest', 'UntrustedRequestTelemetryInfo', 'TelemetryExtensionUIBrowserTest', 'UntrustedRequestTelemetryInfo',
async () => { async () => {
expectTrue(await runTestInUntrusted('UntrustedRequestTelemetryInfo')); await runTestInUntrusted('UntrustedRequestTelemetryInfo');
testDone(); testDone();
}); });
...@@ -5,13 +5,7 @@ ...@@ -5,13 +5,7 @@
/** /**
* Runs the given test in the untrusted context. * Runs the given test in the untrusted context.
* @param {string} testName * @param {string} testName
* @return {boolean|error}
*/ */
async function runTestInUntrusted(testName) { async function runTestInUntrusted(testName) {
try { await untrustedMessagePipe.sendMessage('run-test-case', {testName});
await untrustedMessagePipe.sendMessage('run-test-case', testName);
return true;
} catch (err) {
return err;
}
} }
...@@ -38,9 +38,6 @@ UNTRUSTED_TEST('UntrustedCanSpawnWorkers', async () => { ...@@ -38,9 +38,6 @@ UNTRUSTED_TEST('UntrustedCanSpawnWorkers', async () => {
const data = /** @type {string} */ (event.data); const data = /** @type {string} */ (event.data);
resolve(data); resolve(data);
}; };
worker.onmessageerror = (event) => {
reject(`Error receiving message from worker: ${event}`);
};
worker.onerror = function() { worker.onerror = function() {
reject('There is an error with your worker'); reject('There is an error with your worker');
}; };
......
...@@ -32,8 +32,9 @@ function UNTRUSTED_TEST(testName, testCase) { ...@@ -32,8 +32,9 @@ function UNTRUSTED_TEST(testName, testCase) {
} }
function registerTestHandlers() { function registerTestHandlers() {
parentMessagePipe.registerHandler('run-test-case', (testName) => { parentMessagePipe.registerHandler('run-test-case', (message) => {
return runTestCase(/** @type {string} */ (testName)); const {testName} = /** @type {{testName: !string}} */ (message);
return runTestCase(testName);
}); });
} }
......
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