B2G/gecko/browser/components/tabview/test/browser_tabview_bug625424.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 win;
  let cw;
  let getGroupItem = function (index) {
    return cw.GroupItems.groupItems[index];
  }
  let newWindow = function (test) {
    newWindowWithTabView(function (tvwin) {
      registerCleanupFunction(function () {
        if (!tvwin.closed)
          tvwin.close();
      });
      win = tvwin;
      cw = win.TabView.getContentWindow();
      getGroupItem(0).setSize(200, 200, true);
      createGroupItemWithBlankTabs(win, 200, 200, 300, 1);
      test();
    });
  }
  let assertNumberOfTabsInGroupItem = function (groupItem, numTabs) {
    is(groupItem.getChildren().length, numTabs,
        'there are ' + numTabs + ' tabs in this groupItem');
  }
  let testDragOnHiddenGroup = function () {
    let groupItem = getGroupItem(1);
    hideGroupItem(groupItem, function () {
      let drag = groupItem.getChild(0).container;
      let drop = groupItem.$undoContainer[0];
      assertNumberOfTabsInGroupItem(groupItem, 1);
      EventUtils.synthesizeMouseAtCenter(drag, {type: 'mousedown'}, cw);
      EventUtils.synthesizeMouseAtCenter(drop, {type: 'mousemove'}, cw);
      EventUtils.synthesizeMouseAtCenter(drop, {type: 'mouseup'}, cw);
      assertNumberOfTabsInGroupItem(groupItem, 1);
      win.close();
      newWindow(testDragOnVisibleGroup);
    });
  }
  let testDragOnVisibleGroup = function () {
    let groupItem = getGroupItem(0);
    let drag = getGroupItem(1).getChild(0).container;
    let drop = groupItem.container;
    assertNumberOfTabsInGroupItem(groupItem, 1);
    EventUtils.synthesizeMouseAtCenter(drag, {type: 'mousedown'}, cw);
    EventUtils.synthesizeMouseAtCenter(drop, {type: 'mousemove'}, cw);
    EventUtils.synthesizeMouseAtCenter(drop, {type: 'mouseup'}, cw);
    assertNumberOfTabsInGroupItem(groupItem, 2);
    win.close();
    finish();
  }
  waitForExplicitFinish();
  newWindow(testDragOnHiddenGroup);
}
function test ( ) { let win ; let cw ; let getGroupItem = function ( index ) { return cw . GroupItems . groupItems [ index ] ; } let newWindow = function ( test ) { newWindowWithTabView ( function ( tvwin ) { registerCleanupFunction ( function ( ) { if ( ! tvwin . closed ) tvwin . close ( ) ; } ) ; win = tvwin ; cw = win . TabView . getContentWindow ( ) ; getGroupItem ( 0 ) . setSize ( 200 , 200 , true ) ; createGroupItemWithBlankTabs ( win , 200 , 200 , 300 , 1 ) ; test ( ) ; } ) ; } let assertNumberOfTabsInGroupItem = function ( groupItem , numTabs ) { is ( groupItem . getChildren ( ) . length , numTabs , 'there are ' + numTabs + ' tabs in this groupItem' ) ; } let testDragOnHiddenGroup = function ( ) { let groupItem = getGroupItem ( 1 ) ; hideGroupItem ( groupItem , function ( ) { let drag = groupItem . getChild ( 0 ) . container ; let drop = groupItem . $undoContainer [ 0 ] ; assertNumberOfTabsInGroupItem ( groupItem , 1 ) ; EventUtils . synthesizeMouseAtCenter ( drag , { type : 'mousedown' } , cw ) ; EventUtils . synthesizeMouseAtCenter ( drop , { type : 'mousemove' } , cw ) ; EventUtils . synthesizeMouseAtCenter ( drop , { type : 'mouseup' } , cw ) ; assertNumberOfTabsInGroupItem ( groupItem , 1 ) ; win . close ( ) ; newWindow ( testDragOnVisibleGroup ) ; } ) ; } let testDragOnVisibleGroup = function ( ) { let groupItem = getGroupItem ( 0 ) ; let drag = getGroupItem ( 1 ) . getChild ( 0 ) . container ; let drop = groupItem . container ; assertNumberOfTabsInGroupItem ( groupItem , 1 ) ; EventUtils . synthesizeMouseAtCenter ( drag , { type : 'mousedown' } , cw ) ; EventUtils . synthesizeMouseAtCenter ( drop , { type : 'mousemove' } , cw ) ; EventUtils . synthesizeMouseAtCenter ( drop , { type : 'mouseup' } , cw ) ; assertNumberOfTabsInGroupItem ( groupItem , 2 ) ; win . close ( ) ; finish ( ) ; } waitForExplicitFinish ( ) ; newWindow ( testDragOnHiddenGroup ) ; }
Any copyright is dedicated to the Public Domain.
Any copyright is dedicated to the Public Domain .
// setup group items