chrome-devtools-frontend
Version:
Chrome DevTools UI
81 lines (66 loc) • 3.39 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 type * as SDK from '../../../core/sdk/sdk.js';
import * as Protocol from '../../../generated/protocol.js';
import {
getElementsWithinComponent,
getElementWithinComponent,
renderElementIntoDOM,
} from '../../../testing/DOMHelpers.js';
import {describeWithLocale} from '../../../testing/EnvironmentHelpers.js';
import * as NetworkComponents from './components.js';
describeWithLocale('RequestTrustTokensView', () => {
const mockId = 'mockId' as Protocol.Network.RequestId;
const makeRequest =
(params?: Protocol.Network.TrustTokenParams, result?: Protocol.Network.TrustTokenOperationDoneEvent) => {
return {trustTokenParams: () => params, trustTokenOperationDoneEvent: () => result} as
SDK.NetworkRequest.NetworkRequest;
};
const renderRequestTrustTokensView = (request: SDK.NetworkRequest.NetworkRequest) => {
const component = new NetworkComponents.RequestTrustTokensView.RequestTrustTokensView(request);
renderElementIntoDOM(component);
void component.render();
return component;
};
it('renders the RefreshPolicy for redemptions', () => {
const component = renderRequestTrustTokensView(makeRequest({
operation: Protocol.Network.TrustTokenOperationType.Redemption,
refreshPolicy: Protocol.Network.TrustTokenParamsRefreshPolicy.UseCached,
}));
const [typeSpan, refreshPolicySpan] =
getElementsWithinComponent(component, 'devtools-report-value.code', HTMLElement);
assert.strictEqual(typeSpan.textContent, 'Redemption');
assert.strictEqual(refreshPolicySpan.textContent, 'UseCached');
});
it('renders all issuers as a list', () => {
const expectedIssuers = ['example.org', 'foo.dev', 'bar.com'];
const component = renderRequestTrustTokensView(makeRequest({
operation: Protocol.Network.TrustTokenOperationType.Signing,
issuers: expectedIssuers,
} as Protocol.Network.TrustTokenParams));
const issuerElements = getElementsWithinComponent(component, 'ul.issuers-list > li', HTMLElement);
const actualIssuers = [...issuerElements].map(e => e.textContent);
assert.deepEqual(actualIssuers.sort(), expectedIssuers.sort());
});
it('renders a result section with success status for successful requests', () => {
const component = renderRequestTrustTokensView(makeRequest(undefined, {
status: Protocol.Network.TrustTokenOperationDoneEventStatus.Ok,
type: Protocol.Network.TrustTokenOperationType.Issuance,
requestId: mockId,
}));
const simpleText = getElementWithinComponent(component, 'span > strong', HTMLElement);
assert.exists(simpleText);
assert.strictEqual(simpleText.textContent, 'Success');
});
it('renders a result section with failure status for failed requests', () => {
const component = renderRequestTrustTokensView(makeRequest(undefined, {
status: Protocol.Network.TrustTokenOperationDoneEventStatus.BadResponse,
type: Protocol.Network.TrustTokenOperationType.Issuance,
requestId: mockId,
}));
const simpleText = getElementWithinComponent(component, 'span > strong', HTMLElement);
assert.exists(simpleText);
assert.strictEqual(simpleText.textContent, 'Failure');
});
});