@@ -60,18 +60,30 @@ define(function (require, exports, module) {
6060 return testWindow . $ ( "#titlebar > ul.nav" ) . children ( ) ;
6161 }
6262
63- it ( "should add new menu in last position of list" , async function ( ) {
63+ it ( "should add new menu in last position of list and get menu events" , async function ( ) {
64+ const testMenuID = "menu-unittest1" ;
65+ let idAdded , menuAdded ;
66+ Menus . on ( Menus . EVENT_MENU_ADDED + ".test1" , ( _evt , _id , _menu ) => {
67+ if ( _id !== testMenuID ) {
68+ return ;
69+ }
70+ idAdded = _id ;
71+ menuAdded = _menu ;
72+ } ) ;
6473 var $listItems = getTopMenus ( ) ;
6574 expect ( $listItems . length ) . toBeGreaterThan ( 0 ) ;
6675
6776 var menuCountOriginal = $listItems . length ;
68- var menu = Menus . addMenu ( "Custom1" , "menu-unittest1" ) ;
77+ var menu = Menus . addMenu ( "Custom1" , testMenuID ) ;
6978 expect ( menu ) . toBeTruthy ( ) ;
7079 expect ( menu ) . toBeDefined ( ) ;
7180
7281 $listItems = getTopMenus ( ) ; // refresh
7382 expect ( $listItems . length ) . toBe ( menuCountOriginal + 1 ) ;
74- expect ( $ ( $listItems [ menuCountOriginal ] ) . attr ( "id" ) ) . toBe ( "menu-unittest1" ) ;
83+ expect ( $ ( $listItems [ menuCountOriginal ] ) . attr ( "id" ) ) . toBe ( testMenuID ) ;
84+ expect ( idAdded ) . toBe ( testMenuID ) ;
85+ expect ( menuAdded . id ) . toBe ( testMenuID ) ;
86+ Menus . off ( Menus . EVENT_MENU_ADDED + ".test1" ) ;
7587 } ) ;
7688
7789 it ( "should add new menu in first position of list" , async function ( ) {
@@ -157,22 +169,38 @@ define(function (require, exports, module) {
157169 describe ( "Add Menu Items" , function ( ) {
158170
159171 it ( "should add new menu items" , async function ( ) {
160- var menu = Menus . addMenu ( "MenuItem Menu 0" , "menuitem-unittest0" ) ;
172+ const utMenuID = "menuitem-unittest0" ;
173+ var menu = Menus . addMenu ( "MenuItem Menu 0" , utMenuID ) ;
161174 var listSelector = "#menuitem-unittest0 > ul" ;
162175 var $listItems = testWindow . $ ( listSelector ) . children ( ) ;
163176 expect ( $listItems . length ) . toBe ( 0 ) ;
164177
178+ const testCmd = "Menu-test.command00" ;
179+ let addedOnMenu , commandItemAdded , menuItemAdded ;
180+ Menus . on ( Menus . EVENT_MENU_ITEM_ADDED + ".addTest" , ( _evt , _menuID , _cmdID , _menuItem ) => {
181+ if ( _cmdID !== testCmd ) {
182+ return ;
183+ }
184+ addedOnMenu = _menuID ;
185+ commandItemAdded = _cmdID ;
186+ menuItemAdded = _menuItem ;
187+ } ) ;
165188
166189 // add new menu item to empty menu
167- CommandManager . register ( "Brackets Test Command Custom 0" , "Menu-test.command00" , function ( ) { } ) ;
168- var menuItem = menu . addMenuItem ( "Menu-test.command00" ) ;
190+ CommandManager . register ( "Brackets Test Command Custom 0" , testCmd , function ( ) { } ) ;
191+ var menuItem = menu . addMenuItem ( testCmd ) ;
169192 expect ( menuItem ) . toBeTruthy ( ) ;
170193 expect ( menuItem ) . toBeDefined ( ) ;
171194
172195 $listItems = testWindow . $ ( listSelector ) . children ( ) ;
173196 expect ( $listItems . length ) . toBe ( 1 ) ;
174197 expect ( $ ( $listItems [ 0 ] ) . length ) . toBe ( 1 ) ;
175198
199+ expect ( addedOnMenu ) . toBe ( utMenuID ) ;
200+ expect ( commandItemAdded ) . toBe ( testCmd ) ;
201+ expect ( menuItemAdded . getCommand ( ) . getID ( ) ) . toBe ( testCmd ) ;
202+ Menus . off ( Menus . EVENT_MENU_ITEM_ADDED + ".addTest" ) ;
203+
176204 // Periods (aka "dots") are allowed in HTML identifiers, but jQuery interprets
177205 // them as the start of a class selector, so they need to be escaped
178206 expect ( $ ( $listItems [ 0 ] ) . find ( "a#menuitem-unittest0-Menu-test\\.command00" ) . length ) . toBe ( 1 ) ;
@@ -659,13 +687,24 @@ define(function (require, exports, module) {
659687 describe ( "Add a context submenu" , function ( ) {
660688 it ( "should add new context submenu" , async function ( ) {
661689 menuId = "context-menu-custom-addSubmenu-1" ;
690+ subMenuId = "submenu-custom-addSubmenu-1" ;
691+ let idAdded , menuAdded ;
692+ Menus . on ( Menus . EVENT_SUB_MENU_ADDED + ".subTest" , ( _evt , _id , _menu ) => {
693+ if ( _id !== subMenuId ) {
694+ return ;
695+ }
696+ idAdded = _id ;
697+ menuAdded = _menu ;
698+ } ) ;
662699 menu = Menus . registerContextMenu ( menuId ) ;
663700
664- subMenuId = "submenu-custom-addSubmenu-1" ;
665701 subMenu = menu . addSubMenu ( "submenu" , subMenuId ) ;
666702
667703 expect ( subMenu ) . toBeTruthy ( ) ;
668704 expect ( subMenu . parentMenuItem ) . toBeTruthy ( ) ;
705+ expect ( idAdded ) . toBe ( subMenuId ) ;
706+ expect ( menuAdded . id ) . toBe ( subMenuId ) ;
707+ Menus . off ( Menus . EVENT_MENU_ADDED + ".subTest" ) ;
669708
670709 // check if new submenu is empty
671710 var children = testWindow . $ ( "#submenu-custom-addSubmenu-1 > ul" ) . children ( ) ;
0 commit comments