mirror of
https://gitlab.winehq.org/wine/wine-gecko.git
synced 2024-09-13 09:24:08 -07:00
96 lines
2.6 KiB
JavaScript
96 lines
2.6 KiB
JavaScript
/* Any copyright is dedicated to the Public Domain.
|
|
http://creativecommons.org/publicdomain/zero/1.0/ */
|
|
|
|
// Tests functionality of the isURIVisited API.
|
|
|
|
const SCHEMES = {
|
|
"http://": true,
|
|
"https://": true,
|
|
"ftp://": true,
|
|
"file:///": true,
|
|
"about:": false,
|
|
// nsIIOService.newURI() can throw if e.g. the app knows about imap://
|
|
// but the account is not set up and so the URL is invalid for it.
|
|
// "imap://": false,
|
|
"news://": false,
|
|
"mailbox:": false,
|
|
"moz-anno:favicon:http://": false,
|
|
"view-source:http://": false,
|
|
"chrome://browser/content/browser.xul?": false,
|
|
"resource://": false,
|
|
"data:,": false,
|
|
"wyciwyg:/0/http://": false,
|
|
"javascript:": false,
|
|
};
|
|
|
|
const TRANSITIONS = [
|
|
TRANSITION_LINK,
|
|
TRANSITION_TYPED,
|
|
TRANSITION_BOOKMARK,
|
|
TRANSITION_EMBED,
|
|
TRANSITION_FRAMED_LINK,
|
|
TRANSITION_REDIRECT_PERMANENT,
|
|
TRANSITION_REDIRECT_TEMPORARY,
|
|
TRANSITION_DOWNLOAD,
|
|
];
|
|
|
|
let gRunner;
|
|
function run_test()
|
|
{
|
|
do_test_pending();
|
|
gRunner = step();
|
|
gRunner.next();
|
|
}
|
|
|
|
function step()
|
|
{
|
|
let history = Cc["@mozilla.org/browser/history;1"]
|
|
.getService(Ci.mozIAsyncHistory);
|
|
|
|
for (let scheme in SCHEMES) {
|
|
do_log_info("Testing scheme " + scheme);
|
|
for (let i = 0; i < TRANSITIONS.length; i++) {
|
|
let transition = TRANSITIONS[i];
|
|
do_log_info("With transition " + transition);
|
|
|
|
let uri = NetUtil.newURI(scheme + "mozilla.org/");
|
|
|
|
history.isURIVisited(uri, function(aURI, aIsVisited) {
|
|
do_check_true(uri.equals(aURI));
|
|
do_check_false(aIsVisited);
|
|
|
|
let callback = {
|
|
handleError: function () {},
|
|
handleResult: function () {},
|
|
handleCompletion: function () {
|
|
do_log_info("Added visit to " + uri.spec);
|
|
|
|
history.isURIVisited(uri, function (aURI, aIsVisited) {
|
|
do_check_true(uri.equals(aURI));
|
|
let checker = SCHEMES[scheme] ? do_check_true : do_check_false;
|
|
checker(aIsVisited);
|
|
|
|
waitForClearHistory(function () {
|
|
history.isURIVisited(uri, function(aURI, aIsVisited) {
|
|
do_check_true(uri.equals(aURI));
|
|
do_check_false(aIsVisited);
|
|
gRunner.next();
|
|
});
|
|
});
|
|
});
|
|
},
|
|
};
|
|
|
|
history.updatePlaces({ uri: uri
|
|
, visits: [ { transitionType: transition
|
|
, visitDate: Date.now() * 1000
|
|
} ]
|
|
}, callback);
|
|
});
|
|
yield;
|
|
}
|
|
}
|
|
|
|
do_test_finished();
|
|
}
|