| // 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. |
| |
| /* |
| * This file is automatically loaded and run by Karma because it automatically |
| * loads and injects all *.js files it finds. |
| */ |
| |
| import * as Common from '../core/common/common.js'; |
| import * as Host from '../core/host/host.js'; |
| import * as Root from '../core/root/root.js'; |
| import * as Trace from '../models/trace/trace.js'; |
| import * as Timeline from '../panels/timeline/timeline.js'; |
| import * as ThemeSupport from '../ui/legacy/theme_support/theme_support.js'; |
| |
| import {cleanTestDOM, setupTestDOM} from './DOMHelpers.js'; |
| import {createFakeSetting, resetHostConfig} from './EnvironmentHelpers.js'; |
| import { |
| checkForPendingActivity, |
| startTrackingAsyncActivity, |
| stopTrackingAsyncActivity, |
| } from './TrackAsyncOperations.js'; |
| |
| const style = document.createElement('style'); |
| style.innerText = |
| '@import url(\'https://fonts.googleapis.com/css2?family=Roboto:ital,wght@0,100..900;1,100..900&display=swap\');'; |
| document.head.append(style); |
| document.documentElement.classList.add('platform-screenshot-test'); |
| |
| beforeEach(async () => { |
| resetHostConfig(); |
| await setupTestDOM(); |
| // Ensure that no trace data leaks between tests when testing the trace engine. |
| for (const handler of Object.values(Trace.Handlers.ModelHandlers)) { |
| handler.reset(); |
| } |
| Trace.Helpers.SyntheticEvents.SyntheticEventsManager.reset(); |
| Timeline.Utils.SourceMapsResolver.SourceMapsResolver.clearResolvedNodeNames(); |
| |
| // Don't retain host binding listeners across tests. Set this up before initializing ThemeSupport as |
| // ThemeSupport adds a host binding listener. |
| Host.InspectorFrontendHost.InspectorFrontendHostInstance.events = new Common.ObjectWrapper.ObjectWrapper(); |
| |
| // Some unit tests exercise code that assumes a ThemeSupport instance is available. |
| // Run this in a beforeEach in case an individual test overrides it. |
| const setting = createFakeSetting('theme', 'default'); |
| ThemeSupport.ThemeSupport.instance({forceNew: true, setting}); |
| |
| startTrackingAsyncActivity(); |
| }); |
| |
| afterEach(async () => { |
| for (const key of Object.keys(Root.Runtime.hostConfig)) { |
| // @ts-expect-error |
| delete Root.Runtime.hostConfig[key]; |
| } |
| await cleanTestDOM(); |
| await checkForPendingActivity(); |
| resetHostConfig(); |
| sinon.restore(); |
| stopTrackingAsyncActivity(); |
| // Clear out any Sinon stubs or spies between individual tests. |
| }); |