UNPKG

chrome-devtools-frontend

Version:
46 lines (36 loc) 1.93 kB
// Copyright 2022 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 * as SDK from '../../core/sdk/sdk.js'; import type * as Protocol from '../../generated/protocol.js'; import {createTarget} from '../../testing/EnvironmentHelpers.js'; import {describeWithMockConnection} from '../../testing/MockConnection.js'; import * as Resources from './application.js'; describeWithMockConnection('DOMStorageModel', () => { let domStorageModel: Resources.DOMStorageModel.DOMStorageModel; let domStorage: Resources.DOMStorageModel.DOMStorage; let target: SDK.Target.Target; const initKey = 'storageKey1'; beforeEach(() => { target = createTarget(); domStorageModel = new Resources.DOMStorageModel.DOMStorageModel(target); domStorage = new Resources.DOMStorageModel.DOMStorage(domStorageModel, initKey, true); }); it('DOMStorage is instantiated correctly', () => { assert.strictEqual(domStorage.storageKey, initKey); assert.deepEqual(domStorage.id, {storageKey: initKey, isLocalStorage: true} as Protocol.DOMStorage.StorageId); }); it('StorageKey events trigger addition/removal of DOMStorage', () => { const testKey = 'storageKey'; const testId = {storageKey: testKey, isLocalStorage: true} as Protocol.DOMStorage.StorageId; domStorageModel.enable(); const manager = target.model(SDK.StorageKeyManager.StorageKeyManager); assert.exists(manager); assert.isEmpty(domStorageModel.storages()); manager.dispatchEventToListeners(SDK.StorageKeyManager.Events.STORAGE_KEY_ADDED, testKey); assert.exists(domStorageModel.storageForId(testId)); assert.exists(domStorageModel.storageForId(testId)); manager.dispatchEventToListeners(SDK.StorageKeyManager.Events.STORAGE_KEY_REMOVED, testKey); assert.isUndefined(domStorageModel.storageForId(testId)); }); });