UNPKG

chrome-devtools-frontend

Version:
55 lines (44 loc) 2.36 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 Common from '../../../../core/common/common.js'; import * as SDK from '../../../../core/sdk/sdk.js'; import {dispatchClickEvent} from '../../../../testing/DOMHelpers.js'; import {describeWithEnvironment} from '../../../../testing/EnvironmentHelpers.js'; import * as ObjectUI from './object_ui.js'; describe('ObjectPropertiesSection', () => { describeWithEnvironment('ObjectPropertiesSection', () => { describe('appendMemoryIcon', () => { it('appends a memory icon for inspectable object types', () => { const object = sinon.createStubInstance(SDK.RemoteObject.RemoteObject); object.isLinearMemoryInspectable.returns(true); const div = document.createElement('div'); assert.isFalse(div.hasChildNodes()); ObjectUI.ObjectPropertiesSection.ObjectPropertiesSection.appendMemoryIcon(div, object); assert.isTrue(div.hasChildNodes()); const icon = div.querySelector('devtools-icon'); assert.isNotNull(icon); }); it('doesn\'t append a memory icon for non-inspectable object types', () => { const object = sinon.createStubInstance(SDK.RemoteObject.RemoteObject); object.isLinearMemoryInspectable.returns(false); const div = document.createElement('div'); assert.isFalse(div.hasChildNodes()); ObjectUI.ObjectPropertiesSection.ObjectPropertiesSection.appendMemoryIcon(div, object); assert.isFalse(div.hasChildNodes()); }); it('triggers the correct revealer upon \'click\'', () => { const object = sinon.createStubInstance(SDK.RemoteObject.RemoteObject); object.isLinearMemoryInspectable.returns(true); const expression = 'foo'; const div = document.createElement('div'); ObjectUI.ObjectPropertiesSection.ObjectPropertiesSection.appendMemoryIcon(div, object, expression); const icon = div.querySelector('devtools-icon'); assert.exists(icon); const reveal = sinon.stub(Common.Revealer.RevealerRegistry.prototype, 'reveal'); dispatchClickEvent(icon); sinon.assert.calledOnceWithMatch(reveal, sinon.match({object, expression}), false); }); }); }); });