@@ -16,73 +16,81 @@ add_task(async function testMenus() {
1616 ensureReportBrokenSitePreffedOff ( ) ;
1717
1818 const appMenu = AppMenu ( ) ;
19- const helpMenu = HelpMenu ( ) ;
20- const protectionsPanel = ProtectionsPanel ( ) ;
19+ const menus = [ appMenu , ProtectionsPanel ( ) , HelpMenu ( ) ] ;
20+
21+ async function forceMenuItemStateUpdate ( ) {
22+ ReportBrokenSite . enableOrDisableMenuitems ( window ) ;
2123
22- async function ensure ( menu , fn , test ) {
2324 // the hidden/disabled state of all of the menuitems may not update until one
2425 // is rendered; then the related <command>'s state is propagated to them all.
25- await menu . open ( ) ;
26- await menu . close ( ) ;
27-
28- await menu . open ( ) ;
29- fn ( menu . reportBrokenSite , `${ fn . name } (${ menu . menuDescription } ) ${ test } - ` ) ;
30- await menu . close ( ) ;
26+ await appMenu . open ( ) ;
27+ await appMenu . close ( ) ;
3128 }
3229
3330 await BrowserTestUtils . withNewTab ( "about:blank" , async function ( ) {
34- ReportBrokenSite . enableOrDisableMenuitems ( window ) ;
35- const test = "on invalid page when preffed off" ;
36- await ensure ( appMenu , isMenuItemDisabled , test ) ;
37- await ensure ( helpMenu , isMenuItemDisabled , test ) ;
38- ensureProtectionsPanelHidden ( test ) ;
31+ await forceMenuItemStateUpdate ( ) ;
32+ for ( const { menuDescription, reportBrokenSite } of menus ) {
33+ isMenuItemHidden (
34+ reportBrokenSite ,
35+ `${ menuDescription } option hidden on invalid page when preffed off`
36+ ) ;
37+ }
3938 } ) ;
4039
4140 await BrowserTestUtils . withNewTab ( REPORTABLE_PAGE_URL , async function ( ) {
42- ReportBrokenSite . enableOrDisableMenuitems ( window ) ;
43- const test =
44- "on valid page when preffed off (fallback to original reporter)" ;
45- await ensure ( appMenu , isMenuItemEnabled , test ) ;
46- await ensure ( helpMenu , isMenuItemEnabled , test ) ;
47- await ensure ( protectionsPanel , isMenuItemEnabled , test ) ;
41+ await forceMenuItemStateUpdate ( ) ;
42+ for ( const { menuDescription, reportBrokenSite } of menus ) {
43+ isMenuItemHidden (
44+ reportBrokenSite ,
45+ `${ menuDescription } option hidden on valid page when preffed off`
46+ ) ;
47+ }
4848 } ) ;
4949
5050 ensureReportBrokenSitePreffedOn ( ) ;
5151
5252 await BrowserTestUtils . withNewTab ( "about:blank" , async function ( ) {
53- ReportBrokenSite . enableOrDisableMenuitems ( window ) ;
54- const test = "on invalid page when preffed on" ;
55- await ensure ( appMenu , isMenuItemDisabled , test ) ;
56- await ensure ( helpMenu , isMenuItemDisabled , test ) ;
57- ensureProtectionsPanelHidden ( test ) ;
53+ await forceMenuItemStateUpdate ( ) ;
54+ for ( const { menuDescription, reportBrokenSite } of menus ) {
55+ isMenuItemDisabled (
56+ reportBrokenSite ,
57+ `${ menuDescription } option disabled on invalid page when preffed on`
58+ ) ;
59+ }
5860 } ) ;
5961
6062 await BrowserTestUtils . withNewTab ( REPORTABLE_PAGE_URL , async function ( ) {
61- ReportBrokenSite . enableOrDisableMenuitems ( window ) ;
62- const test = "on valid page when preffed on" ;
63- await ensure ( appMenu , isMenuItemEnabled , test ) ;
64- await ensure ( helpMenu , isMenuItemEnabled , test ) ;
65- await ensure ( protectionsPanel , isMenuItemEnabled , test ) ;
63+ await forceMenuItemStateUpdate ( ) ;
64+ for ( const { menuDescription, reportBrokenSite } of menus ) {
65+ isMenuItemEnabled (
66+ reportBrokenSite ,
67+ `${ menuDescription } option enabled on valid page when preffed on`
68+ ) ;
69+ }
6670 } ) ;
6771
6872 ensureReportBrokenSitePreffedOff ( ) ;
6973
7074 await BrowserTestUtils . withNewTab ( REPORTABLE_PAGE_URL , async function ( ) {
71- ReportBrokenSite . enableOrDisableMenuitems ( window ) ;
72- const test = "still active when pref toggled back off" ;
73- await ensure ( appMenu , isMenuItemEnabled , test ) ;
74- await ensure ( helpMenu , isMenuItemEnabled , test ) ;
75- await ensure ( protectionsPanel , isMenuItemEnabled , test ) ;
75+ await forceMenuItemStateUpdate ( ) ;
76+ for ( const { menuDescription, reportBrokenSite } of menus ) {
77+ isMenuItemHidden (
78+ reportBrokenSite ,
79+ `${ menuDescription } option hidden again when pref toggled back off`
80+ ) ;
81+ }
7682 } ) ;
7783
7884 ensureReportBrokenSitePreffedOn ( ) ;
7985 ensureReportBrokenSiteDisabledByPolicy ( ) ;
8086
8187 await BrowserTestUtils . withNewTab ( REPORTABLE_PAGE_URL , async function ( ) {
82- ReportBrokenSite . enableOrDisableMenuitems ( window ) ;
83- const test = "when disabled by DisableFeedbackCommands enterprise policy" ;
84- await ensure ( appMenu , isMenuItemHidden , test ) ;
85- await ensure ( helpMenu , isMenuItemHidden , test ) ;
86- await ensure ( protectionsPanel , isMenuItemHidden , test ) ;
88+ await forceMenuItemStateUpdate ( ) ;
89+ for ( const { menuDescription, reportBrokenSite } of menus ) {
90+ isMenuItemHidden (
91+ reportBrokenSite ,
92+ `${ menuDescription } option hidden when disabled by DisableFeedbackCommands enterprise policy`
93+ ) ;
94+ }
8795 } ) ;
8896} ) ;
0 commit comments