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.");
|
||
|
});
|
||
|
});
|