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