bug 1281354 - test current window correct after moving tab, r?aswan draft 1281354-current-window-moved
authorTomislav Jovanovic <tomica@gmail.com>
Wed, 12 Oct 2016 23:46:21 +0200
changeset 425610 d364635fb9393b22d629f11dd45d2d78151c857f
parent 425549 de5d73a0568d1c3d50da32169026cc68ee09b1ae
child 533954 7945ff6b7421015ac61caa60c635b53e1cb10766
push id32462
push userbmo:tomica@gmail.com
push dateSat, 15 Oct 2016 02:11:21 +0000
reviewersaswan
bugs1281354
milestone52.0a1
bug 1281354 - test current window correct after moving tab, r?aswan MozReview-Commit-ID: 14dgxq0FkNB
browser/components/extensions/test/browser/browser_ext_tabs_move_window.js
--- a/browser/components/extensions/test/browser/browser_ext_tabs_move_window.js
+++ b/browser/components/extensions/test/browser/browser_ext_tabs_move_window.js
@@ -35,8 +35,63 @@ add_task(function* () {
   yield extension.awaitFinish("tabs.move.window");
   yield extension.unload();
 
   for (let tab of window.gBrowser.tabs) {
     yield BrowserTestUtils.removeTab(tab);
   }
   yield BrowserTestUtils.closeWindow(window1);
 });
+
+add_task(function* test_currentWindowAfterTabMoved() {
+  const files = {
+    "current.html": "<meta charset=utf-8><script src=current.js></script>",
+    "current.js": function() {
+      browser.test.onMessage.addListener(msg => {
+        if (msg === "current") {
+          browser.windows.getCurrent(win => {
+            browser.test.sendMessage("id", win.id);
+          });
+        }
+      });
+      browser.test.sendMessage("ready");
+    },
+  };
+
+  function background() {
+    let tabId;
+    const url = browser.extension.getURL("current.html");
+    browser.tabs.create({url}).then(tab => {
+      tabId = tab.id;
+    });
+    browser.test.onMessage.addListener(msg => {
+      if (msg === "move") {
+        browser.windows.create({tabId}).then(() => {
+          browser.test.sendMessage("moved");
+        });
+      } else if (msg === "close") {
+        browser.tabs.remove(tabId).then(() => {
+          browser.test.sendMessage("done");
+        });
+      }
+    });
+  }
+
+  const extension = ExtensionTestUtils.loadExtension({files, background});
+
+  yield extension.startup();
+  yield extension.awaitMessage("ready");
+
+  extension.sendMessage("current");
+  const first = yield extension.awaitMessage("id");
+
+  extension.sendMessage("move");
+  yield extension.awaitMessage("moved");
+
+  extension.sendMessage("current");
+  const second = yield extension.awaitMessage("id");
+
+  isnot(first, second, "current window id is different after moving the tab");
+
+  extension.sendMessage("close");
+  yield extension.awaitMessage("done");
+  yield extension.unload();
+});