michael@0: /* Any copyright is dedicated to the Public Domain. michael@0: http://creativecommons.org/publicdomain/zero/1.0/ */ michael@0: "use strict"; michael@0: michael@0: let tab0, tab1, tab2; michael@0: let testStep = -1; michael@0: michael@0: function test() { michael@0: if (!isTiltEnabled()) { michael@0: info("Skipping tab switch test because Tilt isn't enabled."); michael@0: return; michael@0: } michael@0: if (!isWebGLSupported()) { michael@0: info("Skipping tab switch test because WebGL isn't supported."); michael@0: return; michael@0: } michael@0: michael@0: waitForExplicitFinish(); michael@0: michael@0: gBrowser.tabContainer.addEventListener("TabSelect", tabSelect, false); michael@0: createTab1(); michael@0: } michael@0: michael@0: function createTab1() { michael@0: tab0 = gBrowser.selectedTab; michael@0: michael@0: tab1 = createTab(function() { michael@0: createTilt({ michael@0: onTiltOpen: function() michael@0: { michael@0: createTab2(); michael@0: } michael@0: }, false, function suddenDeath() michael@0: { michael@0: info("Tilt could not be initialized properly."); michael@0: cleanup(); michael@0: }); michael@0: }); michael@0: } michael@0: michael@0: function createTab2() { michael@0: tab2 = createTab(function() { michael@0: michael@0: createTilt({ michael@0: onTiltOpen: function() michael@0: { michael@0: testStep = 0; michael@0: tabSelect(); michael@0: } michael@0: }, false, function suddenDeath() michael@0: { michael@0: info("Tilt could not be initialized properly."); michael@0: cleanup(); michael@0: }); michael@0: }); michael@0: } michael@0: michael@0: let testSteps = [ michael@0: function step0() { michael@0: gBrowser.selectedTab = tab1; michael@0: }, michael@0: function step1() { michael@0: gBrowser.selectedTab = tab0; michael@0: }, michael@0: function step2() { michael@0: gBrowser.selectedTab = tab1; michael@0: }, michael@0: function step3() { michael@0: gBrowser.selectedTab = tab2; michael@0: }, michael@0: function step4() { michael@0: Tilt.destroy(Tilt.currentWindowId); michael@0: gBrowser.removeCurrentTab(); michael@0: tab2 = null; michael@0: }, michael@0: function step5() { michael@0: Tilt.destroy(Tilt.currentWindowId); michael@0: gBrowser.removeCurrentTab(); michael@0: tab1 = null; michael@0: }, michael@0: function step6_cleanup() { michael@0: cleanup(); michael@0: } michael@0: ]; michael@0: michael@0: function cleanup() { michael@0: gBrowser.tabContainer.removeEventListener("TabSelect", tabSelect, false); michael@0: michael@0: if (tab1) { michael@0: gBrowser.removeTab(tab1); michael@0: tab1 = null; michael@0: } michael@0: if (tab2) { michael@0: gBrowser.removeTab(tab2); michael@0: tab2 = null; michael@0: } michael@0: michael@0: finish(); michael@0: } michael@0: michael@0: function tabSelect() { michael@0: if (testStep !== -1) { michael@0: executeSoon(testSteps[testStep]); michael@0: testStep++; michael@0: } michael@0: }