mirror of
https://repo.dactyloidae.xyz/Dactyloidae/UXP.git
synced 2026-08-18 02:13:08 +09:00
51 lines
1.7 KiB
JavaScript
51 lines
1.7 KiB
JavaScript
/* This Source Code Form is subject to the terms of the Mozilla Public
|
|
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
|
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
|
|
|
|
/**
|
|
* Test for Bug 646224. Make sure that after changing the URI via
|
|
* history.pushState, the history service has a title stored for the new URI.
|
|
**/
|
|
|
|
add_task(function* () {
|
|
let tab = yield BrowserTestUtils.openNewForegroundTab(gBrowser, 'http://example.com');
|
|
|
|
let newTitlePromise = new Promise(resolve => {
|
|
let observer = {
|
|
onTitleChanged: function(uri, title) {
|
|
// If the uri of the page whose title is changing ends with 'new_page',
|
|
// then it's the result of our pushState.
|
|
if (/new_page$/.test(uri.spec)) {
|
|
resolve(title);
|
|
PlacesUtils.history.removeObserver(observer);
|
|
}
|
|
},
|
|
|
|
onBeginUpdateBatch: function() { },
|
|
onEndUpdateBatch: function() { },
|
|
onVisit: function() { },
|
|
onDeleteURI: function() { },
|
|
onClearHistory: function() { },
|
|
onPageChanged: function() { },
|
|
onDeleteVisits: function() { },
|
|
QueryInterface: XPCOMUtils.generateQI([Ci.nsINavHistoryObserver])
|
|
};
|
|
|
|
PlacesUtils.history.addObserver(observer, false);
|
|
});
|
|
|
|
yield ContentTask.spawn(tab.linkedBrowser, null, function* () {
|
|
let title = content.document.title;
|
|
content.history.pushState('', '', 'new_page');
|
|
Assert.ok(title, "Content window should initially have a title.");
|
|
});
|
|
|
|
let newtitle = yield newTitlePromise;
|
|
|
|
yield ContentTask.spawn(tab.linkedBrowser, { newtitle }, function* (args) {
|
|
Assert.equal(args.newtitle, content.document.title, "Title after pushstate.");
|
|
});
|
|
|
|
yield PlacesTestUtils.clearHistory();
|
|
gBrowser.removeTab(tab);
|
|
});
|