@@ -5,6 +5,7 @@ import * as Common from '../../core/common/common.js';
55import * as Host from '../../core/host/host.js' ;
66import * as i18n from '../../core/i18n/i18n.js' ;
77import * as Platform from '../../core/platform/platform.js' ;
8+ import { assertNotNullOrUndefined } from '../../core/platform/platform.js' ;
89import * as Root from '../../core/root/root.js' ;
910import * as SDK from '../../core/sdk/sdk.js' ;
1011import * as Protocol from '../../generated/protocol.js' ;
@@ -13,13 +14,10 @@ import * as Logs from '../../models/logs/logs.js';
1314import {
1415 findMenuItemWithLabel ,
1516 getContextMenuForElement ,
17+ getMenu ,
1618 getMenuItemLabels ,
1719} from '../../testing/ContextMenuHelpers.js' ;
18- import {
19- dispatchClickEvent ,
20- dispatchMouseUpEvent ,
21- raf ,
22- } from '../../testing/DOMHelpers.js' ;
20+ import { dispatchClickEvent , raf } from '../../testing/DOMHelpers.js' ;
2321import { createTarget , registerNoopActions , stubNoopSettings } from '../../testing/EnvironmentHelpers.js' ;
2422import { expectCalled } from '../../testing/ExpectStubCall.js' ;
2523import { stubFileManager } from '../../testing/FileManagerHelpers.js' ;
@@ -386,42 +384,45 @@ describeWithMockConnection('NetworkLogView', () => {
386384 rootNode . children . map ( n => ( n as Network . NetworkDataGridNode . NetworkNode ) . request ( ) ?. url ( ) ) ,
387385 [ urlString `chrome-extension://url1` , urlString `url2` ] ) ;
388386
389- const dropdown = await openMoreTypesDropdown ( filterBar , networkLogView ) ;
387+ const dropdown = await getMoreTypesDropdown ( filterBar ) ;
390388 if ( ! dropdown ) {
391389 return ;
392390 }
393- const softMenu = getSoftMenu ( ) ;
394- const hideExtensionURL = getDropdownItem ( softMenu , 'Hide extension URLs' ) ;
395- assert . isFalse ( hideExtensionURL . hasAttribute ( 'checked' ) ) ;
396- dispatchMouseUpEvent ( hideExtensionURL ) ;
397- await raf ( ) ;
398- assert . isTrue ( hideExtensionURL . hasAttribute ( 'checked' ) ) ;
391+ let softMenu = getMenu ( ( ) => dropdown . click ( ) ) ;
392+ let hideExtensionURL = getDropdownItem ( softMenu , 'Hide extension URLs' ) ;
393+ assert . isFalse ( hideExtensionURL . buildDescriptor ( ) . checked ) ;
394+ softMenu . invokeHandler ( hideExtensionURL . id ( ) ) ;
395+ softMenu . discard ( ) ;
396+
397+ softMenu = getMenu ( ( ) => dropdown . click ( ) ) ;
398+ hideExtensionURL = getDropdownItem ( softMenu , 'Hide extension URLs' ) ;
399+ assert . isTrue ( hideExtensionURL . buildDescriptor ( ) . checked ) ;
399400
400401 assert . deepEqual (
401402 rootNode . children . map ( n => ( n as Network . NetworkDataGridNode . NetworkNode ) . request ( ) ?. url ( ) ) , [ urlString `url2` ] ) ;
402403
403- dropdown . discard ( ) ;
404+ softMenu . discard ( ) ;
404405 } ) ;
405406
406407 it ( 'displays correct count for more filters' , async ( ) => {
407408 Root . Runtime . experiments . enableForTest ( Root . Runtime . ExperimentName . NETWORK_PANEL_FILTER_BAR_REDESIGN ) ;
408409 let filterBar ;
409410 ( { filterBar, networkLogView} = createEnvironment ( ) ) ;
410- const dropdown = await openMoreTypesDropdown ( filterBar , networkLogView ) ;
411+ const dropdown = await getMoreTypesDropdown ( filterBar ) ;
411412 if ( ! dropdown ) {
412413 return ;
413414 }
414415
415416 assert . strictEqual ( getMoreFiltersActiveCount ( filterBar ) , '0' ) ;
416417 assert . isTrue ( getCountAdorner ( filterBar ) ?. classList . contains ( 'hidden' ) ) ;
417418
418- const softMenu = getSoftMenu ( ) ;
419+ const softMenu = getMenu ( ( ) => dropdown . click ( ) ) ;
419420 await selectMoreFiltersOption ( softMenu , 'Hide extension URLs' ) ;
420421
421422 assert . strictEqual ( getMoreFiltersActiveCount ( filterBar ) , '1' ) ;
422423 assert . isFalse ( getCountAdorner ( filterBar ) ?. classList . contains ( 'hidden' ) ) ;
423424
424- dropdown . discard ( ) ;
425+ softMenu . discard ( ) ;
425426 } ) ;
426427
427428 it ( 'can filter requests with blocked response cookies from checkbox' , async ( ) => {
@@ -460,67 +461,66 @@ describeWithMockConnection('NetworkLogView', () => {
460461 rootNode . children . map ( n => ( n as Network . NetworkDataGridNode . NetworkNode ) . request ( ) ?. url ( ) ) ,
461462 [ urlString `url1` , urlString `url2` ] ) ;
462463
463- const dropdown = await openMoreTypesDropdown ( filterBar , networkLogView ) ;
464+ const dropdown = await getMoreTypesDropdown ( filterBar ) ;
464465 if ( ! dropdown ) {
465466 return ;
466467 }
467- const softMenu = getSoftMenu ( ) ;
468- const blockedResponseCookies = getDropdownItem ( softMenu , 'Blocked response cookies' ) ;
469- assert . isFalse ( blockedResponseCookies . hasAttribute ( 'checked' ) ) ;
470- dispatchMouseUpEvent ( blockedResponseCookies ) ;
471- await raf ( ) ;
472- assert . isTrue ( blockedResponseCookies . hasAttribute ( 'checked' ) ) ;
468+ let softMenu = getMenu ( ( ) => dropdown . click ( ) ) ;
469+ let blockedResponseCookies = getDropdownItem ( softMenu , 'Blocked response cookies' ) ;
470+ assert . isFalse ( blockedResponseCookies . buildDescriptor ( ) . checked ) ;
471+ softMenu . invokeHandler ( blockedResponseCookies . id ( ) ) ;
472+ softMenu . discard ( ) ;
473+
474+ softMenu = getMenu ( ( ) => dropdown . click ( ) ) ;
475+ blockedResponseCookies = getDropdownItem ( softMenu , 'Blocked response cookies' ) ;
476+ assert . isTrue ( blockedResponseCookies . buildDescriptor ( ) . checked ) ;
473477
474478 assert . deepEqual ( rootNode . children . map ( n => ( n as Network . NetworkDataGridNode . NetworkNode ) . request ( ) ?. url ( ) ) , [
475479 urlString `url1` ,
476480 ] ) ;
477481
478- dropdown . discard ( ) ;
482+ softMenu . discard ( ) ;
479483 } ) ;
480484
481485 it ( 'lists selected options in more filters tooltip' , async ( ) => {
482486 Root . Runtime . experiments . enableForTest ( Root . Runtime . ExperimentName . NETWORK_PANEL_FILTER_BAR_REDESIGN ) ;
483487 let filterBar ;
484488 ( { filterBar, networkLogView} = createEnvironment ( ) ) ;
485489
486- const dropdown = await openMoreTypesDropdown ( filterBar , networkLogView ) ;
490+ const dropdown = await getMoreTypesDropdown ( filterBar ) ;
487491 assert . exists ( dropdown ) ;
488492
489- const button = dropdown . element ( ) . querySelector ( '.toolbar-button' ) ;
490- assert . instanceOf ( button , HTMLElement ) ;
491- assert . strictEqual ( button . title , 'Show only/hide requests' ) ;
493+ assert . strictEqual ( dropdown . title , 'Show only/hide requests' ) ;
492494
493- const softMenu = getSoftMenu ( ) ;
495+ const softMenu = getMenu ( ( ) => dropdown . click ( ) ) ;
494496 await selectMoreFiltersOption ( softMenu , 'Blocked response cookies' ) ;
495497 await selectMoreFiltersOption ( softMenu , 'Hide extension URLs' ) ;
496498
497- assert . strictEqual ( button . title , 'Hide extension URLs, Blocked response cookies' ) ;
499+ assert . strictEqual ( dropdown . title , 'Hide extension URLs, Blocked response cookies' ) ;
498500
499- dropdown . discard ( ) ;
501+ softMenu . discard ( ) ;
500502 } ) ;
501503
502504 it ( 'updates tooltip to default when more filters option deselected' , async ( ) => {
503505 Root . Runtime . experiments . enableForTest ( Root . Runtime . ExperimentName . NETWORK_PANEL_FILTER_BAR_REDESIGN ) ;
504506 let filterBar ;
505507 ( { filterBar, networkLogView} = createEnvironment ( ) ) ;
506508
507- const dropdown = await openMoreTypesDropdown ( filterBar , networkLogView ) ;
509+ const dropdown = await getMoreTypesDropdown ( filterBar ) ;
508510 assert . exists ( dropdown ) ;
509511
510- const button = dropdown . element ( ) . querySelector ( '.toolbar-button' ) ;
511- assert . instanceOf ( button , HTMLElement ) ;
512- assert . strictEqual ( button . title , 'Show only/hide requests' ) ;
512+ assert . strictEqual ( dropdown . title , 'Show only/hide requests' ) ;
513513
514- const softMenu = getSoftMenu ( ) ;
514+ const softMenu = getMenu ( ( ) => dropdown . click ( ) ) ;
515515 await selectMoreFiltersOption ( softMenu , 'Blocked response cookies' ) ;
516516
517- assert . strictEqual ( button . title , 'Blocked response cookies' ) ;
517+ assert . strictEqual ( dropdown . title , 'Blocked response cookies' ) ;
518518
519519 await selectMoreFiltersOption ( softMenu , 'Blocked response cookies' ) ;
520520
521- assert . strictEqual ( button . title , 'Show only/hide requests' ) ;
521+ assert . strictEqual ( dropdown . title , 'Show only/hide requests' ) ;
522522
523- dropdown . discard ( ) ;
523+ softMenu . discard ( ) ;
524524 } ) ;
525525
526526 it ( 'can remove requests' , async ( ) => {
@@ -977,15 +977,9 @@ function getCheckbox(filterBar: UI.FilterBar.FilterBar, title: string) {
977977 return checkbox ;
978978}
979979
980- async function openMoreTypesDropdown (
981- filterBar : UI . FilterBar . FilterBar , networkLogView : Network . NetworkLogView . NetworkLogView ) :
982- Promise < Network . NetworkLogView . MoreFiltersDropDownUI | undefined > {
983- const button = filterBar . element . querySelector ( '[aria-label="Show only/hide requests dropdown"]' )
984- ?. querySelector ( '.toolbar-button' ) ;
985- button ?. dispatchEvent ( new Event ( 'click' ) ) ;
986- await raf ( ) ;
987- const dropdown = networkLogView . getMoreFiltersDropdown ( ) ;
988- return dropdown ;
980+ async function getMoreTypesDropdown ( filterBar : UI . FilterBar . FilterBar ) : Promise < HTMLElement > {
981+ return filterBar . element . querySelector ( '[aria-label="Show only/hide requests dropdown"]' )
982+ ?. querySelector ( '.toolbar-button' ) as HTMLElement ;
989983}
990984
991985function getCountAdorner ( filterBar : UI . FilterBar . FilterBar ) : HTMLElement | null {
@@ -1000,22 +994,15 @@ function getMoreFiltersActiveCount(filterBar: UI.FilterBar.FilterBar): string {
1000994 return count ;
1001995}
1002996
1003- function getSoftMenu ( ) : HTMLElement {
1004- const container = document . querySelector ( 'div[data-devtools-glass-pane]' ) ;
1005- const softMenu = container ! . shadowRoot ! . querySelector ( '.soft-context-menu' ) ;
1006- assert . instanceOf ( softMenu , HTMLElement ) ;
1007- return softMenu ;
1008- }
1009-
1010- function getDropdownItem ( softMenu : HTMLElement , label : string ) {
1011- const item = softMenu ?. querySelector ( `[aria-label^="${ label } "]` ) ;
1012- assert . instanceOf ( item , HTMLElement ) ;
997+ function getDropdownItem ( softMenu : UI . ContextMenu . ContextMenu , label : string ) {
998+ const item = findMenuItemWithLabel ( softMenu . defaultSection ( ) , label ) ;
999+ assertNotNullOrUndefined ( item ) ;
10131000 return item ;
10141001}
10151002
1016- async function selectMoreFiltersOption ( softMenu : HTMLElement , option : string ) {
1003+ async function selectMoreFiltersOption ( softMenu : UI . ContextMenu . ContextMenu , option : string ) {
10171004 const item = getDropdownItem ( softMenu , option ) ;
1018- dispatchMouseUpEvent ( item ) ;
1005+ softMenu . invokeHandler ( item . id ( ) ) ;
10191006 await raf ( ) ;
10201007}
10211008
0 commit comments