blob: 773d85408ddba897ec0ea9c2850f9faa14409a29 [file]
// Copyright 2026 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
import {
navigateToApplicationTab,
} from '../helpers/application-helpers.js';
import type {DevToolsPage} from '../shared/frontend-helper.js';
import type {InspectedPage} from '../shared/target-helper.js';
export async function navigateToBucketViaDbMetadata(
devToolsPage: DevToolsPage, inspectedPage: InspectedPage, subPanel: string, dbSelector: string) {
await navigateToApplicationTab('storage-buckets-link', devToolsPage, inspectedPage);
await devToolsPage.bringToFront();
await devToolsPage.reload();
await devToolsPage.doubleClick(`[aria-label="${subPanel}"]`);
const db = await devToolsPage.waitForAria(dbSelector);
await db.click();
await devToolsPage.waitFor('devtools-report');
const bucketNameLinkSelector = 'devtools-report-value devtools-link';
await devToolsPage.waitForVisible(bucketNameLinkSelector);
await devToolsPage.click(bucketNameLinkSelector);
await devToolsPage.waitFor('devtools-button[aria-label="Delete bucket"]');
}
describe('The Application Tab', () => {
setup({
dockingMode: 'undocked',
enabledFeatures: ['StorageBuckets'],
});
it('reveals storage bucket when clicking its name in IndexedDB metadata', async ({devToolsPage, inspectedPage}) => {
await navigateToBucketViaDbMetadata(devToolsPage, inspectedPage, 'IndexedDB', 'test-db');
});
it('reveals storage bucket when clicking its name in Cache Storage metadata',
async ({devToolsPage, inspectedPage}) => {
await navigateToBucketViaDbMetadata(
devToolsPage, inspectedPage, 'Cache storage', `test-cache - ${inspectedPage.domain()}/`);
});
});