@@ -271,5 +271,31 @@ Item {
271271 return false;
272272 }, true);
273273 }
274+
275+ function test_stray_submenus() {
276+ menuBackend.modelData = appMenuData.generateTestData(3,4,1,0,"menu");
277+ var priv = findInvisibleChild(menuBar, "d");
278+
279+ var menuItem = findChild(menuBar, "menuBar-item0");
280+ menuItem.show();
281+ compare(priv.currentItem, menuItem, "CurrentItem should be set to item 0");
282+ compare(priv.currentItem.popupVisible, true, "Popup should be visible");
283+
284+ var actionItem = findChild(menuBar, "menuBar-item0-menu-item0-actionItem");
285+ mouseClick(actionItem);
286+
287+ actionItem = findChild(menuBar, "menuBar-item0-menu-item0-menu-item0-actionItem");
288+ mouseClick(actionItem);
289+
290+ actionItem = findChild(menuBar, "menuBar-item0-menu-item0-menu-item0-menu-item0-actionItem");
291+
292+ // There's one popup
293+ tryCompareFunction(function() { return findChildsByType(root, "MenuPopup").length; }, 3);
294+
295+ menuBackend.modelData = null;
296+
297+ tryCompareFunction(function() { return findChildsByType(root, "MenuPopup").length; }, 0);
298+
299+ }
274300 }
275301}