@@ -111,6 +111,48 @@ asyncTest( "handle focus of menu with active item", function() {
111111} ) ; 
112112} ) ; 
113113
114+ test (  "handle mouseenter on nested menu item" ,  function (  assert  )  { 
115+ assert . expect (  8  ) ; 
116+ $ . ui . menu . prototype . delay  =  1 ; 
117+ var  activeItem , 
118+ done  =  assert . async ( ) , 
119+ element  =  $ (  "#menu2"  ) . menu ( ) ; 
120+ 
121+ element 
122+ . menu (  "previous"  ) 
123+ . menu (  "expand"  ) ; 
124+ 
125+ function  checkSubmenus ( )  { 
126+ equal (  element . find (  "ul[aria-expanded='true']"  ) . length ,  2 ,  "both submenus expanded"  ) ; 
127+ } 
128+ function  menumouseenter1 ( )  { 
129+ element . menu (  "expand"  ) ; 
130+ setTimeout (  menumouseenter2 ,  25  ) ; 
131+ } 
132+ function  menumouseenter2 ( )  { 
133+ checkSubmenus ( ) ; 
134+ activeItem  =  $ (  "#"  +  element . attr (  "aria-activedescendant"  )  ) ; 
135+ assert . hasClasses (  activeItem ,  "ui-state-active"  ) ; 
136+ activeItem . trigger (  "mouseleave"  ) ; 
137+ setTimeout (  menumouseenter3 ,  25  ) ; 
138+ } 
139+ function  menumouseenter3 ( )  { 
140+ checkSubmenus ( ) ; 
141+ assert . lacksClasses (  activeItem ,  "ui-state-active"  ) ; 
142+ activeItem . trigger (  "mouseenter"  ) ; 
143+ setTimeout (  menumouseenter4 ,  25  ) ; 
144+ } 
145+ function  menumouseenter4 ( )  { 
146+ checkSubmenus ( ) ; 
147+ activeItem . parents (  ".ui-menu-item"  ) . each (  function (  index ,  item  )  { 
148+ assert . hasClasses (  $ (  item  ) . children (  ".ui-menu-item-wrapper"  ) ,  "ui-state-active"  ) ; 
149+ }  ) ; 
150+ $ . ui . menu . prototype . delay  =  300 ; 
151+ done ( ) ; 
152+ } 
153+ setTimeout (  menumouseenter1 ,  25  ) ; 
154+ }  ) ; 
155+ 
114156asyncTest (  "handle submenu auto collapse: mouseleave, default markup" ,  function ( )  { 
115157expect (  4  ) ; 
116158$ . ui . menu . prototype . delay  =  1 ; 
0 commit comments