diff options
Diffstat (limited to 'browser/base/content/test/urlbar/browser_urlbarRaceWithTabs.js')
-rw-r--r-- | browser/base/content/test/urlbar/browser_urlbarRaceWithTabs.js | 57 |
1 files changed, 57 insertions, 0 deletions
diff --git a/browser/base/content/test/urlbar/browser_urlbarRaceWithTabs.js b/browser/base/content/test/urlbar/browser_urlbarRaceWithTabs.js new file mode 100644 index 000000000..d66514c5a --- /dev/null +++ b/browser/base/content/test/urlbar/browser_urlbarRaceWithTabs.js @@ -0,0 +1,57 @@ +const kURL = "http://example.org/browser/browser/base/content/test/urlbar/dummy_page.html"; + +function* addBookmark(bookmark) { + if (bookmark.keyword) { + yield PlacesUtils.keywords.insert({ + keyword: bookmark.keyword, + url: bookmark.url, + }); + } + + let bm = yield PlacesUtils.bookmarks.insert({ + parentGuid: PlacesUtils.bookmarks.unfiledGuid, + url: bookmark.url, + title: bookmark.title, + }); + + registerCleanupFunction(function* () { + yield PlacesUtils.bookmarks.remove(bm); + if (bookmark.keyword) { + yield PlacesUtils.keywords.remove(bookmark.keyword); + } + }); +} + +/** + * Check that if the user hits enter and ctrl-t at the same time, we open the URL in the right tab. + */ +add_task(function* hitEnterLoadInRightTab() { + info("Opening new tab"); + let oldTabCreatedPromise = BrowserTestUtils.waitForEvent(gBrowser.tabContainer, "TabOpen"); + BrowserOpenTab(); + let oldTab = (yield oldTabCreatedPromise).target; + let oldTabLoadedPromise = BrowserTestUtils.browserLoaded(oldTab.linkedBrowser, false, kURL); + oldTabLoadedPromise.then(() => info("Old tab loaded")); + let newTabCreatedPromise = BrowserTestUtils.waitForEvent(gBrowser.tabContainer, "TabOpen"); + + info("Creating bookmark and keyword"); + yield addBookmark({title: "Test for keyword bookmark and URL", url: kURL, keyword: "urlbarkeyword"}); + info("Filling URL bar, sending <return> and opening a tab"); + gURLBar.value = "urlbarkeyword"; + gURLBar.select(); + EventUtils.sendKey("return"); + BrowserOpenTab(); + info("Waiting for new tab"); + let newTab = (yield newTabCreatedPromise).target; + info("Created new tab; waiting for either tab to load"); + let newTabLoadedPromise = BrowserTestUtils.browserLoaded(newTab.linkedBrowser, false, kURL); + newTabLoadedPromise.then(() => info("New tab loaded")); + yield Promise.race([newTabLoadedPromise, oldTabLoadedPromise]); + is(newTab.linkedBrowser.currentURI.spec, "about:newtab", "New tab still has about:newtab"); + is(oldTab.linkedBrowser.currentURI.spec, kURL, "Old tab loaded URL"); + info("Closing new tab"); + yield BrowserTestUtils.removeTab(newTab); + info("Closing old tab"); + yield BrowserTestUtils.removeTab(oldTab); + info("Finished"); +}); |