Skip to content

Commit 0f71433

Browse files
Liviu RauDevtools-frontend LUCI CQ
authored andcommitted
Port application/session-storage_test to non-hosted
Bug: 416405554 Change-Id: I2b5f081771a601bbaa5bfeb11c3ec35e59467787 Reviewed-on: https://chromium-review.googlesource.com/c/devtools/devtools-frontend/+/6616444 Commit-Queue: Liviu Rau <liviurau@chromium.org> Reviewed-by: Alex Rudenko <alexrudenko@chromium.org>
1 parent fefb348 commit 0f71433

5 files changed

Lines changed: 90 additions & 85 deletions

File tree

test/e2e/application/BUILD.gn

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,6 @@ node_ts_library("application") {
88
sources = [
99
"frame-tree_test.ts",
1010
"service-worker-update_test.ts",
11-
"session-storage_test.ts",
1211
"shared-storage_test.ts",
1312
"storage_test.ts",
1413
"window-controls_test.ts",

test/e2e/application/session-storage_test.ts

Lines changed: 0 additions & 57 deletions
This file was deleted.

test/e2e/helpers/application-helpers.ts

Lines changed: 37 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -138,27 +138,32 @@ export async function navigateToCookiesForTopDomain(
138138
undefined, devToolsPage);
139139
}
140140

141-
export async function navigateToSessionStorageForTopDomain() {
141+
export async function navigateToSessionStorageForTopDomain(
142+
devToolsPage = getBrowserAndPagesWrappers().devToolsPage,
143+
inspectedPage = getBrowserAndPagesWrappers().inspectedPage) {
142144
const SESSION_STORAGE_SELECTOR = '[aria-label="Session storage"].parent';
143-
const DOMAIN_SELECTOR = `${SESSION_STORAGE_SELECTOR} + ol > [aria-label="https://localhost:${getTestServerPort()}"]`;
144-
await doubleClickTreeItem(SESSION_STORAGE_SELECTOR);
145-
await doubleClickTreeItem(DOMAIN_SELECTOR);
145+
const DOMAIN_SELECTOR = `${SESSION_STORAGE_SELECTOR} + ol > [aria-label="${inspectedPage.domain()}"]`;
146+
await doubleClickTreeItem(SESSION_STORAGE_SELECTOR, devToolsPage);
147+
await doubleClickTreeItem(DOMAIN_SELECTOR, devToolsPage);
146148

147-
await expectVeEvents([
148-
veClick('Panel: resources > Pane: sidebar > Tree > TreeItem: storage > TreeItem: session-storage'),
149-
veImpressionsUnder(
150-
'Panel: resources',
151-
[
152-
veImpression(
153-
'Pane', 'session-storage', [veImpression('Section', 'empty-view', [veImpression('Link', 'learn-more')])]),
154-
veImpressionsUnder(
155-
'Pane: sidebar > Tree > TreeItem: storage > TreeItem: session-storage',
156-
[veImpression('TreeItem', 'session-storage-for-domain')]),
157-
]),
158-
veClick(
159-
'Panel: resources > Pane: sidebar > Tree > TreeItem: storage > TreeItem: session-storage > TreeItem: session-storage-for-domain'),
160-
veImpressionsUnder('Panel: resources', [veImpressionForSessionStorageView()]),
161-
]);
149+
await expectVeEvents(
150+
[
151+
veClick('Panel: resources > Pane: sidebar > Tree > TreeItem: storage > TreeItem: session-storage'),
152+
veImpressionsUnder(
153+
'Panel: resources',
154+
[
155+
veImpression(
156+
'Pane', 'session-storage',
157+
[veImpression('Section', 'empty-view', [veImpression('Link', 'learn-more')])]),
158+
veImpressionsUnder(
159+
'Pane: sidebar > Tree > TreeItem: storage > TreeItem: session-storage',
160+
[veImpression('TreeItem', 'session-storage-for-domain')]),
161+
]),
162+
veClick(
163+
'Panel: resources > Pane: sidebar > Tree > TreeItem: storage > TreeItem: session-storage > TreeItem: session-storage-for-domain'),
164+
veImpressionsUnder('Panel: resources', [veImpressionForSessionStorageView()]),
165+
],
166+
undefined, devToolsPage);
162167
}
163168

164169
const SHARED_STORAGE_SELECTOR = '[aria-label="Shared storage"].parent';
@@ -261,13 +266,17 @@ export async function clearStorageItems(devToolsPage = getBrowserAndPagesWrapper
261266
await devToolsPage.click('#storage-items-delete-all');
262267
}
263268

264-
export async function selectStorageItemAtIndex(index: number) {
265-
await waitForFunction(async () => {
269+
export async function selectStorageItemAtIndex(
270+
index: number, devToolsPage = getBrowserAndPagesWrappers().devToolsPage) {
271+
await devToolsPage.waitForFunction(async () => {
266272
try {
267273
const dataGridNodes = await getDataGridRows(
268-
index + 1, await waitFor('.storage-view devtools-data-grid'), /* matchExactNumberOfRows=*/ false);
274+
index + 1, await devToolsPage.waitFor('.storage-view devtools-data-grid'), /* matchExactNumberOfRows=*/ false,
275+
devToolsPage);
269276
await dataGridNodes[index][1].click();
270-
await expectVeEvents([veClick('Panel: resources > Pane: session-storage-data > TableRow > TableCell: value')]);
277+
await expectVeEvents(
278+
[veClick('Panel: resources > Pane: session-storage-data > TableRow > TableCell: value')], undefined,
279+
devToolsPage);
271280
} catch (error) {
272281
if (error.message === 'Node is detached from document') {
273282
return false;
@@ -278,10 +287,11 @@ export async function selectStorageItemAtIndex(index: number) {
278287
});
279288
}
280289

281-
export async function deleteSelectedStorageItem() {
282-
await click('[title="Delete Selected"]');
283-
await expectVeEvents([veClick(
284-
'Panel: resources > Pane: session-storage-data > Toolbar > Action: storage-items-view.delete-selected')]);
290+
export async function deleteSelectedStorageItem(devToolsPage = getBrowserAndPagesWrappers().devToolsPage) {
291+
await devToolsPage.click('[title="Delete Selected"]');
292+
await expectVeEvents(
293+
[veClick('Panel: resources > Pane: session-storage-data > Toolbar > Action: storage-items-view.delete-selected')],
294+
undefined, devToolsPage);
285295
}
286296

287297
export async function selectCookieByName(name: string, devToolsPage = getBrowserAndPagesWrappers().devToolsPage) {

test/e2e_non_hosted/application/BUILD.gn

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@ ts_e2e_library("application") {
1010
"manifest_test.ts",
1111
"reporting-api_test.ts",
1212
"service-worker-network_test.ts",
13+
"session-storage_test.ts",
1314
]
1415

1516
deps = [
Lines changed: 52 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,52 @@
1+
// Copyright 2020 The Chromium Authors. All rights reserved.
2+
// Use of this source code is governed by a BSD-style license that can be
3+
// found in the LICENSE file.
4+
5+
import {assert} from 'chai';
6+
7+
import {
8+
deleteSelectedStorageItem,
9+
getStorageItemsData,
10+
navigateToApplicationTab,
11+
navigateToSessionStorageForTopDomain,
12+
selectStorageItemAtIndex,
13+
} from '../../e2e/helpers/application-helpers.js';
14+
15+
describe('The Application Tab', () => {
16+
// TODO (liviurau): Update navigateToApplicationTab helper to work in docked
17+
// mode and remove the setup below.
18+
setup({dockingMode: 'undocked'});
19+
20+
it('shows Session Storage keys and values', async ({devToolsPage, inspectedPage}) => {
21+
await navigateToApplicationTab('session-storage', devToolsPage, inspectedPage);
22+
await navigateToSessionStorageForTopDomain(devToolsPage, inspectedPage);
23+
const dataGridRowValues = await getStorageItemsData(['key', 'value'], 2, devToolsPage);
24+
assert.deepEqual(dataGridRowValues, [
25+
{
26+
key: 'firstKey',
27+
value: 'firstValue',
28+
},
29+
{
30+
key: 'secondKey',
31+
value: '{"field":"complexValue","primitive":2}',
32+
},
33+
]);
34+
});
35+
36+
it('can delete selected items', async ({devToolsPage, inspectedPage}) => {
37+
await navigateToApplicationTab('session-storage', devToolsPage, inspectedPage);
38+
39+
await navigateToSessionStorageForTopDomain(devToolsPage, inspectedPage);
40+
41+
await selectStorageItemAtIndex(0, devToolsPage);
42+
await deleteSelectedStorageItem(devToolsPage);
43+
44+
const dataGridRowValues = await getStorageItemsData(['key', 'value'], 1, devToolsPage);
45+
assert.deepEqual(dataGridRowValues, [
46+
{
47+
key: 'secondKey',
48+
value: '{"field":"complexValue","primitive":2}',
49+
},
50+
]);
51+
});
52+
});

0 commit comments

Comments
 (0)