blob: 5e89b1488ffe66228f7439871972526d6276de29 [file] [log] [blame]
// 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');
});
});
});