michael@0: /* Any copyright is dedicated to the Public Domain. michael@0: http://creativecommons.org/publicdomain/zero/1.0/ */ michael@0: michael@0: /** michael@0: * Tests if the same source is shown after a page is reloaded. michael@0: */ michael@0: michael@0: const TAB_URL = EXAMPLE_URL + "doc_script-switching-01.html"; michael@0: const FIRST_URL = EXAMPLE_URL + "code_script-switching-01.js"; michael@0: const SECOND_URL = EXAMPLE_URL + "code_script-switching-02.js"; michael@0: michael@0: function test() { michael@0: // Debug test slaves are a bit slow at this test. michael@0: requestLongerTimeout(2); michael@0: michael@0: let gTab, gDebuggee, gPanel, gDebugger; michael@0: let gSources, gStep; michael@0: michael@0: initDebugger(TAB_URL).then(([aTab, aDebuggee, aPanel]) => { michael@0: gTab = aTab; michael@0: gDebuggee = aDebuggee; michael@0: gPanel = aPanel; michael@0: gDebugger = aPanel.panelWin; michael@0: gSources = gDebugger.DebuggerView.Sources; michael@0: gStep = 0; michael@0: michael@0: waitForSourceShown(gPanel, FIRST_URL).then(performTest); michael@0: }); michael@0: michael@0: function performTest() { michael@0: switch (gStep++) { michael@0: case 0: michael@0: testCurrentSource(FIRST_URL, ""); michael@0: reload().then(performTest); michael@0: break; michael@0: case 1: michael@0: testCurrentSource(FIRST_URL); michael@0: reload().then(performTest); michael@0: break; michael@0: case 2: michael@0: testCurrentSource(FIRST_URL); michael@0: switchAndReload(SECOND_URL).then(performTest); michael@0: break; michael@0: case 3: michael@0: testCurrentSource(SECOND_URL); michael@0: reload().then(performTest); michael@0: break; michael@0: case 4: michael@0: testCurrentSource(SECOND_URL); michael@0: reload().then(performTest); michael@0: break; michael@0: case 5: michael@0: testCurrentSource(SECOND_URL); michael@0: closeDebuggerAndFinish(gPanel); michael@0: break; michael@0: } michael@0: } michael@0: michael@0: function reload() { michael@0: return reloadActiveTab(gPanel, gDebugger.EVENTS.SOURCES_ADDED); michael@0: } michael@0: michael@0: function switchAndReload(aUrl) { michael@0: let finished = waitForDebuggerEvents(gPanel, gDebugger.EVENTS.SOURCE_SHOWN).then(reload); michael@0: gSources.selectedValue = aUrl; michael@0: return finished; michael@0: } michael@0: michael@0: function testCurrentSource(aUrl, aExpectedUrl = aUrl) { michael@0: info("Currently preferred source: '" + gSources.preferredValue + "'."); michael@0: info("Currently selected source: '" + gSources.selectedValue + "'."); michael@0: michael@0: is(gSources.preferredValue, aExpectedUrl, michael@0: "The preferred source url wasn't set correctly (" + gStep + ")."); michael@0: is(gSources.selectedValue, aUrl, michael@0: "The selected source isn't the correct one (" + gStep + ")."); michael@0: } michael@0: }