let testURL_01 = chromeRoot + "browser_blank_01.html"; let newTabs = []; let gCurrentTest = null; let gTests = []; //------------------------------------------------------------------------------ // Iterating tests by shifting test out one by one as runNextTest is called. function runNextTest() { // Run the next test until all tests completed if (gTests.length > 0) { gCurrentTest = gTests.shift(); info(gCurrentTest.desc); gCurrentTest.run(); } else { // Close the awesome panel just in case AwesomeScreen.activePanel = null; for (let iTab=0; iTab 1, "Tabs layout should be on multiple columns"); checkSidebars(0, 0); checkOnResize(gCurrentTest.checkLeftVisible); }, checkLeftVisible: function() { Browser.controlsScrollboxScroller.scrollTo(0, 0); checkSidebars(1, 0); checkOnResize(gCurrentTest.checkRightVisible); }, checkRightVisible: function() { let [,, leftWidth, rightWidth] = Browser.computeSidebarVisibility(); Browser.controlsScrollboxScroller.scrollTo(leftWidth + rightWidth, 0); checkSidebars(0, 1); checkOnResize(gCurrentTest.onFinish); }, onFinish: function() { Browser.hideSidebars(); runNextTest(); } }); gTests.push({ desc: "Testing horizontal positionning of the sidebars for multiple columns with awesome screen open", run: function() { let tabs = document.getElementById("tabs"); ok(tabs._columnsCount > 1, "Tabs layout should be on multiple columns"); checkSidebars(0, 0); waitForNavigationPanel(function() { checkOnResize(gCurrentTest.checkLeftVisible); }); AllPagesList.doCommand(); }, checkLeftVisible: function() { Browser.controlsScrollboxScroller.scrollTo(0, 0); checkSidebars(1, 0); checkOnResize(gCurrentTest.checkRightVisible); }, checkRightVisible: function() { let [,, leftWidth, rightWidth] = Browser.computeSidebarVisibility(); Browser.controlsScrollboxScroller.scrollTo(leftWidth + rightWidth, 0); checkSidebars(0, 1); checkOnResize(gCurrentTest.onFinish); }, onFinish: function() { Browser.hideSidebars(); AwesomeScreen.activePanel = null; runNextTest(); } }); gTests.push({ desc: "Testing horizontal positionning of the sidebars for multiple columns with an undo tab", run: function() { let tabs = document.getElementById("tabs"); ok(tabs._columnsCount > 1, "Tabs layout should be on multiple columns"); Elements.tabs.addEventListener("TabRemove", function() { Elements.tabs.removeEventListener("TabRemove", arguments.callee, false); setTimeout(gCurrentTest.onTabClose, 0); }, false); let lastTab = newTabs.pop().chromeTab; lastTab._onClose(); }, onTabClose: function() { checkSidebars(0, 0); checkOnResize(gCurrentTest.checkLeftVisible); }, checkLeftVisible: function() { Browser.controlsScrollboxScroller.scrollTo(0, 0); checkSidebars(1, 0); checkOnResize(gCurrentTest.checkRightVisible); }, checkRightVisible: function() { let [,, leftWidth, rightWidth] = Browser.computeSidebarVisibility(); Browser.controlsScrollboxScroller.scrollTo(leftWidth + rightWidth, 0); checkSidebars(0, 1); checkOnResize(gCurrentTest.onFinish); }, onFinish: function() { Browser.hideSidebars(); runNextTest(); } });