2012-08-24 17:57:51 +04:00
|
|
|
var etld = Cc["@mozilla.org/network/effective-tld-service;1"]
|
|
|
|
.getService(Ci.nsIEffectiveTLDService);
|
|
|
|
|
2013-11-07 23:10:58 +04:00
|
|
|
var idna = Cc["@mozilla.org/network/idn-service;1"]
|
|
|
|
.getService(Ci.nsIIDNService);
|
|
|
|
|
2013-11-20 20:46:18 +04:00
|
|
|
var Cr = Components.results;
|
|
|
|
|
2012-08-24 17:57:51 +04:00
|
|
|
function run_test()
|
|
|
|
{
|
|
|
|
var file = do_get_file("data/test_psl.txt");
|
|
|
|
var ios = Cc["@mozilla.org/network/io-service;1"]
|
|
|
|
.getService(Ci.nsIIOService);
|
|
|
|
var uri = ios.newFileURI(file);
|
|
|
|
var scriptLoader = Cc["@mozilla.org/moz/jssubscript-loader;1"]
|
|
|
|
.getService(Ci.mozIJSSubScriptLoader);
|
|
|
|
var srvScope = {};
|
2013-11-07 23:10:58 +04:00
|
|
|
scriptLoader.loadSubScript(uri.spec, srvScope, "utf-8");
|
2012-08-24 17:57:51 +04:00
|
|
|
}
|
|
|
|
|
|
|
|
function checkPublicSuffix(host, expectedSuffix)
|
|
|
|
{
|
|
|
|
var actualSuffix = null;
|
|
|
|
try {
|
|
|
|
actualSuffix = etld.getBaseDomainFromHost(host);
|
2013-11-20 20:46:18 +04:00
|
|
|
} catch (e if e.result == Cr.NS_ERROR_INSUFFICIENT_DOMAIN_LEVELS ||
|
|
|
|
e.result == Cr.NS_ERROR_ILLEGAL_VALUE) {
|
2012-08-24 17:57:51 +04:00
|
|
|
}
|
2013-11-07 23:10:58 +04:00
|
|
|
// The EffectiveTLDService always gives back punycoded labels.
|
|
|
|
// The test suite wants to get back what it put in.
|
|
|
|
if (actualSuffix !== null && expectedSuffix !== null &&
|
|
|
|
/(^|\.)xn--/.test(actualSuffix) && !/(^|\.)xn--/.test(expectedSuffix)) {
|
|
|
|
actualSuffix = idna.convertACEtoUTF8(actualSuffix);
|
|
|
|
}
|
2012-08-24 17:57:51 +04:00
|
|
|
do_check_eq(actualSuffix, expectedSuffix);
|
|
|
|
}
|