chrome-devtools-frontend
Version:
Chrome DevTools UI
65 lines (52 loc) • 3.17 kB
text/typescript
// 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.
import * as Platform from '../../core/platform/platform.js';
import * as SDK from '../../core/sdk/sdk.js';
import type * as Protocol from '../../generated/protocol.js';
import {StubIssue} from '../../testing/StubIssue.js';
import * as IssuesManager from '../issues_manager/issues_manager.js';
describe('issuesAssociatedWith', () => {
const requestId1 = 'r0' as Protocol.Network.RequestId;
const requestId2 = 'r1' as Protocol.Network.RequestId;
it('should return no issues if no issues exist', () => {
const request = SDK.NetworkRequest.NetworkRequest.create(
requestId1, Platform.DevToolsPath.EmptyUrlString, Platform.DevToolsPath.EmptyUrlString, null, null, null);
assert.lengthOf(IssuesManager.RelatedIssue.issuesAssociatedWith([], request), 0);
});
it('should return no issues if issues dont affect any resources', () => {
const issue = new StubIssue('code', [], []);
const request = SDK.NetworkRequest.NetworkRequest.create(
requestId1, Platform.DevToolsPath.EmptyUrlString, Platform.DevToolsPath.EmptyUrlString, null, null, null);
assert.lengthOf(IssuesManager.RelatedIssue.issuesAssociatedWith([issue], request), 0);
});
it('should correctly filter issues associated with a given request id', () => {
const issue1 = StubIssue.createFromRequestIds([requestId1, requestId2]);
const issue2 = StubIssue.createFromRequestIds([requestId1]);
const issues = [issue1, issue2];
const request1 = SDK.NetworkRequest.NetworkRequest.create(
requestId1, Platform.DevToolsPath.EmptyUrlString, Platform.DevToolsPath.EmptyUrlString, null, null, null);
const request2 = SDK.NetworkRequest.NetworkRequest.create(
requestId2, Platform.DevToolsPath.EmptyUrlString, Platform.DevToolsPath.EmptyUrlString, null, null, null);
assert.deepEqual(IssuesManager.RelatedIssue.issuesAssociatedWith(issues, request1), issues);
assert.deepEqual(IssuesManager.RelatedIssue.issuesAssociatedWith(issues, request2), [issue1]);
});
function createTestCookie(name: string): SDK.Cookie.Cookie {
const cookie = new SDK.Cookie.Cookie(name, '');
cookie.addAttribute(SDK.Cookie.Attribute.DOMAIN, '');
cookie.addAttribute(SDK.Cookie.Attribute.PATH, '');
return cookie;
}
it('should correctly filter issues associated with a cookie', () => {
const issue1 = StubIssue.createFromCookieNames(['c1', 'c2']);
const issue2 = StubIssue.createFromCookieNames(['c3']);
const issue3 = StubIssue.createFromCookieNames(['c1']);
const issues = [issue1, issue2, issue3];
const cookie1 = createTestCookie('c1');
const cookie2 = createTestCookie('c2');
const cookie3 = createTestCookie('c3');
assert.deepEqual(IssuesManager.RelatedIssue.issuesAssociatedWith(issues, cookie1), [issue1, issue3]);
assert.deepEqual(IssuesManager.RelatedIssue.issuesAssociatedWith(issues, cookie2), [issue1]);
assert.deepEqual(IssuesManager.RelatedIssue.issuesAssociatedWith(issues, cookie3), [issue2]);
});
});