mirror of
https://gitlab.winehq.org/wine/wine-gecko.git
synced 2024-09-13 09:24:08 -07:00
76 lines
2.1 KiB
JavaScript
76 lines
2.1 KiB
JavaScript
/*
|
|
* Make sure history is being recorded when we visit websites.
|
|
*/
|
|
|
|
var testURL_01 = baseURI + "browser_blank_01.html";
|
|
|
|
// A queue to order the tests and a handle for each test
|
|
var gTests = [];
|
|
var gCurrentTest = null;
|
|
|
|
//------------------------------------------------------------------------------
|
|
// Entry point (must be named "test")
|
|
function test() {
|
|
// The "runNextTest" approach is async, so we need to call "waitForExplicitFinish()"
|
|
// We call "finish()" when the tests are finished
|
|
waitForExplicitFinish();
|
|
|
|
// Start the tests
|
|
runNextTest();
|
|
}
|
|
|
|
//------------------------------------------------------------------------------
|
|
// Iterating tests by shifting test out one by one as runNextTest is called.
|
|
function runNextTest() {
|
|
// Run the next test until all tests completed
|
|
if (gTests.length > 0) {
|
|
gCurrentTest = gTests.shift();
|
|
info(gCurrentTest.desc);
|
|
gCurrentTest.run();
|
|
}
|
|
else {
|
|
// Cleanup. All tests are completed at this point
|
|
try {
|
|
}
|
|
finally {
|
|
// We must finialize the tests
|
|
finish();
|
|
}
|
|
}
|
|
}
|
|
|
|
/**
|
|
* One-time observer callback.
|
|
*/
|
|
function waitForObserve(name, callback) {
|
|
var observerService = Cc["@mozilla.org/observer-service;1"]
|
|
.getService(Ci.nsIObserverService);
|
|
var observer = {
|
|
QueryInterface: XPCOMUtils.generateQI([Ci.nsIObserver]),
|
|
observe: function(subject, topic, data) {
|
|
observerService.removeObserver(observer, name);
|
|
observer = null;
|
|
callback(subject, topic, data);
|
|
}
|
|
};
|
|
|
|
observerService.addObserver(observer, name, false);
|
|
}
|
|
|
|
//------------------------------------------------------------------------------
|
|
|
|
gTests.push({
|
|
desc: "Test history being added with page visit",
|
|
_currentTab: null,
|
|
|
|
run: function() {
|
|
this._currentTab = Browser.addTab(testURL_01, true);
|
|
waitForObserve("uri-visit-saved", function(subject, topic, data) {
|
|
let uri = subject.QueryInterface(Ci.nsIURI);
|
|
ok(uri.spec == testURL_01, "URI was saved to history");
|
|
Browser.closeTab(gCurrentTest._currentTab);
|
|
runNextTest();
|
|
});
|
|
}
|
|
});
|