michael@0: /* Any copyright is dedicated to the Public Domain. michael@0: http://creativecommons.org/publicdomain/zero/1.0/ */ michael@0: michael@0: const TEST_VALUE = "example.com/\xF7?\xF7"; michael@0: const START_VALUE = "example.com/%C3%B7?%C3%B7"; michael@0: michael@0: function test() { michael@0: waitForExplicitFinish(); michael@0: runNextTest(); michael@0: } michael@0: michael@0: function locationBarEnter(aEvent, aClosure) { michael@0: executeSoon(function() { michael@0: gURLBar.focus(); michael@0: EventUtils.synthesizeKey("VK_RETURN", aEvent); michael@0: addPageShowListener(aClosure); michael@0: }); michael@0: } michael@0: michael@0: function runNextTest() { michael@0: let test = gTests.shift(); michael@0: if (!test) { michael@0: finish(); michael@0: return; michael@0: } michael@0: michael@0: info("Running test: " + test.desc); michael@0: let tab = gBrowser.selectedTab = gBrowser.addTab(START_VALUE); michael@0: addPageShowListener(function() { michael@0: locationBarEnter(test.event, function() { michael@0: test.check(tab); michael@0: michael@0: // Clean up michael@0: while (gBrowser.tabs.length > 1) michael@0: gBrowser.removeTab(gBrowser.selectedTab) michael@0: runNextTest(); michael@0: }); michael@0: }); michael@0: } michael@0: michael@0: let gTests = [ michael@0: { desc: "Simple return keypress", michael@0: event: {}, michael@0: check: checkCurrent michael@0: }, michael@0: michael@0: { desc: "Alt+Return keypress", michael@0: event: { altKey: true }, michael@0: check: checkNewTab, michael@0: }, michael@0: ] michael@0: michael@0: function checkCurrent(aTab) { michael@0: is(gURLBar.value, TEST_VALUE, "Urlbar should preserve the value on return keypress"); michael@0: is(gBrowser.selectedTab, aTab, "New URL was loaded in the current tab"); michael@0: } michael@0: michael@0: function checkNewTab(aTab) { michael@0: is(gURLBar.value, TEST_VALUE, "Urlbar should preserve the value on return keypress"); michael@0: isnot(gBrowser.selectedTab, aTab, "New URL was loaded in a new tab"); michael@0: } michael@0: michael@0: function addPageShowListener(aFunc) { michael@0: gBrowser.selectedBrowser.addEventListener("pageshow", function loadListener() { michael@0: gBrowser.selectedBrowser.removeEventListener("pageshow", loadListener, false); michael@0: aFunc(); michael@0: }); michael@0: } michael@0: