bug 841350 - register pageshow handler earlier in browser.js r=ttaubert
[gecko.git] / browser / base / content / test / browser_tab_drag_drop_perwindow.js
blob97ceea6c0a83fbe1bdeb5e85e6f62d02083a17f7
1 /* This Source Code Form is subject to the terms of the Mozilla Public
2  * License, v. 2.0. If a copy of the MPL was not distributed with this file,
3  * You can obtain one at http://mozilla.org/MPL/2.0/. */
5 function test() {
6   //initialization
7   waitForExplicitFinish();
9   let scriptLoader = Cc["@mozilla.org/moz/jssubscript-loader;1"].
10                      getService(Ci.mozIJSSubScriptLoader);
11   let chromeUtils = {};
12   scriptLoader.loadSubScript("chrome://mochikit/content/tests/SimpleTest/ChromeUtils.js", chromeUtils);
14   function testOnWindow(aIsPrivate, aCallback) {
15     whenNewWindowLoaded({private: aIsPrivate}, function(win) {
16       executeSoon(function() aCallback(win));
17     });
18   }
20   testOnWindow(false, function(aNormalWindow) {
21     testOnWindow(true, function(aPrivateWindow) {
22       // Open a tab in each window
23       let normalTab = aNormalWindow.gBrowser.addTab("about:blank", {skipAnimation: true});
24       let privateTab = aPrivateWindow.gBrowser.addTab("about:blank", {skipAnimation: true});
26       let effect = chromeUtils.synthesizeDrop(normalTab, privateTab,
27         [[{type: TAB_DROP_TYPE, data: normalTab}]],
28         null, aNormalWindow, EventUtils, aPrivateWindow);
29       is(effect, "none", "Should not be able to drag a normal tab to a private window");
31       effect = chromeUtils.synthesizeDrop(privateTab, normalTab,
32         [[{type: TAB_DROP_TYPE, data: privateTab}]],
33         null, aPrivateWindow, EventUtils, aNormalWindow);
34       is(effect, "none", "Should not be able to drag a private tab to a normal window");
36       aNormalWindow.gBrowser.swapBrowsersAndCloseOther(normalTab, privateTab);
37       is(aNormalWindow.gBrowser.tabs.length, 2, "Prevent moving a normal tab to a private tabbrowser");
38       is(aPrivateWindow.gBrowser.tabs.length, 2, "Prevent accepting a normal tab in a private tabbrowser");
40       aPrivateWindow.gBrowser.swapBrowsersAndCloseOther(privateTab, normalTab);
41       is(aPrivateWindow.gBrowser.tabs.length, 2, "Prevent moving a private tab to a normal tabbrowser");
42       is(aNormalWindow.gBrowser.tabs.length, 2, "Prevent accepting a private tab in a normal tabbrowser");
44       aNormalWindow.close();
45       aPrivateWindow.close();
46       finish();
47     });
48   });