B2G/gecko/browser/components/tabview/test/browser_tabview_bug641802.js
/* Any copyright is dedicated to the Public Domain.
   http://creativecommons.org/publicdomain/zero/1.0/ */
Any copyright is dedicated to the Public Domain.
Any copyright is dedicated to the Public Domain .
function test() {
  let openMoveToGroupPopup = function () {
    let tab = gBrowser.selectedTab;
    var evt = new Event("");
    tab.dispatchEvent(evt);
    contextMenu.openPopup(tab, "end_after", 0, 0, true, false, evt);
    tvMenuPopup.openPopup(tvMenu, "end_after", 0, 0, true, false);
  }
  let hideMoveToGroupPopup = function () {
    tvMenuPopup.hidePopup();
    contextMenu.hidePopup();
  }
  let assertValidPrerequisites = function (visible) {
    let cw = TabView.getContentWindow();
    is(cw.GroupItems.groupItems.length, 1, "there is one groupItem");
    is(gBrowser.tabs.length, 1, "there is one tab");
    is(TabView.isVisible(), visible, "tabview is visible");
  }
  let tvMenu = document.getElementById("context_tabViewMenu");
  let contextMenu = document.getElementById("tabContextMenu");
  let tvMenuPopup = document.getElementById("context_tabViewMenuPopup");
  waitForExplicitFinish();
  registerCleanupFunction(function () {
    hideMoveToGroupPopup();
    hideTabView();
    let groupItems = TabView.getContentWindow().GroupItems.groupItems;
    if (groupItems.length > 1)
      closeGroupItem(groupItems[0]);
  });
  showTabView(function () {
    assertValidPrerequisites(true);
    hideTabView(function () {
      let groupItem = createGroupItemWithBlankTabs(window, 200, 200, 10, 1);
      groupItem.setTitle("group2");
      gBrowser.selectedTab = gBrowser.tabs[0];
      executeSoon(function () {
        openMoveToGroupPopup();
        is(tvMenuPopup.firstChild.getAttribute("label"), "group2", "menuItem is present");
        hideMoveToGroupPopup();
        closeGroupItem(groupItem, function () {
          openMoveToGroupPopup();
          is(tvMenuPopup.firstChild.tagName, "menuseparator", "menuItem is not present");
          hideMoveToGroupPopup();
          assertValidPrerequisites(false);
          finish();
        });
      });
    });
  });
}
function test ( ) { let openMoveToGroupPopup = function ( ) { let tab = gBrowser . selectedTab ; var evt = new Event ( "" ) ; tab . dispatchEvent ( evt ) ; contextMenu . openPopup ( tab , "end_after" , 0 , 0 , true , false , evt ) ; tvMenuPopup . openPopup ( tvMenu , "end_after" , 0 , 0 , true , false ) ; } let hideMoveToGroupPopup = function ( ) { tvMenuPopup . hidePopup ( ) ; contextMenu . hidePopup ( ) ; } let assertValidPrerequisites = function ( visible ) { let cw = TabView . getContentWindow ( ) ; is ( cw . GroupItems . groupItems . length , 1 , "there is one groupItem" ) ; is ( gBrowser . tabs . length , 1 , "there is one tab" ) ; is ( TabView . isVisible ( ) , visible , "tabview is visible" ) ; } let tvMenu = document . getElementById ( "context_tabViewMenu" ) ; let contextMenu = document . getElementById ( "tabContextMenu" ) ; let tvMenuPopup = document . getElementById ( "context_tabViewMenuPopup" ) ; waitForExplicitFinish ( ) ; registerCleanupFunction ( function ( ) { hideMoveToGroupPopup ( ) ; hideTabView ( ) ; let groupItems = TabView . getContentWindow ( ) . GroupItems . groupItems ; if ( groupItems . length > 1 ) closeGroupItem ( groupItems [ 0 ] ) ; } ) ; showTabView ( function ( ) { assertValidPrerequisites ( true ) ; hideTabView ( function ( ) { let groupItem = createGroupItemWithBlankTabs ( window , 200 , 200 , 10 , 1 ) ; groupItem . setTitle ( "group2" ) ; gBrowser . selectedTab = gBrowser . tabs [ 0 ] ; executeSoon ( function ( ) { openMoveToGroupPopup ( ) ; is ( tvMenuPopup . firstChild . getAttribute ( "label" ) , "group2" , "menuItem is present" ) ; hideMoveToGroupPopup ( ) ; closeGroupItem ( groupItem , function ( ) { openMoveToGroupPopup ( ) ; is ( tvMenuPopup . firstChild . tagName , "menuseparator" , "menuItem is not present" ) ; hideMoveToGroupPopup ( ) ; assertValidPrerequisites ( false ) ; finish ( ) ; } ) ; } ) ; } ) ; } ) ; }
Any copyright is dedicated to the Public Domain.
Any copyright is dedicated to the Public Domain .