0

CrOS Settings: Convert TestAboutPageBrowserProxy to TS

Bug: b:270728282
Test: browser_tests --gtest_filter="OSSettings*"
Change-Id: I817c37ecd324140f80ea10563176638d3938884d
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/5247697
Reviewed-by: Nikki Moteva <moteva@google.com>
Commit-Queue: Wes Okuhara <wesokuhara@google.com>
Cr-Commit-Position: refs/heads/main@{#1254270}
This commit is contained in:
Wes Okuhara
2024-01-31 00:13:14 +00:00
committed by Chromium LUCI CQ
parent e2cbbec096
commit e5f985c19e
5 changed files with 95 additions and 131 deletions
chrome
browser
resources
test

@@ -47,7 +47,7 @@ export interface AboutPageUpdateInfo {
* Information related to device end of life. These values will always be
* populated by the C++ handler.
*/
interface EndOfLifeInfo {
export interface EndOfLifeInfo {
hasEndOfLife: boolean;
aboutPageEndOfLifeMessage: string;
shouldShowEndOfLifeIncentive: boolean;

@@ -203,7 +203,7 @@ export {SelectToSpeakSubpageBrowserProxy, SelectToSpeakSubpageBrowserProxyImpl}
export {SwitchAccessSubpageBrowserProxy, SwitchAccessSubpageBrowserProxyImpl} from './os_a11y_page/switch_access_subpage_browser_proxy.js';
export {TextToSpeechSubpageBrowserProxy, TextToSpeechSubpageBrowserProxyImpl} from './os_a11y_page/text_to_speech_subpage_browser_proxy.js';
export {TtsVoiceSubpageBrowserProxy, TtsVoiceSubpageBrowserProxyImpl} from './os_a11y_page/tts_voice_subpage_browser_proxy.js';
export {AboutPageBrowserProxyImpl, BrowserChannel, UpdateStatus} from './os_about_page/about_page_browser_proxy.js';
export {AboutPageBrowserProxy, AboutPageBrowserProxyImpl, BrowserChannel, ChannelInfo, EndOfLifeInfo, RegulatoryInfo, TpmFirmwareUpdateStatusChangedEvent, UpdateStatus, VersionInfo} from './os_about_page/about_page_browser_proxy.js';
export {DeviceNameBrowserProxyImpl} from './os_about_page/device_name_browser_proxy.js';
export {DeviceNameState, SetDeviceNameResult} from './os_about_page/device_name_util.js';
export {AndroidAppsBrowserProxy, AndroidAppsBrowserProxyImpl} from './os_apps_page/android_apps_browser_proxy.js';

@@ -43,7 +43,7 @@ build_webui_tests("build") {
"onc_mojo_test.ts",
"os_about_page_tests.js",
"os_page_availability_test.ts",
"test_about_page_browser_proxy_chromeos.js",
"test_about_page_browser_proxy.ts",
"test_api.ts",
"test_device_name_browser_proxy.ts",
"test_extension_control_browser_proxy.ts",

@@ -15,14 +15,14 @@ import {flushTasks, waitAfterNextRender} from 'chrome://webui-test/polymer_test_
import {eventToPromise, isVisible} from 'chrome://webui-test/test_util.js';
import {FakeUserActionRecorder} from './fake_user_action_recorder.js';
import {TestAboutPageBrowserProxyChromeOS} from './test_about_page_browser_proxy_chromeos.js';
import {TestAboutPageBrowserProxy} from './test_about_page_browser_proxy.js';
import {TestDeviceNameBrowserProxy} from './test_device_name_browser_proxy.js';
import {TestLifetimeBrowserProxy} from './test_os_lifetime_browser_proxy.js';
suite('AboutPageTest', function() {
let page = null;
/** @type {?TestAboutPageBrowserProxyChromeOS} */
/** @type {?TestAboutPageBrowserProxy} */
let aboutBrowserProxy = null;
/** @type {?TestLifetimeBrowserProxy} */
@@ -44,7 +44,7 @@ suite('AboutPageTest', function() {
lifetimeBrowserProxy = new TestLifetimeBrowserProxy();
LifetimeBrowserProxyImpl.setInstance(lifetimeBrowserProxy);
aboutBrowserProxy = new TestAboutPageBrowserProxyChromeOS();
aboutBrowserProxy = new TestAboutPageBrowserProxy();
AboutPageBrowserProxyImpl.setInstanceForTesting(aboutBrowserProxy);
return initNewPage();
});
@@ -526,7 +526,7 @@ suite('AboutPageTest', function() {
test('TPMFirmwareUpdate', async () => {
assertTrue(page.$.aboutTPMFirmwareUpdate.hidden);
aboutBrowserProxy.setTPMFirmwareUpdateStatus({updateAvailable: true});
aboutBrowserProxy.setTpmFirmwareUpdateStatus({updateAvailable: true});
aboutBrowserProxy.refreshTpmFirmwareUpdateStatus();
assertFalse(page.$.aboutTPMFirmwareUpdate.hidden);
page.$.aboutTPMFirmwareUpdate.click();
@@ -980,7 +980,7 @@ suite('DetailedBuildInfoTest', function() {
let deviceNameBrowserProxy = null;
setup(function() {
browserProxy = new TestAboutPageBrowserProxyChromeOS();
browserProxy = new TestAboutPageBrowserProxy();
deviceNameBrowserProxy = new TestDeviceNameBrowserProxy();
AboutPageBrowserProxyImpl.setInstanceForTesting(browserProxy);
DeviceNameBrowserProxyImpl.setInstanceForTesting(deviceNameBrowserProxy);
@@ -1492,7 +1492,7 @@ suite('ChannelSwitcherDialogTest', function() {
setup(async function() {
currentChannel = BrowserChannel.BETA;
browserProxy = new TestAboutPageBrowserProxyChromeOS();
browserProxy = new TestAboutPageBrowserProxy();
browserProxy.setChannels(currentChannel, currentChannel);
AboutPageBrowserProxyImpl.setInstanceForTesting(browserProxy);
PolymerTest.clearBody();
@@ -1583,7 +1583,7 @@ suite('Consumer auto update dialog popup', function() {
setup(function() {
events = [];
browserProxy = new TestAboutPageBrowserProxyChromeOS();
browserProxy = new TestAboutPageBrowserProxy();
AboutPageBrowserProxyImpl.setInstanceForTesting(browserProxy);
PolymerTest.clearBody();
dialog =
@@ -1628,7 +1628,7 @@ suite('AboutPageTest_OfficialBuild', function() {
let browserProxy = null;
setup(function() {
browserProxy = new TestAboutPageBrowserProxyChromeOS();
browserProxy = new TestAboutPageBrowserProxy();
AboutPageBrowserProxyImpl.setInstanceForTesting(browserProxy);
PolymerTest.clearBody();
page = document.createElement('os-about-page');

@@ -2,14 +2,43 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
import {BrowserChannel, UpdateStatus} from 'chrome://os-settings/os_settings.js';
import {webUIListenerCallback} from 'chrome://resources/ash/common/cr.m.js';
import {AboutPageBrowserProxy, BrowserChannel, ChannelInfo, EndOfLifeInfo, RegulatoryInfo, TpmFirmwareUpdateStatusChangedEvent, UpdateStatus, VersionInfo} from 'chrome://os-settings/os_settings.js';
import {webUIListenerCallback} from 'chrome://resources/js/cr.js';
import {TestBrowserProxy} from 'chrome://webui-test/test_browser_proxy.js';
/** @implements {AboutPageBrowserProxy} */
export class TestAboutPageBrowserProxyChromeOS extends TestBrowserProxy {
export class TestAboutPageBrowserProxy extends TestBrowserProxy implements
AboutPageBrowserProxy {
private updateStatus_: UpdateStatus = UpdateStatus.UPDATED;
private sendUpdateStatus_ = true;
private versionInfo_: VersionInfo = {
arcVersion: '',
osFirmware: '',
osVersion: '',
};
private channelInfo_: ChannelInfo = {
currentChannel: BrowserChannel.BETA,
targetChannel: BrowserChannel.BETA,
isLts: false,
};
private canChangeChannel_ = true;
private regulatoryInfo_: RegulatoryInfo|null = null;
private tpmFirmwareUpdateStatus_: TpmFirmwareUpdateStatusChangedEvent = {
updateAvailable: false,
};
private endOfLifeInfo_: EndOfLifeInfo = {
hasEndOfLife: false,
aboutPageEndOfLifeMessage: '',
shouldShowEndOfLifeIncentive: false,
shouldShowOfferText: false,
};
private hasInternetConnection_ = true;
private managedAutoUpdateEnabled_ = true;
private consumerAutoUpdateEnabled_ = true;
private firmwareUpdateCount_ = 0;
constructor() {
super([
'applyDeferredUpdate',
'pageReady',
'refreshUpdateStatus',
'openHelpPage',
@@ -22,10 +51,12 @@ export class TestAboutPageBrowserProxyChromeOS extends TestBrowserProxy {
'getEndOfLifeInfo',
'endOfLifeIncentiveButtonClicked',
'launchReleaseNotes',
'openOsHelpPage',
'openDiagnostics',
'openOsHelpPage',
'openProductLicenseOther',
'refreshTpmFirmwareUpdateStatus',
'requestUpdate',
'requestUpdateOverCellular',
'setChannel',
'getFirmwareUpdateCount',
'openFirmwareUpdatesPage',
@@ -33,63 +64,17 @@ export class TestAboutPageBrowserProxyChromeOS extends TestBrowserProxy {
'isConsumerAutoUpdateEnabled',
'setConsumerAutoUpdate',
]);
/** @private {!UpdateStatus} */
this.updateStatus_ = UpdateStatus.UPDATED;
/** @private {!boolean} */
this.sendUpdateStatus_ = true;
/** @private {!VersionInfo} */
this.versionInfo_ = {
arcVersion: '',
osFirmware: '',
osVersion: '',
};
/** @private {!ChannelInfo} */
this.channelInfo_ = {
currentChannel: BrowserChannel.BETA,
targetChannel: BrowserChannel.BETA,
};
/** @private {!boolean} */
this.canChangeChannel_ = true;
/** @private {?RegulatoryInfo} */
this.regulatoryInfo_ = null;
/** @private {!TPMFirmwareUpdateStatus} */
this.tpmFirmwareUpdateStatus_ = {
updateAvailable: false,
};
this.endOfLifeInfo_ = {
hasEndOfLife: false,
aboutPageEndOfLifeMessage: '',
shouldShowEndOfLifeIncentive: false,
};
/** @private {!boolean} */
this.managedAutoUpdateEnabled_ = true;
/** @private {!boolean} */
this.consumerAutoUpdateEnabled_ = true;
/** @private {number} */
this.firmwareUpdateCount_ = 0;
}
/** @param {!UpdateStatus} updateStatus */
setUpdateStatus(updateStatus) {
setUpdateStatus(updateStatus: UpdateStatus): void {
this.updateStatus_ = updateStatus;
}
blockRefreshUpdateStatus() {
blockRefreshUpdateStatus(): void {
this.sendUpdateStatus_ = false;
}
sendStatusNoInternet() {
sendStatusNoInternet(): void {
webUIListenerCallback('update-status-changed', {
progress: 0,
status: UpdateStatus.FAILED,
@@ -98,23 +83,19 @@ export class TestAboutPageBrowserProxyChromeOS extends TestBrowserProxy {
});
}
/** @param {boolean} enabled */
setManagedAutoUpdate(enabled) {
setManagedAutoUpdate(enabled: boolean): void {
this.managedAutoUpdateEnabled_ = enabled;
}
/** @param {boolean} enabled */
resetConsumerAutoUpdate(enabled) {
resetConsumerAutoUpdate(enabled: boolean): void {
this.consumerAutoUpdateEnabled_ = enabled;
}
/** @override */
pageReady() {
pageReady(): void {
this.methodCalled('pageReady');
}
/** @override */
refreshUpdateStatus() {
refreshUpdateStatus(): void {
if (this.sendUpdateStatus_) {
webUIListenerCallback('update-status-changed', {
progress: 1,
@@ -124,160 +105,143 @@ export class TestAboutPageBrowserProxyChromeOS extends TestBrowserProxy {
this.methodCalled('refreshUpdateStatus');
}
/** @override */
openFeedbackDialog() {
openFeedbackDialog(): void {
this.methodCalled('openFeedbackDialog');
}
/** @override */
openHelpPage() {
openHelpPage(): void {
this.methodCalled('openHelpPage');
}
/** @param {!VersionInfo} */
setVersionInfo(versionInfo) {
setVersionInfo(versionInfo: VersionInfo): void {
this.versionInfo_ = versionInfo;
}
/** @param {boolean} canChangeChannel */
setCanChangeChannel(canChangeChannel) {
setCanChangeChannel(canChangeChannel: boolean): void {
this.canChangeChannel_ = canChangeChannel;
}
/**
* @param {!BrowserChannel} current
* @param {!BrowserChannel} target
*/
setChannels(current, target) {
setChannels(current: BrowserChannel, target: BrowserChannel): void {
this.channelInfo_.currentChannel = current;
this.channelInfo_.targetChannel = target;
}
/** @param {?RegulatoryInfo} regulatoryInfo */
setRegulatoryInfo(regulatoryInfo) {
setRegulatoryInfo(regulatoryInfo: RegulatoryInfo|null): void {
this.regulatoryInfo_ = regulatoryInfo;
}
/** @param {!EndOfLifeInfo} endOfLifeInfo */
setEndOfLifeInfo(endOfLifeInfo) {
setEndOfLifeInfo(endOfLifeInfo: EndOfLifeInfo): void {
this.endOfLifeInfo_ = endOfLifeInfo;
}
/** @param {boolean|Promise} hasInternetConnection */
setInternetConnection(hasInternetConnection) {
setInternetConnection(hasInternetConnection: boolean): void {
this.hasInternetConnection_ = hasInternetConnection;
}
/** @override */
getVersionInfo() {
getVersionInfo(): Promise<VersionInfo> {
this.methodCalled('getVersionInfo');
return Promise.resolve(this.versionInfo_);
}
/** @override */
getChannelInfo() {
getChannelInfo(): Promise<ChannelInfo> {
this.methodCalled('getChannelInfo');
return Promise.resolve(this.channelInfo_);
}
/** @override */
canChangeChannel() {
canChangeChannel(): Promise<boolean> {
this.methodCalled('canChangeChannel');
return Promise.resolve(this.canChangeChannel_);
}
/** @override */
checkInternetConnection() {
checkInternetConnection(): Promise<boolean> {
this.methodCalled('checkInternetConnection');
return Promise.resolve(this.hasInternetConnection_);
}
/** @override */
getRegulatoryInfo() {
getRegulatoryInfo(): Promise<RegulatoryInfo|null> {
this.methodCalled('getRegulatoryInfo');
return Promise.resolve(this.regulatoryInfo_);
}
/** @override */
getEndOfLifeInfo() {
getEndOfLifeInfo(): Promise<EndOfLifeInfo> {
this.methodCalled('getEndOfLifeInfo');
return Promise.resolve(this.endOfLifeInfo_);
}
endOfLifeIncentiveButtonClicked() {
endOfLifeIncentiveButtonClicked(): void {
this.methodCalled('endOfLifeIncentiveButtonClicked');
}
/** @override */
setChannel(channel, isPowerwashAllowed) {
setChannel(channel: BrowserChannel, isPowerwashAllowed: boolean): void {
this.methodCalled('setChannel', [channel, isPowerwashAllowed]);
}
/** @param {!TPMFirmwareUpdateStatus} status */
setTPMFirmwareUpdateStatus(status) {
setTpmFirmwareUpdateStatus(status: TpmFirmwareUpdateStatusChangedEvent):
void {
this.tpmFirmwareUpdateStatus_ = status;
}
/** @override */
refreshTpmFirmwareUpdateStatus() {
refreshTpmFirmwareUpdateStatus(): void {
this.methodCalled('refreshTpmFirmwareUpdateStatus');
webUIListenerCallback(
'tpm-firmware-update-status-changed', this.tpmFirmwareUpdateStatus_);
}
/** @override */
requestUpdate() {
requestUpdate(): void {
this.setUpdateStatus(UpdateStatus.UPDATING);
this.refreshUpdateStatus();
this.methodCalled('requestUpdate');
}
/** @override */
openOsHelpPage() {
openOsHelpPage(): void {
this.methodCalled('openOsHelpPage');
}
/** @override */
openDiagnostics() {
openDiagnostics(): void {
this.methodCalled('openDiagnostics');
}
/** @override */
launchReleaseNotes() {
launchReleaseNotes(): void {
this.methodCalled('launchReleaseNotes');
}
/** @override */
openFirmwareUpdatesPage() {
openFirmwareUpdatesPage(): void {
this.methodCalled('openFirmwareUpdatesPage');
}
/** @override */
getFirmwareUpdateCount() {
getFirmwareUpdateCount(): Promise<number> {
this.methodCalled('getFirmwareUpdateCount');
return Promise.resolve(this.firmwareUpdateCount_);
}
/** @param {number} firmwareUpdatesCount */
setFirmwareUpdatesCount(firmwareUpdatesCount) {
setFirmwareUpdatesCount(firmwareUpdatesCount: number): void {
this.firmwareUpdateCount_ = firmwareUpdatesCount;
}
/** @override */
isManagedAutoUpdateEnabled() {
isManagedAutoUpdateEnabled(): Promise<boolean> {
this.methodCalled('isManagedAutoUpdateEnabled');
return Promise.resolve(this.managedAutoUpdateEnabled_);
}
/** @override */
isConsumerAutoUpdateEnabled() {
isConsumerAutoUpdateEnabled(): Promise<boolean> {
this.methodCalled('isConsumerAutoUpdateEnabled');
return Promise.resolve(this.consumerAutoUpdateEnabled_);
}
/** @override */
setConsumerAutoUpdate(enable) {
setConsumerAutoUpdate(enable: boolean): void {
this.consumerAutoUpdateEnabled_ = enable;
this.methodCalled('setConsumerAutoUpdate');
}
applyDeferredUpdate(): void {
this.methodCalled('applyDeferredUpdate');
}
openProductLicenseOther(): void {
this.methodCalled('openProductLicenseOther');
}
requestUpdateOverCellular(targetVersion: string, targetSize: string): void {
this.methodCalled('requestUpdateOverCellular', [targetVersion, targetSize]);
}
}