Commit cf2ccbdd authored by Luciano Pacheco's avatar Luciano Pacheco Committed by Commit Bot

WebUI: Add type check and other nits to some cr.ui.* unittest

Nits addressed:
- Add type check.
- Remove "#export" markup.
- Use Object.assign() to export test functions to global scope.

Files updated:
- command_test.m.js
- event_target_test.m.js
- cr_test.m.js (removed as it's redundant with
  //test/data/webui/js/cr_test.js)

Bug: 1133198
Change-Id: I808675afb4419a97252fe355ed7f7b2c6f0705fd
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2505700
Commit-Queue: Luciano Pacheco <lucmult@chromium.org>
Reviewed-by: default avatardpapad <dpapad@chromium.org>
Auto-Submit: Luciano Pacheco <lucmult@chromium.org>
Cr-Commit-Position: refs/heads/master@{#822136}
parent 41e31377
...@@ -465,7 +465,6 @@ group("modulize") { ...@@ -465,7 +465,6 @@ group("modulize") {
js_modulizer("modulize_local") { js_modulizer("modulize_local") {
input_files = [ input_files = [
"cr_focus_row_behavior_test.js", "cr_focus_row_behavior_test.js",
"cr_test.js",
"fake_chrome_event.js", "fake_chrome_event.js",
"mock_controller.js", "mock_controller.js",
"mock_timer.js", "mock_timer.js",
...@@ -483,7 +482,7 @@ group("closure_compile") { ...@@ -483,7 +482,7 @@ group("closure_compile") {
"cr_components:closure_compile", "cr_components:closure_compile",
"cr_elements:closure_compile", "cr_elements:closure_compile",
"inline_login:closure_compile", "inline_login:closure_compile",
"js/cr/ui:closure_compile", "js/cr:closure_compile",
"new_tab_page:closure_compile", "new_tab_page:closure_compile",
"print_preview:closure_compile", "print_preview:closure_compile",
"read_later:closure_compile", "read_later:closure_compile",
......
...@@ -2,12 +2,10 @@ ...@@ -2,12 +2,10 @@
// Use of this source code is governed by a BSD-style license that can be // Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file. // found in the LICENSE file.
// #import {addSingletonGetter} from 'chrome://resources/js/cr.m.js'; var EventTarget;
/* #ignore */ var EventTarget;
function setUp() { function setUp() {
/* #ignore */ EventTarget = cr.EventTarget; EventTarget = cr.EventTarget;
} }
function testDefineProperty() { function testDefineProperty() {
...@@ -129,6 +127,7 @@ function testDefinePropertyAttrWithSetter() { ...@@ -129,6 +127,7 @@ function testDefinePropertyAttrWithSetter() {
var obj = document.createElement('div'); var obj = document.createElement('div');
var hit = false; var hit = false;
function onTestSet(value, oldValue) { function onTestSet(value, oldValue) {
assertEquals(obj, this); assertEquals(obj, this);
assertEquals(null, oldValue); assertEquals(null, oldValue);
...@@ -208,6 +207,7 @@ function testDefinePropertyBoolAttrEvent() { ...@@ -208,6 +207,7 @@ function testDefinePropertyBoolAttrEvent() {
function testDefinePropertyBoolAttrEventWithHook() { function testDefinePropertyBoolAttrEventWithHook() {
var obj = document.createElement('div'); var obj = document.createElement('div');
var hit = false; var hit = false;
function onTestSet(value, oldValue) { function onTestSet(value, oldValue) {
assertEquals(obj, this); assertEquals(obj, this);
assertTrue(this.test); assertTrue(this.test);
...@@ -220,7 +220,7 @@ function testDefinePropertyBoolAttrEventWithHook() { ...@@ -220,7 +220,7 @@ function testDefinePropertyBoolAttrEventWithHook() {
assertTrue(hit); assertTrue(hit);
} }
/* #export */ function testAddSingletonGetter() { function testAddSingletonGetter() {
function Foo() {} function Foo() {}
cr.addSingletonGetter(Foo); cr.addSingletonGetter(Foo);
...@@ -244,7 +244,7 @@ function testDefinePropertyBoolAttrEventWithHook() { ...@@ -244,7 +244,7 @@ function testDefinePropertyBoolAttrEventWithHook() {
x, z, 'Should return a different object after clearing for testing'); x, z, 'Should return a different object after clearing for testing');
} }
/* #export */ function testDefineWithGetter() { function testDefineWithGetter() {
var v = 0; var v = 0;
cr.define('foo', function() { cr.define('foo', function() {
return { return {
...@@ -259,6 +259,3 @@ function testDefinePropertyBoolAttrEventWithHook() { ...@@ -259,6 +259,3 @@ function testDefinePropertyBoolAttrEventWithHook() {
v = 1; v = 1;
assertEquals(1, foo.v); assertEquals(1, foo.v);
} }
window.setUp = setUp;
window.testAddSingletonGetter = testAddSingletonGetter;
...@@ -12,6 +12,29 @@ group("modulize") { ...@@ -12,6 +12,29 @@ group("modulize") {
] ]
} }
group("closure_compile") {
deps = [
":closure_compile_local",
"ui:closure_compile",
]
}
js_modulizer("modulize_local") { js_modulizer("modulize_local") {
input_files = [ "event_target_test.js" ] input_files = [ "event_target_test.js" ]
} }
js_library("event_target_test.m") {
sources =
[ "$root_gen_dir/chrome/test/data/webui/js/cr/event_target_test.m.js" ]
deps = [
"../..:chai_assert",
"//ui/webui/resources/js/cr:event_target.m",
]
extra_deps = [ ":modulize_local" ]
}
js_type_check("closure_compile_local") {
uses_js_modules = true
deps = [ ":event_target_test.m" ]
}
...@@ -3,16 +3,17 @@ ...@@ -3,16 +3,17 @@
// found in the LICENSE file. // found in the LICENSE file.
// clang-format off // clang-format off
// #import {assertEquals, assertTrue, assertFalse} from '../../../chai_assert.js';
// #import {NativeEventTarget as EventTarget} from 'chrome://resources/js/cr/event_target.m.js'; // #import {NativeEventTarget as EventTarget} from 'chrome://resources/js/cr/event_target.m.js';
// clang-format on // clang-format on
/* #ignore */ /* @const */ var EventTarget; /* #ignore */ /* @const */ var EventTarget;
/* #export */ function setUp() { function setUp() {
/* #ignore */ EventTarget = cr.EventTarget; /* #ignore */ EventTarget = cr.EventTarget;
} }
/* #export */ function testFunctionListener() { function testFunctionListener() {
var fi = 0; var fi = 0;
function f(e) { function f(e) {
fi++; fi++;
...@@ -41,20 +42,20 @@ ...@@ -41,20 +42,20 @@
assertEquals(1, gi, 'Should have been called once'); assertEquals(1, gi, 'Should have been called once');
} }
/* #export */ function testHandleEvent() { function testHandleEvent() {
var fi = 0; var fi = 0;
var f = { var f = /** @type {!EventListener} */ ({
handleEvent: function(e) { handleEvent: function(e) {
fi++; fi++;
} }
}; });
var gi = 0; var gi = 0;
var g = { var g = /** @type {!EventListener} */ ({
handleEvent: function(e) { handleEvent: function(e) {
gi++; gi++;
} }
}; });
var et = new EventTarget; var et = new EventTarget;
et.addEventListener('f', f); et.addEventListener('f', f);
...@@ -74,7 +75,7 @@ ...@@ -74,7 +75,7 @@
assertEquals(1, gi, 'Should have been called once'); assertEquals(1, gi, 'Should have been called once');
} }
/* #export */ function testPreventDefault() { function testPreventDefault() {
var i = 0; var i = 0;
function prevent(e) { function prevent(e) {
i++; i++;
...@@ -100,7 +101,9 @@ ...@@ -100,7 +101,9 @@
assertEquals(1, i); assertEquals(1, i);
} }
window.setUp = setUp; Object.assign(window, {
window.testFunctionListener = testFunctionListener; setUp,
window.testHandleEvent = testHandleEvent; testFunctionListener,
window.testPreventDefault = testPreventDefault; testHandleEvent,
testPreventDefault,
});
...@@ -33,11 +33,23 @@ js_library("array_data_model_test.m") { ...@@ -33,11 +33,23 @@ js_library("array_data_model_test.m") {
extra_deps = [ ":modulize" ] extra_deps = [ ":modulize" ]
} }
js_library("command_test.m") {
sources =
[ "$root_gen_dir/chrome/test/data/webui/js/cr/ui/command_test.m.js" ]
deps = [
"../../..:chai_assert",
"//ui/webui/resources/js/cr:ui.m",
"//ui/webui/resources/js/cr/ui:command.m",
]
extra_deps = [ ":modulize" ]
}
js_type_check("closure_compile") { js_type_check("closure_compile") {
uses_js_modules = true uses_js_modules = true
deps = [ deps = [
":array_data_model_test.m", ":array_data_model_test.m",
":command_test.m",
"../../..:chai_assert", "../../..:chai_assert",
] ]
} }
...@@ -2,16 +2,19 @@ ...@@ -2,16 +2,19 @@
// Use of this source code is governed by a BSD-style license that can be // Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file. // found in the LICENSE file.
// clang-format off
// #import {assertEquals, assertTrue, assertFalse} from '../../../chai_assert.js';
// #import {Command} from 'chrome://resources/js/cr/ui/command.m.js'; // #import {Command} from 'chrome://resources/js/cr/ui/command.m.js';
// #import {decorate} from 'chrome://resources/js/cr/ui.m.js'; // #import {decorate} from 'chrome://resources/js/cr/ui.m.js';
// clang-format on
/* #export */ function setUp() { function setUp() {
const cmd = document.createElement('command'); const cmd = document.createElement('command');
cmd.setAttribute('shortcut', 'n|Ctrl'); cmd.setAttribute('shortcut', 'n|Ctrl');
document.body.appendChild(cmd); document.body.appendChild(cmd);
} }
/* #export */ function testCommandDefaultPrevented() { function testCommandDefaultPrevented() {
var calls = 0; var calls = 0;
document.addEventListener('canExecute', function(e) { document.addEventListener('canExecute', function(e) {
++calls; ++calls;
...@@ -21,7 +24,8 @@ ...@@ -21,7 +24,8 @@
}); });
cr.ui.decorate('command', cr.ui.Command); cr.ui.decorate('command', cr.ui.Command);
document.querySelector('command').canExecuteChange(); /** @type {!cr.ui.Command} */ (document.querySelector('command'))
.canExecuteChange();
assertEquals(1, calls); assertEquals(1, calls);
} }
...@@ -37,9 +41,9 @@ function createEvent(key, code, keyCode) { ...@@ -37,9 +41,9 @@ function createEvent(key, code, keyCode) {
}; };
} }
/* #export */ function testShortcuts() { function testShortcuts() {
cr.ui.decorate('command', cr.ui.Command); cr.ui.decorate('command', cr.ui.Command);
const cmd = document.querySelector('command'); const cmd = /** @type {!cr.ui.Command} */ (document.querySelector('command'));
// US keyboard - qwerty-N should work. // US keyboard - qwerty-N should work.
assertTrue(cmd.matchesEvent(createEvent('n', 'KeyN', 0x4e))); assertTrue(cmd.matchesEvent(createEvent('n', 'KeyN', 0x4e)));
// DV keyboard - qwerty-L (dvorak-N) should work. // DV keyboard - qwerty-L (dvorak-N) should work.
...@@ -50,6 +54,8 @@ function createEvent(key, code, keyCode) { ...@@ -50,6 +54,8 @@ function createEvent(key, code, keyCode) {
assertTrue(cmd.matchesEvent(createEvent('т', 'KeyN', 0x4e))); assertTrue(cmd.matchesEvent(createEvent('т', 'KeyN', 0x4e)));
} }
window.setUp = setUp; Object.assign(window, {
window.testCommandDefaultPrevented = testCommandDefaultPrevented; setUp,
window.testShortcuts = testShortcuts; testCommandDefaultPrevented,
testShortcuts,
});
...@@ -61,10 +61,6 @@ IN_PROC_BROWSER_TEST_F(WebUIResourceBrowserTest, CrTest) { ...@@ -61,10 +61,6 @@ IN_PROC_BROWSER_TEST_F(WebUIResourceBrowserTest, CrTest) {
LoadTestUrl("cr_test.html"); LoadTestUrl("cr_test.html");
} }
IN_PROC_BROWSER_TEST_F(WebUIResourceBrowserTest, CrModuleTest) {
LoadTestUrl("?module=cr_test.m.js");
}
IN_PROC_BROWSER_TEST_F(WebUIResourceBrowserTest, CrReloadTest) { IN_PROC_BROWSER_TEST_F(WebUIResourceBrowserTest, CrReloadTest) {
LoadTestUrl("cr_reload_test.html"); LoadTestUrl("cr_reload_test.html");
} }
......
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