bug 1281354 - test current window correct after moving tab, r?aswan
MozReview-Commit-ID: 14dgxq0FkNB
--- 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();
+});