Skip to content

Commit 65afb9b

Browse files
OrKoNDevtools-frontend LUCI CQ
authored andcommitted
Add foundation CrUXManager tests
crrev.com/c/7405594 + foundation tests for CrUXManager. Bug: 446630695 Change-Id: If4805d8d31a3d5f9aeb8257bbf07c096a866f012 Reviewed-on: https://chromium-review.googlesource.com/c/devtools/devtools-frontend/+/7421201 Reviewed-by: Paul Irish <paulirish@chromium.org> Commit-Queue: Paul Irish <paulirish@chromium.org>
1 parent 3338a0a commit 65afb9b

7 files changed

Lines changed: 26 additions & 11 deletions

File tree

front_end/BUILD.gn

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -132,7 +132,6 @@ group("unittests") {
132132
"models/bindings:unittests",
133133
"models/breakpoints:unittests",
134134
"models/cpu_profile:unittests",
135-
"models/crux-manager:unittests",
136135
"models/emulation:unittests",
137136
"models/extensions:unittests",
138137
"models/geometry:unittests",
@@ -282,6 +281,7 @@ group("foundation_unittests") {
282281
"entrypoints/formatter_worker:unittests",
283282
"foundation:unittests",
284283
"models/ai_assistance:foundation_unittests",
284+
"models/crux-manager:foundation_unittests",
285285
"models/formatter:unittests",
286286
"models/issues_manager:foundation_unittests",
287287
]

front_end/core/host/InspectorFrontendHostStub.ts

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -147,6 +147,9 @@ export class InspectorFrontendHostStub implements InspectorFrontendHostAPI {
147147
}
148148

149149
inspectedURLChanged(url: Platform.DevToolsPath.UrlString): void {
150+
if (!('document' in globalThis)) {
151+
return;
152+
}
150153
document.title = i18nString(UIStrings.devtoolsS, {PH1: url.replace(/^https?:\/\//, '')});
151154
}
152155

front_end/models/crux-manager/BUILD.gn

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,13 +25,14 @@ devtools_entrypoint("bundle") {
2525

2626
visibility = [
2727
":*",
28+
"../../../mcp/*",
2829
"../../entrypoints/main",
2930
"../../panels/timeline/*",
3031
"../trace/*",
3132
]
3233
}
3334

34-
ts_library("unittests") {
35+
devtools_foundation_module("foundation_unittests") {
3536
testonly = true
3637

3738
sources = [ "CrUXManager.test.ts" ]

front_end/models/crux-manager/CrUXManager.test.ts

Lines changed: 17 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -7,14 +7,17 @@ import * as Platform from '../../core/platform/platform.js';
77
import * as SDK from '../../core/sdk/sdk.js';
88
import * as EmulationModel from '../../models/emulation/emulation.js';
99
import {createTarget, updateHostConfig} from '../../testing/EnvironmentHelpers.js';
10-
import {describeWithMockConnection} from '../../testing/MockConnection.js';
10+
import {setupLocaleHooks} from '../../testing/LocaleHelpers.js';
11+
import {setupRuntimeHooks} from '../../testing/RuntimeHelpers.js';
12+
import {setupSettingsHooks} from '../../testing/SettingsHelpers.js';
1113

1214
import * as CrUXManager from './crux-manager.js';
1315

1416
const {urlString} = Platform.DevToolsPath;
1517

16-
function mockResponse(scopes: {pageScope: CrUXManager.PageScope, deviceScope: CrUXManager.DeviceScope}|null = null):
17-
CrUXManager.CrUXResponse {
18+
export function mockResponse(
19+
scopes: {pageScope: CrUXManager.PageScope, deviceScope: CrUXManager.DeviceScope}|null =
20+
null): CrUXManager.CrUXResponse {
1821
return {
1922
record: {
2023
key: {},
@@ -52,28 +55,34 @@ async function triggerMicroTaskQueue(): Promise<void> {
5255
await new Promise(resolve => setTimeout(resolve, 0));
5356
}
5457

55-
describeWithMockConnection('CrUXManager', () => {
58+
describe('CrUXManager', () => {
5659
let cruxManager: CrUXManager.CrUXManager;
5760
let target: SDK.Target.Target;
5861
let resourceTreeModel: SDK.ResourceTreeModel.ResourceTreeModel;
5962
let mockFetch: sinon.SinonStub;
6063
let mockConsoleError: sinon.SinonStub;
6164

65+
setupRuntimeHooks();
66+
setupSettingsHooks();
67+
setupLocaleHooks();
68+
6269
beforeEach(async () => {
70+
SDK.TargetManager.TargetManager.instance({forceNew: true});
6371
const tabTarget = createTarget({type: SDK.Target.Type.TAB});
6472
target = createTarget({parentTarget: tabTarget});
73+
target.setInspectedURL(urlString`https://example.com/inspected`);
6574
resourceTreeModel =
6675
target.model(SDK.ResourceTreeModel.ResourceTreeModel) as SDK.ResourceTreeModel.ResourceTreeModel;
6776
cruxManager = CrUXManager.CrUXManager.instance({forceNew: true});
68-
mockFetch = sinon.stub(window, 'fetch');
77+
mockFetch = sinon.stub(globalThis, 'fetch');
6978
mockConsoleError = sinon.stub(console, 'error');
7079
EmulationModel.DeviceModeModel.DeviceModeModel.instance({forceNew: true});
7180
});
7281

7382
afterEach(() => {
74-
mockFetch.restore();
75-
mockConsoleError.restore();
76-
cruxManager.getConfigSetting().set({enabled: false});
83+
mockFetch?.restore();
84+
mockConsoleError?.restore();
85+
cruxManager?.getConfigSetting().set({enabled: false});
7786
});
7887

7988
describe('storing the user consent', () => {

front_end/models/emulation/DeviceModeModel.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -122,7 +122,7 @@ export class DeviceModeModel extends Common.ObjectWrapper.ObjectWrapper<EventTyp
122122
this.#preferredSize = new Geometry.Size(1, 1);
123123
this.#initialized = false;
124124
this.#appliedDeviceSize = new Geometry.Size(1, 1);
125-
this.#appliedDeviceScaleFactor = window.devicePixelRatio;
125+
this.#appliedDeviceScaleFactor = globalThis.devicePixelRatio;
126126
this.#appliedUserAgentType = UA.DESKTOP;
127127

128128
this.#scaleSetting = Common.Settings.Settings.instance().createSetting('emulation.device-scale', 1);

mcp/BUILD.gn

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@ devtools_module("mcp") {
2121
"../front_end/foundation:bundle",
2222
"../front_end/models/ai_assistance",
2323
"../front_end/models/bindings:bundle",
24+
"../front_end/models/crux-manager:bundle",
2425
"../front_end/models/issues_manager:bundle",
2526
"../front_end/models/stack_trace:bundle",
2627
"../front_end/models/trace:bundle",

mcp/mcp.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,7 @@ export {
3434
} from '../front_end/models/ai_assistance/data_formatters/PerformanceTraceFormatter.js';
3535
export {AgentFocus} from '../front_end/models/ai_assistance/performance/AIContext.js';
3636
export {DebuggerWorkspaceBinding} from '../front_end/models/bindings/DebuggerWorkspaceBinding.js';
37+
export {CrUXManager} from '../front_end/models/crux-manager/CrUXManager.js';
3738
export {Issue} from '../front_end/models/issues_manager/Issue.js';
3839
export {
3940
AggregatedIssue,

0 commit comments

Comments
 (0)