27 lines
838 B
JavaScript
27 lines
838 B
JavaScript
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.");
|
|
});
|
|
});
|