diff options
Diffstat (limited to 'system/docshell/test/browser/browser_bug554155.js')
-rw-r--r-- | system/docshell/test/browser/browser_bug554155.js | 26 |
1 files changed, 26 insertions, 0 deletions
diff --git a/system/docshell/test/browser/browser_bug554155.js b/system/docshell/test/browser/browser_bug554155.js new file mode 100644 index 000000000..efc74a1c1 --- /dev/null +++ b/system/docshell/test/browser/browser_bug554155.js @@ -0,0 +1,26 @@ +add_task(function* test() { + yield BrowserTestUtils.withNewTab({ gBrowser, url: "http://example.com" }, function* (browser) { + let numLocationChanges = 0; + + let listener = { + onLocationChange: function(browser, webProgress, request, uri, flags) { + info("location change: " + (uri && uri.spec)); + numLocationChanges++; + } + }; + + gBrowser.addTabsProgressListener(listener); + + yield ContentTask.spawn(browser, null, function() { + // pushState to a new URL (http://example.com/foo"). This should trigger + // exactly one LocationChange event. + content.history.pushState(null, null, "foo"); + }); + + yield Promise.resolve(); + + gBrowser.removeTabsProgressListener(listener); + is(numLocationChanges, 1, + "pushState should cause exactly one LocationChange event."); + }); +}); |