@@ -727,3 +727,37 @@ addAccessibleTask(
727
727
} ,
728
728
{ chrome : true , topLevel : true }
729
729
) ;
730
+
731
+ /**
732
+ * Test the ispopup attribute.
733
+ */
734
+ addAccessibleTask (
735
+ `<div id="popover" popover>popover</div>` ,
736
+ async function testIspopup ( browser , docAcc ) {
737
+ info ( "Showing popover" ) ;
738
+ let shown = waitForEvent ( EVENT_SHOW , "popover" ) ;
739
+ await invokeContentTask ( browser , [ ] , ( ) => {
740
+ content . document . getElementById ( "popover" ) . showPopover ( ) ;
741
+ } ) ;
742
+ let popover = ( await shown ) . accessible ;
743
+ testAttrs ( popover , { ispopup : "auto" } , true ) ;
744
+ info ( "Setting popover to null" ) ;
745
+ // Setting popover causes the Accessible to be recreated.
746
+ shown = waitForEvent ( EVENT_SHOW , "popover" ) ;
747
+ await invokeContentTask ( browser , [ ] , ( ) => {
748
+ content . document . getElementById ( "popover" ) . popover = null ;
749
+ } ) ;
750
+ popover = ( await shown ) . accessible ;
751
+ testAbsentAttrs ( popover , { ispopup : "" } ) ;
752
+ info ( "Setting popover to manual and showing" ) ;
753
+ shown = waitForEvent ( EVENT_SHOW , "popover" ) ;
754
+ await invokeContentTask ( browser , [ ] , ( ) => {
755
+ const popoverDom = content . document . getElementById ( "popover" ) ;
756
+ popoverDom . popover = "manual" ;
757
+ popoverDom . showPopover ( ) ;
758
+ } ) ;
759
+ popover = ( await shown ) . accessible ;
760
+ testAttrs ( popover , { ispopup : "manual" } , true ) ;
761
+ } ,
762
+ { chrome : true , topLevel : true }
763
+ ) ;
0 commit comments