| // Copyright 2023 The Chromium Authors |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| |
| import * as Protocol from '../../generated/protocol.js'; |
| |
| import * as SDK from './sdk.js'; |
| |
| describe('CSSStyleSheetHeader', () => { |
| describe('createPageResourceLoadInitiator', () => { |
| const frameId = 'Frame#123' as Protocol.Page.FrameId; |
| const styleSheetId = 'StyleSheet#123' as Protocol.DOM.StyleSheetId; |
| const sourceURL = 'http://localhost/style.css'; |
| |
| it('yields the correct frame ID', () => { |
| const target = sinon.createStubInstance(SDK.Target.Target); |
| const cssModel = sinon.createStubInstance(SDK.CSSModel.CSSModel); |
| cssModel.target.returns(target); |
| const cssStyleSheetHeader = new SDK.CSSStyleSheetHeader.CSSStyleSheetHeader(cssModel, { |
| styleSheetId, |
| frameId, |
| sourceURL, |
| origin: Protocol.CSS.StyleSheetOrigin.Regular, |
| title: 'style.css', |
| disabled: false, |
| isInline: false, |
| isMutable: false, |
| isConstructed: false, |
| startLine: 0, |
| startColumn: 0, |
| length: 10, |
| endLine: 1, |
| endColumn: 8, |
| }); |
| assert.strictEqual(cssStyleSheetHeader.createPageResourceLoadInitiator().frameId, 'Frame#123'); |
| }); |
| |
| it('yields the correct initiator URL', () => { |
| const target = sinon.createStubInstance(SDK.Target.Target); |
| const cssModel = sinon.createStubInstance(SDK.CSSModel.CSSModel); |
| cssModel.target.returns(target); |
| const cssStyleSheetHeader = new SDK.CSSStyleSheetHeader.CSSStyleSheetHeader(cssModel, { |
| styleSheetId, |
| frameId, |
| sourceURL, |
| origin: Protocol.CSS.StyleSheetOrigin.Regular, |
| title: 'style.css', |
| disabled: false, |
| isInline: false, |
| isMutable: false, |
| isConstructed: false, |
| startLine: 0, |
| startColumn: 0, |
| length: 10, |
| endLine: 1, |
| endColumn: 8, |
| }); |
| assert.strictEqual(cssStyleSheetHeader.createPageResourceLoadInitiator().initiatorUrl, sourceURL); |
| }); |
| |
| it('yields an empty initiator URL when //# sourceMappingURL is present', () => { |
| const target = sinon.createStubInstance(SDK.Target.Target); |
| const cssModel = sinon.createStubInstance(SDK.CSSModel.CSSModel); |
| cssModel.target.returns(target); |
| const cssStyleSheetHeader = new SDK.CSSStyleSheetHeader.CSSStyleSheetHeader(cssModel, { |
| styleSheetId, |
| frameId, |
| sourceURL, |
| origin: Protocol.CSS.StyleSheetOrigin.Regular, |
| title: 'style.css', |
| disabled: false, |
| hasSourceURL: true, |
| isInline: false, |
| isMutable: false, |
| isConstructed: false, |
| startLine: 0, |
| startColumn: 0, |
| length: 10, |
| endLine: 1, |
| endColumn: 8, |
| }); |
| assert.isEmpty(cssStyleSheetHeader.createPageResourceLoadInitiator().initiatorUrl); |
| }); |
| |
| it('yields the correct target', () => { |
| const target = sinon.createStubInstance(SDK.Target.Target); |
| const cssModel = sinon.createStubInstance(SDK.CSSModel.CSSModel); |
| cssModel.target.returns(target); |
| const cssStyleSheetHeader = new SDK.CSSStyleSheetHeader.CSSStyleSheetHeader(cssModel, { |
| styleSheetId, |
| frameId, |
| sourceURL, |
| origin: Protocol.CSS.StyleSheetOrigin.Regular, |
| title: 'style.css', |
| disabled: false, |
| isInline: false, |
| isMutable: false, |
| isConstructed: false, |
| startLine: 0, |
| startColumn: 0, |
| length: 10, |
| endLine: 1, |
| endColumn: 8, |
| }); |
| assert.strictEqual(cssStyleSheetHeader.createPageResourceLoadInitiator().target, target); |
| }); |
| }); |
| |
| describe('resourceURL()', () => { |
| const frameId = '123' as Protocol.Page.FrameId; |
| const styleSheetId = '456' as Protocol.DOM.StyleSheetId; |
| const sourceURL = 'http://localhost/style.css'; |
| |
| it('returns a unique resourceURL for inspector originated stylesheet', () => { |
| const target = sinon.createStubInstance(SDK.Target.Target); |
| const cssModel = sinon.createStubInstance(SDK.CSSModel.CSSModel); |
| cssModel.target.returns(target); |
| const cssStyleSheetHeader = new SDK.CSSStyleSheetHeader.CSSStyleSheetHeader(cssModel, { |
| styleSheetId, |
| frameId, |
| sourceURL, |
| origin: Protocol.CSS.StyleSheetOrigin.Inspector, |
| title: 'my-frame', |
| disabled: false, |
| isInline: false, |
| isMutable: false, |
| isConstructed: false, |
| startLine: 0, |
| startColumn: 0, |
| length: 10, |
| endLine: 1, |
| endColumn: 8, |
| }); |
| assert.strictEqual(cssStyleSheetHeader.resourceURL(), 'inspector://inspector-stylesheet#456'); |
| }); |
| }); |
| }); |