Commit 341dd8c1 authored by Joon Ahn's avatar Joon Ahn Committed by Commit Bot

Diagnostics: Enable closure compiler

Bug: 1125150
Test: browser_tests --gtest_filter=DiagnosticsApp* && autoninja
Change-Id: I3c3438545ebd4209da697aa36fe6cf8ede6448a6
webui: closure_compile
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2511255
Commit-Queue: Joon Ahn <joonbug@chromium.org>
Reviewed-by: default avatarZentaro Kavanagh <zentaro@chromium.org>
Cr-Commit-Position: refs/heads/master@{#824194}
parent 1bf57a56
......@@ -23,6 +23,7 @@ group("closure_compile") {
if (is_chromeos) {
public_deps += [
"account_manager:closure_compile",
"diagnostics:closure_compile",
"gaia_action_buttons:closure_compile",
"scanning:closure_compile",
]
......
# Copyright 2020 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("//third_party/closure_compiler/compile_js.gni")
js_type_check("closure_compile") {
is_polymer3 = true
closure_flags = default_closure_args + [
"browser_resolver_prefix_replacements=\"chrome://diagnostics/=../../chromeos/components/diagnostics_ui/resources/\"",
"js_module_root=../../chrome/test/data/webui/",
"js_module_root=./gen/chrome/test/data/webui/",
]
deps = [
":battery_status_card_test",
":cpu_card_test",
":data_point_test",
":diagnostics_app_test",
":diagnostics_app_unified_test",
":diagnostics_test_utils",
":fake_method_provider_test",
":fake_observables_test",
":fake_system_data_provider_test",
":fake_system_routine_controller_test",
":memory_card_test",
":mojo_interface_provider_test",
":overview_card_test",
":percent_bar_chart_test",
":realtime_cpu_chart_test",
":routine_list_executor_test",
":routine_result_entry_test",
":routine_result_list_test",
":routine_section_test",
]
}
js_library("battery_status_card_test") {
deps = [
"../..:chai_assert",
"../..:test_util.m",
"//chromeos/components/diagnostics_ui/resources:battery_status_card",
"//chromeos/components/diagnostics_ui/resources:diagnostics_types",
"//chromeos/components/diagnostics_ui/resources:fake_data",
]
externs_list = [ "$externs_path/mocha-2.5.js" ]
}
js_library("cpu_card_test") {
deps = [
"../..:chai_assert",
"../..:test_util.m",
"//chromeos/components/diagnostics_ui/resources:cpu_card",
"//chromeos/components/diagnostics_ui/resources:diagnostics_types",
"//chromeos/components/diagnostics_ui/resources:routine_section",
]
externs_list = [ "$externs_path/mocha-2.5.js" ]
}
js_library("data_point_test") {
deps = [
"../..:chai_assert",
"../..:test_util.m",
"//chromeos/components/diagnostics_ui/resources:data_point",
]
externs_list = [ "$externs_path/mocha-2.5.js" ]
}
js_library("diagnostics_app_test") {
deps = [
"../..:chai_assert",
"../..:test_util.m",
"//chromeos/components/diagnostics_ui/resources:diagnostics_app",
"//chromeos/components/diagnostics_ui/resources:diagnostics_types",
"//chromeos/components/diagnostics_ui/resources:fake_data",
"//chromeos/components/diagnostics_ui/resources:fake_method_resolver",
"//chromeos/components/diagnostics_ui/resources:fake_observables",
"//chromeos/components/diagnostics_ui/resources:fake_system_data_provider",
]
externs_list = [ "$externs_path/mocha-2.5.js" ]
}
js_library("diagnostics_app_unified_test") {
deps = []
externs_list = [ "$externs_path/mocha-2.5.js" ]
}
js_library("diagnostics_test_utils") {
deps = [
"../..:chai_assert",
"//chromeos/components/diagnostics_ui/resources:battery_status_card",
"//chromeos/components/diagnostics_ui/resources:cpu_card",
"//chromeos/components/diagnostics_ui/resources:data_point",
"//chromeos/components/diagnostics_ui/resources:memory_card",
"//chromeos/components/diagnostics_ui/resources:percent_bar_chart",
"//chromeos/components/diagnostics_ui/resources:realtime_cpu_chart",
"//chromeos/components/diagnostics_ui/resources:routine_result_entry",
"//chromeos/components/diagnostics_ui/resources:routine_result_list",
"//chromeos/components/diagnostics_ui/resources:routine_section",
"//ui/webui/resources/cr_elements/cr_button:cr_button.m",
]
}
js_library("fake_method_provider_test") {
deps = [
"../..:chai_assert",
"//chromeos/components/diagnostics_ui/resources:fake_method_resolver",
]
}
js_library("fake_observables_test") {
deps = [
"../..:chai_assert",
"//chromeos/components/diagnostics_ui/resources:fake_observables",
]
}
js_library("fake_system_data_provider_test") {
deps = [
"../..:chai_assert",
"//chromeos/components/diagnostics_ui/resources:diagnostics_types",
"//chromeos/components/diagnostics_ui/resources:fake_data",
"//chromeos/components/diagnostics_ui/resources:fake_system_data_provider",
]
}
js_library("fake_system_routine_controller_test") {
deps = [
"../..:chai_assert",
"//chromeos/components/diagnostics_ui/resources:diagnostics_types",
"//chromeos/components/diagnostics_ui/resources:fake_system_routine_controller",
]
}
js_library("memory_card_test") {
deps = [
"../..:chai_assert",
"../..:test_util.m",
"//chromeos/components/diagnostics_ui/resources:diagnostics_types",
"//chromeos/components/diagnostics_ui/resources:fake_data",
"//chromeos/components/diagnostics_ui/resources:fake_system_data_provider",
"//chromeos/components/diagnostics_ui/resources:memory_card",
"//ui/webui/resources/cr_elements/cr_button:cr_button.m",
]
}
js_library("mojo_interface_provider_test") {
deps = [
"../..:chai_assert",
"//chromeos/components/diagnostics_ui/resources:diagnostics_types",
"//chromeos/components/diagnostics_ui/resources:fake_system_routine_controller",
"//chromeos/components/diagnostics_ui/resources:mojo_interface_provider",
]
}
js_library("overview_card_test") {
deps = [
"../..:chai_assert",
"../..:test_util.m",
"//chromeos/components/diagnostics_ui/resources:diagnostics_types",
"//chromeos/components/diagnostics_ui/resources:fake_data",
"//chromeos/components/diagnostics_ui/resources:fake_system_data_provider",
"//chromeos/components/diagnostics_ui/resources:overview_card",
]
}
js_library("percent_bar_chart_test") {
deps = [
":diagnostics_test_utils",
"../..:chai_assert",
"../..:test_util.m",
"//chromeos/components/diagnostics_ui/resources:percent_bar_chart",
]
}
js_library("realtime_cpu_chart_test") {
deps = [
":diagnostics_test_utils",
"../..:chai_assert",
"../..:test_util.m",
"//chromeos/components/diagnostics_ui/resources:realtime_cpu_chart",
]
}
js_library("routine_list_executor_test") {
deps = [
"../..:chai_assert",
"../..:test_util.m",
"//chromeos/components/diagnostics_ui/resources:diagnostics_types",
"//chromeos/components/diagnostics_ui/resources:fake_system_routine_controller",
"//chromeos/components/diagnostics_ui/resources:routine_list_executor",
]
}
js_library("routine_result_entry_test") {
deps = [
"../..:chai_assert",
"../..:test_util.m",
"//chromeos/components/diagnostics_ui/resources:diagnostics_types",
"//chromeos/components/diagnostics_ui/resources:fake_system_routine_controller",
"//chromeos/components/diagnostics_ui/resources:routine_list_executor",
"//chromeos/components/diagnostics_ui/resources:routine_result_entry",
]
}
js_library("routine_result_list_test") {
deps = [
":diagnostics_test_utils",
"../..:chai_assert",
"../..:test_util.m",
"//chromeos/components/diagnostics_ui/resources:diagnostics_types",
"//chromeos/components/diagnostics_ui/resources:fake_system_routine_controller",
"//chromeos/components/diagnostics_ui/resources:routine_list_executor",
"//chromeos/components/diagnostics_ui/resources:routine_result_entry",
"//chromeos/components/diagnostics_ui/resources:routine_result_list",
]
}
js_library("routine_section_test") {
deps = [
":diagnostics_test_utils",
"../..:chai_assert",
"../..:test_util.m",
"//chromeos/components/diagnostics_ui/resources:diagnostics_types",
"//chromeos/components/diagnostics_ui/resources:fake_system_routine_controller",
"//chromeos/components/diagnostics_ui/resources:mojo_interface_provider",
"//chromeos/components/diagnostics_ui/resources:routine_list_executor",
"//chromeos/components/diagnostics_ui/resources:routine_list_executor",
"//chromeos/components/diagnostics_ui/resources:routine_result_entry",
"//chromeos/components/diagnostics_ui/resources:routine_section",
"//ui/webui/resources/cr_elements/cr_button:cr_button.m",
]
}
......@@ -4,14 +4,18 @@
import 'chrome://diagnostics/battery_status_card.js';
import {BatteryChargeStatus, BatteryHealth, BatteryInfo, SystemDataProviderInterface} from 'chrome://diagnostics/diagnostics_types.js';
import {fakeBatteryChargeStatus, fakeBatteryHealth, fakeBatteryInfo} from 'chrome://diagnostics/fake_data.js';
import {FakeSystemDataProvider} from 'chrome://diagnostics/fake_system_data_provider.js';
import {getSystemDataProvider, setSystemDataProviderForTesting} from 'chrome://diagnostics/mojo_interface_provider.js';
import {flushTasks} from 'chrome://test/test_util.m.js';
import {assertEquals, assertFalse, assertTrue} from '../../chai_assert.js';
import {flushTasks} from '../../test_util.m.js';
import * as dx_utils from './diagnostics_test_utils.js';
export function batteryStatusCardTestSuite() {
/** @type {?HTMLElement} */
/** @type {?BatteryStatusCardElement} */
let batteryStatusElement = null;
/** @type {?FakeSystemDataProvider} */
......@@ -23,7 +27,7 @@ export function batteryStatusCardTestSuite() {
});
setup(() => {
PolymerTest.clearBody();
document.body.innerHTML = '';
});
teardown(() => {
......@@ -31,13 +35,14 @@ export function batteryStatusCardTestSuite() {
batteryStatusElement.remove();
}
batteryStatusElement = null;
provider.reset();
});
/**
* @param {!BatteryInfo} batteryInfo
* @param {!BatteryChargeStatus} batteryChargeStatus
* @param {!BatteryHealth} batteryHealth
* @param {!Array<!BatteryChargeStatus>} batteryChargeStatus
* @param {!Array<!BatteryHealth>} batteryHealth
* @return {!Promise}
*/
function initializeBatteryStatusCard(
......@@ -50,7 +55,8 @@ export function batteryStatusCardTestSuite() {
provider.setFakeBatteryInfo(batteryInfo);
// Add the battery status card to the DOM.
batteryStatusElement = document.createElement('battery-status-card');
batteryStatusElement = /** @type {!BatteryStatusCardElement} */ (
document.createElement('battery-status-card'));
assertTrue(!!batteryStatusElement);
document.body.appendChild(batteryStatusElement);
......
......@@ -4,14 +4,18 @@
import 'chrome://diagnostics/cpu_card.js';
import {CpuUsage, RoutineName, SystemDataProviderInterface} from 'chrome://diagnostics/diagnostics_types.js';
import {fakeCpuUsage} from 'chrome://diagnostics/fake_data.js';
import {FakeSystemDataProvider} from 'chrome://diagnostics/fake_system_data_provider.js';
import {getSystemDataProvider, setSystemDataProviderForTesting} from 'chrome://diagnostics/mojo_interface_provider.js';
import {flushTasks} from 'chrome://test/test_util.m.js';
import {assertEquals, assertFalse, assertTrue} from '../../chai_assert.js';
import {flushTasks} from '../../test_util.m.js';
import * as dx_utils from './diagnostics_test_utils.js';
export function cpuCardTestSuite() {
/** @type {?HTMLElement} */
/** @type {?CpuCardElement} */
let cpuElement = null;
/** @type {?FakeSystemDataProvider} */
......@@ -23,7 +27,7 @@ export function cpuCardTestSuite() {
});
setup(() => {
PolymerTest.clearBody();
document.body.innerHTML = '';
});
teardown(() => {
......@@ -35,7 +39,7 @@ export function cpuCardTestSuite() {
});
/**
* @param {!CpuUsage} cpuUsage
* @param {!Array<!CpuUsage>} cpuUsage
* @return {!Promise}
*/
function initializeCpuCard(cpuUsage) {
......@@ -45,7 +49,8 @@ export function cpuCardTestSuite() {
provider.setFakeCpuUsage(cpuUsage);
// Add the CPU card to the DOM.
cpuElement = document.createElement('cpu-card');
cpuElement =
/** @type {!CpuCardElement} */ (document.createElement('cpu-card'));
assertTrue(!!cpuElement);
document.body.appendChild(cpuElement);
......@@ -54,17 +59,19 @@ export function cpuCardTestSuite() {
/**
* Returns the routine-section from the card.
* @return {!RoutineSection}
* @return {!RoutineSectionElement}
*/
function getRoutineSection() {
const routineSection = cpuElement.$$('routine-section');
const routineSection =
/** @type {!RoutineSectionElement} */ (
cpuElement.$$('routine-section'));
assertTrue(!!routineSection);
return routineSection;
}
/**
* Returns the Run Tests button from inside the routine-section.
* @return {!CrButton}
* @return {!HTMLElement}
*/
function getRunTestsButton() {
const button = dx_utils.getRunTestsButtonFromSection(getRoutineSection());
......@@ -74,7 +81,7 @@ export function cpuCardTestSuite() {
/**
* Returns whether the run tests button is disabled.
* @return {bool}
* @return {boolean}
*/
function isRunTestsButtonDisabled() {
return getRunTestsButton().disabled;
......
......@@ -4,14 +4,15 @@
import 'chrome://diagnostics/data_point.js';
import {flushTasks} from 'chrome://test/test_util.m.js';
import {assertEquals, assertFalse, assertTrue} from '../../chai_assert.js';
import {flushTasks} from '../../test_util.m.js';
export function dataPointTestSuite() {
/** @type {?HTMLElement} */
/** @type {?DataPointElement} */
let dataPointElement = null;
setup(() => {
PolymerTest.clearBody();
document.body.innerHTML = '';
});
teardown(() => {
......@@ -29,7 +30,8 @@ export function dataPointTestSuite() {
assertFalse(!!dataPointElement);
// Add the data point to the DOM.
dataPointElement = document.createElement('data-point');
dataPointElement =
/** @type {!DataPointElement} */ (document.createElement('data-point'));
assertTrue(!!dataPointElement);
dataPointElement.header = header;
dataPointElement.value = value;
......
......@@ -4,13 +4,16 @@
import 'chrome://diagnostics/diagnostics_app.js';
import {BatteryChargeStatus, BatteryHealth, BatteryInfo, CpuUsage, MemoryUsage, SystemInfo} from 'chrome://diagnostics/diagnostics_types.js';
import {fakeBatteryChargeStatus, fakeBatteryHealth, fakeBatteryInfo, fakeCpuUsage, fakeMemoryUsage, fakeSystemInfo, fakeSystemInfoWithoutBattery} from 'chrome://diagnostics/fake_data.js';
import {FakeSystemDataProvider} from 'chrome://diagnostics/fake_system_data_provider.js';
import {setSystemDataProviderForTesting} from 'chrome://diagnostics/mojo_interface_provider.js';
import {flushTasks} from 'chrome://test/test_util.m.js';
import {assertEquals, assertFalse, assertTrue} from '../../chai_assert.js';
import {flushTasks} from '../../test_util.m.js';
export function appTestSuite() {
/** @type {?DiagnosticsApp} */
/** @type {?DiagnosticsAppElement} */
let page = null;
/** @type {?FakeSystemDataProvider} */
......@@ -22,7 +25,7 @@ export function appTestSuite() {
});
setup(() => {
PolymerTest.clearBody();
document.body.innerHTML = '';
});
teardown(() => {
......@@ -36,11 +39,11 @@ export function appTestSuite() {
/**
*
* @param {!SystemInfo} systemInfo
* @param {!BatteryChargeStatus} batteryChargeStatus
* @param {!BatteryHealth} batteryHealth
* @param {!Array<!BatteryChargeStatus>} batteryChargeStatus
* @param {!Array<!BatteryHealth>} batteryHealth
* @param {!BatteryInfo} batteryInfo
* @param {!CpuUsage} cpuUsage
* @param {!MemoryUsage} memoryUsage
* @param {!Array<!CpuUsage>} cpuUsage
* @param {!Array<!MemoryUsage>} memoryUsage
*/
function initializeDiagnosticsApp(
systemInfo, batteryChargeStatus, batteryHealth, batteryInfo, cpuUsage,
......@@ -55,7 +58,8 @@ export function appTestSuite() {
provider.setFakeCpuUsage(cpuUsage);
provider.setFakeMemoryUsage(memoryUsage);
page = document.createElement('diagnostics-app');
page = /** @type {!DiagnosticsAppElement} */ (
document.createElement('diagnostics-app'));
assertTrue(!!page);
document.body.appendChild(page);
return flushTasks();
......
......@@ -26,7 +26,7 @@ import {routineSectionTestSuite} from './routine_section_test.js';
window.test_suites_list = [];
function runSuite(suiteName, testFn) {
test_suites_list.push(suiteName);
window.test_suites_list.push(suiteName);
suite(suiteName, testFn);
}
......
......@@ -2,60 +2,69 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
import {assertTrue} from '../../chai_assert.js';
/**
* Helper function for getting an array of data-point elements from a
* diagnostics card.
* @param {!HTMLElement} element
* @return {!Array<!HTMLElement>}
* @param {T} element
* @template T
* @return {!NodeList<!DataPointElement>}
*/
export function getDataPointElements(element) {
return element.shadowRoot.querySelectorAll('data-point');
return /** @type {!NodeList<!DataPointElement>} */ (
element.shadowRoot.querySelectorAll('data-point'));
}
/**
* Helper function for getting a percent-bar-chart element from a
* diagnostics card.
* @param {!HTMLElement} element
* @return {!Array<!HTMLElement>}
* @param {T} element
* @template T
* @return {!PercentBarChartElement}
*/
export function getPercentBarChartElement(element) {
return element.shadowRoot.querySelector('percent-bar-chart');
return /** @type {!PercentBarChartElement} */ (
element.shadowRoot.querySelector('percent-bar-chart'));
}
/**
* Helper function for getting a realtime-cpu-chart element from a
* diagnostics card.
* @param {!HTMLElement} element
* @return {!Array<!HTMLElement>}
* @param {CpuCardElement} element
* @return {!RealtimeCpuChartElement}
*/
export function getRealtimeCpuChartElement(element) {
return element.shadowRoot.querySelector('realtime-cpu-chart');
return /** @type {!RealtimeCpuChartElement} */ (
element.shadowRoot.querySelector('realtime-cpu-chart'));
}
/**
* Helper function for getting an array of routine-result-entry
* element from a routine-result-list.
* @param {!HTMLElement} element
* @return {!Array<!HTMLElement>}
* @param {RoutineResultListElement} element
* @return {!NodeList<!RoutineResultEntryElement>}
*/
export function getResultEntries(element) {
return element.shadowRoot.querySelectorAll('routine-result-entry');
return /** @type {!NodeList<!RoutineResultEntryElement>} */ (
element.shadowRoot.querySelectorAll('routine-result-entry'));
}
/**
* Helper function for getting the routine-result-list from an element.
* @param {!HTMLElement} element
* @return {!HTMLElement}
* @param {RoutineSectionElement} element
* @return {!RoutineResultListElement}
*/
export function getResultList(element) {
return element.shadowRoot.querySelector('routine-result-list');
return /** @type {!RoutineResultListElement} */ (
element.shadowRoot.querySelector('routine-result-list'));
}
/**
* Helper function for getting an array of routine-result-entry
* element from a routine-section.
* @param {!HTMLElement} element
* @return {!Array<!HTMLElement>}
* @param {RoutineSectionElement} element
* @return {!NodeList<!RoutineResultEntryElement>}
*/
export function getResultEntriesFromSection(element) {
return getResultEntries(getResultList(element));
......@@ -63,21 +72,22 @@ export function getResultEntriesFromSection(element) {
/**
* Helper function for getting the Run Tests button from a routine-section.
* @param {!HTMLElement} element
* @return {!Array<!HTMLElement>}
* @param {RoutineSectionElement} element
* @return {!CrButtonElement}
*/
export function getRunTestsButtonFromSection(element) {
const button = element.$$('#runTestsButton');
const button =
/** @type {!CrButtonElement} */ (element.$$('#runTestsButton'));
assertTrue(!!button);
return button;
}
/**
* Helper function to check if a substring exists in an element.
* @param {!HTMLElement} element
* @param {string} substring to check
* @param {Element} element
* @param {string} text substring to check
* @throws {Error}
*/
export function assertElementContainsText(element, text) {
assertTrue(element.textContent.trim().indexOf(text) !== -1);
}
}
\ No newline at end of file
......@@ -4,6 +4,8 @@
import {FakeMethodResolver} from 'chrome://diagnostics/fake_method_resolver.js';
import {assertEquals} from '../../chai_assert.js';
export function fakeMethodResolverTestSuite() {
/** @type {?FakeMethodResolver} */
let resolver = null;
......
......@@ -5,6 +5,8 @@
import {FakeObservables} from 'chrome://diagnostics/fake_observables.js';
import {PromiseResolver} from 'chrome://resources/js/promise_resolver.m.js';
import {assertEquals} from '../../chai_assert.js';
export function fakeObservablesTestSuite() {
/** @type {?FakeObservables} */
let observables = null;
......
......@@ -2,10 +2,13 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
import {BatteryChargeStatusObserver, BatteryHealthObserver, CpuUsageObserver, DeviceCapabilities, MemoryUsageObserver, SystemInfo, VersionInfo} from 'chrome://diagnostics/diagnostics_types.js';
import {fakeBatteryChargeStatus, fakeBatteryHealth, fakeBatteryInfo, fakeBatteryInfo2, fakeCpuUsage, fakeMemoryUsage} from 'chrome://diagnostics/fake_data.js';
import {FakeSystemDataProvider} from 'chrome://diagnostics/fake_system_data_provider.js';
import {PromiseResolver} from 'chrome://resources/js/promise_resolver.m.js';
import {assertDeepEquals, assertEquals, assertFalse, assertTrue} from '../../chai_assert.js';
export function fakeSystemDataProviderTestSuite() {
/** @type {?FakeSystemDataProvider} */
let provider = null;
......@@ -32,10 +35,10 @@ export function fakeSystemDataProviderTestSuite() {
/** @type {!SystemInfo} */
const expected = {
board_name: 'BestBoard',
cpu_model: 'SuperFast CPU',
cpu_model_name: 'SuperFast CPU',
total_memory_kib: 9999,
cores_number: 4,
version_info: version,
cpu_threads_count: 4,
version: version,
device_capabilities: capabilities,
};
......
......@@ -2,9 +2,10 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
import {RoutineName, StandardRoutineResult} from 'chrome://diagnostics/diagnostics_types.js';
import {RoutineName, RoutineRunner, StandardRoutineResult} from 'chrome://diagnostics/diagnostics_types.js';
import {FakeSystemRoutineController} from 'chrome://diagnostics/fake_system_routine_controller.js';
import {PromiseResolver} from 'chrome://resources/js/promise_resolver.m.js';
import {assertEquals, assertFalse, assertTrue} from '../../chai_assert.js';
export function fakeSystemRoutineContollerTestSuite() {
/** @type {?FakeSystemRoutineController} */
......
......@@ -4,14 +4,18 @@
import 'chrome://diagnostics/memory_card.js';
import {MemoryUsage} from 'chrome://diagnostics/diagnostics_types.js';
import {fakeMemoryUsage} from 'chrome://diagnostics/fake_data.js';
import {FakeSystemDataProvider} from 'chrome://diagnostics/fake_system_data_provider.js';
import {getSystemDataProvider, setSystemDataProviderForTesting} from 'chrome://diagnostics/mojo_interface_provider.js';
import {flushTasks} from 'chrome://test/test_util.m.js';
import {setSystemDataProviderForTesting} from 'chrome://diagnostics/mojo_interface_provider.js';
import {assertEquals, assertFalse, assertTrue} from '../../chai_assert.js';
import {flushTasks} from '../../test_util.m.js';
import * as dx_utils from './diagnostics_test_utils.js';
export function memoryCardTestSuite() {
/** @type {?HTMLElement} */
/** @type {?MemoryCardElement} */
let memoryElement = null;
/** @type {?FakeSystemDataProvider} */
......@@ -23,7 +27,7 @@ export function memoryCardTestSuite() {
});
setup(() => {
PolymerTest.clearBody();
document.body.innerHTML = '';
});
teardown(() => {
......@@ -35,7 +39,7 @@ export function memoryCardTestSuite() {
});
/**
* @param {!MemoryUsage} memoryUsage
* @param {!Array<MemoryUsage>} memoryUsage
* @return {!Promise}
*/
function initializeMemoryCard(memoryUsage) {
......@@ -45,7 +49,8 @@ export function memoryCardTestSuite() {
provider.setFakeMemoryUsage(memoryUsage);
// Add the memory card to the DOM.
memoryElement = document.createElement('memory-card');
memoryElement = /** @type {!MemoryCardElement} */ (
document.createElement('memory-card'));
assertTrue(!!memoryElement);
document.body.appendChild(memoryElement);
......@@ -54,17 +59,18 @@ export function memoryCardTestSuite() {
/**
* Returns the routine-section from the card.
* @return {!RoutineSection}
* @return {!RoutineSectionElement}
*/
function getRoutineSection() {
const routineSection = memoryElement.$$('routine-section');
const routineSection = /** @type {!RoutineSectionElement} */ (
memoryElement.$$('routine-section'));
assertTrue(!!routineSection);
return routineSection;
}
/**
* Returns the Run Tests button from inside the routine-section.
* @return {!CrButton}
* @return {!CrButtonElement}
*/
function getRunTestsButton() {
const button = dx_utils.getRunTestsButtonFromSection(getRoutineSection());
......@@ -74,7 +80,7 @@ export function memoryCardTestSuite() {
/**
* Returns whether the run tests button is disabled.
* @return {bool}
* @return {boolean}
*/
function isRunTestsButtonDisabled() {
return getRunTestsButton().disabled;
......
......@@ -2,9 +2,12 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
import {SystemDataProviderInterface} from 'chrome://diagnostics/diagnostics_types.js';
import {FakeSystemRoutineController} from 'chrome://diagnostics/fake_system_routine_controller.js';
import {getSystemDataProvider, getSystemRoutineController, setSystemDataProviderForTesting, setSystemRoutineControllerForTesting} from 'chrome://diagnostics/mojo_interface_provider.js';
import {assertEquals} from '../../chai_assert.js';
export function fakeMojoProviderTestSuite() {
test('SettingGettingTestProvider', () => {
// TODO(zentaro): Replace with fake when built.
......
......@@ -4,13 +4,16 @@
import 'chrome://diagnostics/overview_card.js';
import {SystemInfo} from 'chrome://diagnostics/diagnostics_types.js';
import {fakeSystemInfo} from 'chrome://diagnostics/fake_data.js';
import {FakeSystemDataProvider} from 'chrome://diagnostics/fake_system_data_provider.js';
import {getSystemDataProvider, setSystemDataProviderForTesting} from 'chrome://diagnostics/mojo_interface_provider.js';
import {flushTasks} from 'chrome://test/test_util.m.js';
import {assertEquals, assertFalse, assertTrue} from '../../chai_assert.js';
import {flushTasks} from '../../test_util.m.js';
export function overviewCardTestSuite() {
/** @type {?HTMLElement} */
/** @type {?OverviewCardElement} */
let overviewElement = null;
/** @type {?FakeSystemDataProvider} */
......@@ -22,7 +25,7 @@ export function overviewCardTestSuite() {
});
setup(() => {
PolymerTest.clearBody();
document.body.innerHTML = '';
});
teardown(() => {
......@@ -31,7 +34,7 @@ export function overviewCardTestSuite() {
provider.reset();
});
/** @param {!SystemInfo} */
/** @param {!SystemInfo} fakeSystemInfo */
function initializeOverviewCard(fakeSystemInfo) {
assertFalse(!!overviewElement);
......@@ -39,7 +42,8 @@ export function overviewCardTestSuite() {
provider.setFakeSystemInfo(fakeSystemInfo);
// Add the overview card to the DOM.
overviewElement = document.createElement('overview-card');
overviewElement = /** @type {!OverviewCardElement} */ (
document.createElement('overview-card'));
assertTrue(!!overviewElement);
document.body.appendChild(overviewElement);
......
......@@ -4,15 +4,17 @@
import 'chrome://diagnostics/percent_bar_chart.js';
import {flushTasks} from 'chrome://test/test_util.m.js';
import * as diagnostics_test_utils from './diagnostics_test_utils.js';
import {assertEquals, assertFalse, assertTrue} from '../../chai_assert.js';
import {flushTasks} from '../../test_util.m.js';
import * as dx_utils from './diagnostics_test_utils.js';
export function percentBarChartTestSuite() {
/** @type {?HTMLElement} */
/** @type {?PercentBarChartElement} */
let percentBarChartElement = null;
setup(() => {
PolymerTest.clearBody();
document.body.innerHTML = '';
});
teardown(() => {
......@@ -32,7 +34,8 @@ export function percentBarChartTestSuite() {
assertFalse(!!percentBarChartElement);
// Add the element to the DOM.
percentBarChartElement = document.createElement('percent-bar-chart');
percentBarChartElement = /** @type {!PercentBarChartElement} */ (
document.createElement('percent-bar-chart'));
assertTrue(!!percentBarChartElement);
percentBarChartElement.header = header;
percentBarChartElement.value = value;
......@@ -55,8 +58,10 @@ export function percentBarChartTestSuite() {
assertEquals(
header, percentBarChartElement.$$('#chartName').textContent.trim());
diagnostics_test_utils.assertElementContainsText(
percentBarChartElement.$$('#percentageLabel'), `${percent}`);
dx_utils.assertElementContainsText(
/** @type {!HTMLElement} */ (
percentBarChartElement.$$('#percentageLabel')),
`${percent}`);
assertFalse(!!percentBarChartElement.$$('#headerIcon'));
});
......
......@@ -4,15 +4,17 @@
import 'chrome://diagnostics/realtime_cpu_chart.js';
import {flushTasks} from 'chrome://test/test_util.m.js';
import {assertEquals, assertFalse, assertGT, assertTrue} from '../../chai_assert.js';
import {flushTasks} from '../../test_util.m.js';
import * as diagnostics_test_utils from './diagnostics_test_utils.js';
export function realtimeCpuChartTestSuite() {
/** @type {?HTMLElement} */
/** @type {?RealtimeCpuChartElement} */
let realtimeCpuChartElement = null;
setup(() => {
PolymerTest.clearBody();
document.body.innerHTML = '';
});
teardown(() => {
......@@ -31,7 +33,8 @@ export function realtimeCpuChartTestSuite() {
assertFalse(!!realtimeCpuChartElement);
// Add the element to the DOM.
realtimeCpuChartElement = document.createElement('realtime-cpu-chart');
realtimeCpuChartElement = /** @type {!RealtimeCpuChartElement} */ (
document.createElement('realtime-cpu-chart'));
assertTrue(!!realtimeCpuChartElement);
document.body.appendChild(realtimeCpuChartElement);
realtimeCpuChartElement.user = user;
......@@ -40,6 +43,24 @@ export function realtimeCpuChartTestSuite() {
return refreshGraph();
}
/**
* Get refreshInterval_ private member for testing.
* @suppress {visibility} // access private member
*/
function getRefreshInterval() {
assertTrue(!!realtimeCpuChartElement);
return realtimeCpuChartElement.refreshInterval_;
}
/**
* Get margin_ private member for testing.
* @suppress {visibility} // access private member
*/
function getMargins() {
assertTrue(!!realtimeCpuChartElement);
return realtimeCpuChartElement.margin_;
}
/**
* Promise that resolves once at least one refresh interval has passed.
* @return {!Promise}
......@@ -52,7 +73,7 @@ export function realtimeCpuChartTestSuite() {
flushTasks().then(() => {
resolve();
});
}, realtimeCpuChartElement.refreshInterval_);
}, getRefreshInterval());
});
}
......@@ -70,30 +91,31 @@ export function realtimeCpuChartTestSuite() {
});
});
test('ChartAreaBoundary', () => {
const user = 10;
const system = 30;
return initializeRealtimeCpuChart(user, system).then(() => {
const svg = realtimeCpuChartElement.$$('#chart');
const boundary = realtimeCpuChartElement.$$('#defClip>rect');
// Chart area boundary must fit within svg.
assertGT(
Number(svg.getAttribute('width')),
Number(boundary.getAttribute('width')));
assertGT(
Number(svg.getAttribute('height')),
Number(boundary.getAttribute('height')));
const chartGroup = realtimeCpuChartElement.$$('#chartGroup');
// Margins are in effect.
assertEquals(
`translate(${realtimeCpuChartElement.margin_.left},${
realtimeCpuChartElement.margin_.top})`,
chartGroup.getAttribute('transform'));
});
});
test(
'ChartAreaBoundary',
/** @suppress {visibility} access private member for test */ () => {
const user = 10;
const system = 30;
return initializeRealtimeCpuChart(user, system).then(() => {
const svg = realtimeCpuChartElement.$$('#chart');
const boundary = realtimeCpuChartElement.$$('#defClip>rect');
// Chart area boundary must fit within svg.
assertGT(
Number(svg.getAttribute('width')),
Number(boundary.getAttribute('width')));
assertGT(
Number(svg.getAttribute('height')),
Number(boundary.getAttribute('height')));
const chartGroup = realtimeCpuChartElement.$$('#chartGroup');
// Margins are in effect.
assertEquals(
`translate(${getMargins().left},${getMargins().top})`,
chartGroup.getAttribute('transform'));
});
});
test('InitializePlot', () => {
const user = 10;
......
......@@ -6,6 +6,8 @@ import {RoutineName, RoutineResultInfo, StandardRoutineResult} from 'chrome://di
import {FakeSystemRoutineController} from 'chrome://diagnostics/fake_system_routine_controller.js';
import {ExecutionProgress, ResultStatusItem, RoutineListExecutor} from 'chrome://diagnostics/routine_list_executor.js';
import {assertEquals, assertFalse, assertNotEquals, assertTrue} from '../../chai_assert.js';
export function fakeRoutineListExecutorTestSuite() {
/** @type {?FakeSystemRoutineController} */
let controller = null;
......@@ -61,7 +63,7 @@ export function fakeRoutineListExecutorTestSuite() {
/** @type {!function(!ResultStatusItem)} */
let statusCallback = (status) => {
assertTrue(upto < expectedCallbacks.length);
assertEquals(expectedCallbacks[upto].name, status.name);
assertEquals(expectedCallbacks[upto].routine, status.routine);
assertEquals(expectedCallbacks[upto].progress, status.progress);
if (status.progress === ExecutionProgress.kRunning) {
assertEquals(null, status.result);
......
......@@ -6,14 +6,16 @@ import 'chrome://diagnostics/routine_result_entry.js';
import {RoutineName, RoutineResult, StandardRoutineResult} from 'chrome://diagnostics/diagnostics_types.js';
import {ExecutionProgress, ResultStatusItem} from 'chrome://diagnostics/routine_list_executor.js';
import {flushTasks} from 'chrome://test/test_util.m.js';
import {assertEquals, assertFalse, assertTrue} from '../../chai_assert.js';
import {flushTasks} from '../../test_util.m.js';
export function routineResultEntryTestSuite() {
/** @type {?HTMLElement} */
/** @type {?RoutineResultEntryElement} */
let routineResultEntryElement = null;
setup(function() {
PolymerTest.clearBody();
document.body.innerHTML = '';
});
teardown(function() {
......@@ -27,7 +29,8 @@ export function routineResultEntryTestSuite() {
assertFalse(!!routineResultEntryElement);
// Add the entry to the DOM.
routineResultEntryElement = document.createElement('routine-result-entry');
routineResultEntryElement = /** @type {!RoutineResultEntryElement} */ (
document.createElement('routine-result-entry'));
assertTrue(!!routineResultEntryElement);
document.body.appendChild(routineResultEntryElement);
......
......@@ -6,16 +6,18 @@ import 'chrome://diagnostics/routine_result_list.js';
import {RoutineName, StandardRoutineResult} from 'chrome://diagnostics/diagnostics_types.js';
import {ExecutionProgress, ResultStatusItem} from 'chrome://diagnostics/routine_list_executor.js';
import {flushTasks} from 'chrome://test/test_util.m.js';
import {assertDeepEquals, assertEquals, assertFalse, assertNotEquals, assertTrue} from '../../chai_assert.js';
import {flushTasks} from '../../test_util.m.js';
import * as dx_utils from './diagnostics_test_utils.js';
export function routineResultListTestSuite() {
/** @type {?HTMLElement} */
/** @type {?RoutineResultListElement} */
let routineResultListElement = null;
setup(function() {
PolymerTest.clearBody();
document.body.innerHTML = '';
});
teardown(function() {
......@@ -34,7 +36,8 @@ export function routineResultListTestSuite() {
assertFalse(!!routineResultListElement);
// Add the entry to the DOM.
routineResultListElement = document.createElement('routine-result-list');
routineResultListElement = /** @type {!RoutineResultListElement} */ (
document.createElement('routine-result-list'));
assertTrue(!!routineResultListElement);
document.body.appendChild(routineResultListElement);
......@@ -55,7 +58,7 @@ export function routineResultListTestSuite() {
/**
* Returns an array of the entries in the list.
* @return {!Array<!RoutineResultEntry>}
* @return {!NodeList<!RoutineResultEntryElement>}
*/
function getEntries() {
return dx_utils.getResultEntries(routineResultListElement);
......
......@@ -9,19 +9,20 @@ import {RoutineName} from 'chrome://diagnostics/diagnostics_types.js';
import {FakeSystemRoutineController} from 'chrome://diagnostics/fake_system_routine_controller.js';
import {setSystemRoutineControllerForTesting} from 'chrome://diagnostics/mojo_interface_provider.js';
import {ExecutionProgress} from 'chrome://diagnostics/routine_list_executor.js';
import {flushTasks} from 'chrome://test/test_util.m.js';
import {assertEquals, assertFalse, assertTrue} from '../../chai_assert.js';
import {flushTasks} from '../../test_util.m.js';
import * as dx_utils from './diagnostics_test_utils.js';
export function routineSectionTestSuite() {
/** @type {?HTMLElement} */
/** @type {?RoutineSectionElement} */
let routineSectionElement = null;
/** @type {!FakeSystemRoutineController} */
let routineController;
setup(function() {
PolymerTest.clearBody();
document.body.innerHTML = '';
// Setup a fake routine controller so that nothing resolves unless
// done explicitly.
......@@ -45,7 +46,8 @@ export function routineSectionTestSuite() {
assertFalse(!!routineSectionElement);
// Add the entry to the DOM.
routineSectionElement = document.createElement('routine-section');
routineSectionElement = /** @type {!RoutineSectionElement} */ (
document.createElement('routine-section'));
assertTrue(!!routineSectionElement);
document.body.appendChild(routineSectionElement);
......@@ -57,7 +59,7 @@ export function routineSectionTestSuite() {
/**
* Returns the result list element.
* @return {!RoutineList}
* @return {!RoutineResultListElement}
*/
function getResultList() {
const resultList = dx_utils.getResultList(routineSectionElement);
......@@ -67,7 +69,7 @@ export function routineSectionTestSuite() {
/**
* Returns the Run Tests button.
* @return {!CrButton}
* @return {!CrButtonElement}
*/
function getRunTestsButton() {
const button = dx_utils.getRunTestsButtonFromSection(routineSectionElement);
......@@ -77,7 +79,7 @@ export function routineSectionTestSuite() {
/**
* Returns whether the run tests button is disabled.
* @return {bool}
* @return {boolean}
*/
function isRunTestsButtonDisabled() {
return getRunTestsButton().disabled;
......@@ -94,7 +96,7 @@ export function routineSectionTestSuite() {
/**
* Returns an array of the entries in the list.
* @return {!Array<!RoutineResultEntry>}
* @return {!NodeList<!RoutineResultEntryElement>}
*/
function getEntries() {
return dx_utils.getResultEntries(getResultList());
......
......@@ -150,12 +150,14 @@ js_library("routine_result_entry") {
js_library("routine_result_list") {
deps = [
":routine_list_executor",
"//third_party/polymer/v3_0/components-chromium/polymer:polymer_bundled",
]
}
js_library("routine_section") {
deps = [
":routine_result_list",
"//third_party/polymer/v3_0/components-chromium/polymer:polymer_bundled",
]
}
......
......@@ -2,7 +2,7 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
import {BatteryChargeStatus, BatteryHealth, BatteryInfo, CpuUsage, CpuUsageObserver, ExternalPowerSource, MemoryUsage, MemoryUsageObserver, SystemInfo} from './diagnostics_types.js';
import {BatteryChargeStatus, BatteryHealth, BatteryInfo, CpuUsage, CpuUsageObserver, ExternalPowerSource, MemoryUsage, MemoryUsageObserver, SystemDataProviderInterface, SystemInfo} from './diagnostics_types.js';
import {FakeMethodResolver} from './fake_method_resolver.js';
import {FakeObservables} from './fake_observables.js';
......@@ -11,6 +11,7 @@ import {FakeObservables} from './fake_observables.js';
* Implements a fake version of the SystemDataProvider mojo interface.
*/
/** @implements {SystemDataProviderInterface} */
export class FakeSystemDataProvider {
constructor() {
/** @private {!FakeMethodResolver} */
......@@ -206,7 +207,7 @@ export class FakeSystemDataProvider {
*/
registerObservables() {
this.observables_.register(
'BatteryChargeStatusObserver_onBatteryChargeStatusUpdated');
'BatteryChargeStatusObserver_onBatteryChargeStatusUpdated');
this.observables_.register('BatteryHealthObserver_onBatteryHealthUpdated');
this.observables_.register('CpuUsageObserver_onCpuUsageUpdated');
this.observables_.register('MemoryUsageObserver_onMemoryUsageUpdated');
......
......@@ -57,12 +57,10 @@ Polymer({
});
},
/**
* @return {!HTMLElement}
* @private
**/
/** @private */
getResultListElem_() {
return /** @type {!HTMLElement} */ (this.$$('routine-result-list'));
return /** @type {!RoutineResultListElement} */ (
this.$$('routine-result-list'));
},
/** @override */
......
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