diff options
author | Matt A. Tobin <mattatobin@localhost.localdomain> | 2018-02-02 04:16:08 -0500 |
---|---|---|
committer | Matt A. Tobin <mattatobin@localhost.localdomain> | 2018-02-02 04:16:08 -0500 |
commit | 5f8de423f190bbb79a62f804151bc24824fa32d8 (patch) | |
tree | 10027f336435511475e392454359edea8e25895d /netwerk/test/unit/test_bug368702.js | |
parent | 49ee0794b5d912db1f95dce6eb52d781dc210db5 (diff) | |
download | UXP-5f8de423f190bbb79a62f804151bc24824fa32d8.tar UXP-5f8de423f190bbb79a62f804151bc24824fa32d8.tar.gz UXP-5f8de423f190bbb79a62f804151bc24824fa32d8.tar.lz UXP-5f8de423f190bbb79a62f804151bc24824fa32d8.tar.xz UXP-5f8de423f190bbb79a62f804151bc24824fa32d8.zip |
Add m-esr52 at 52.6.0
Diffstat (limited to 'netwerk/test/unit/test_bug368702.js')
-rw-r--r-- | netwerk/test/unit/test_bug368702.js | 150 |
1 files changed, 150 insertions, 0 deletions
diff --git a/netwerk/test/unit/test_bug368702.js b/netwerk/test/unit/test_bug368702.js new file mode 100644 index 000000000..8f511e559 --- /dev/null +++ b/netwerk/test/unit/test_bug368702.js @@ -0,0 +1,150 @@ +function run_test() { + var tld = + Cc["@mozilla.org/network/effective-tld-service;1"]. + getService(Ci.nsIEffectiveTLDService); + + var etld; + + do_check_eq(tld.getPublicSuffixFromHost("localhost"), "localhost"); + do_check_eq(tld.getPublicSuffixFromHost("localhost."), "localhost."); + do_check_eq(tld.getPublicSuffixFromHost("domain.com"), "com"); + do_check_eq(tld.getPublicSuffixFromHost("domain.com."), "com."); + do_check_eq(tld.getPublicSuffixFromHost("domain.co.uk"), "co.uk"); + do_check_eq(tld.getPublicSuffixFromHost("domain.co.uk."), "co.uk."); + do_check_eq(tld.getPublicSuffixFromHost("co.uk"), "co.uk"); + do_check_eq(tld.getBaseDomainFromHost("domain.co.uk"), "domain.co.uk"); + do_check_eq(tld.getBaseDomainFromHost("domain.co.uk."), "domain.co.uk."); + + try { + etld = tld.getPublicSuffixFromHost(""); + do_throw("this should fail"); + } catch(e) { + do_check_eq(e.result, Cr.NS_ERROR_INSUFFICIENT_DOMAIN_LEVELS); + } + + try { + etld = tld.getBaseDomainFromHost("domain.co.uk", 1); + do_throw("this should fail"); + } catch(e) { + do_check_eq(e.result, Cr.NS_ERROR_INSUFFICIENT_DOMAIN_LEVELS); + } + + try { + etld = tld.getBaseDomainFromHost("co.uk"); + do_throw("this should fail"); + } catch(e) { + do_check_eq(e.result, Cr.NS_ERROR_INSUFFICIENT_DOMAIN_LEVELS); + } + + try { + etld = tld.getBaseDomainFromHost(""); + do_throw("this should fail"); + } catch(e) { + do_check_eq(e.result, Cr.NS_ERROR_INSUFFICIENT_DOMAIN_LEVELS); + } + + try { + etld = tld.getPublicSuffixFromHost("1.2.3.4"); + do_throw("this should fail"); + } catch(e) { + do_check_eq(e.result, Cr.NS_ERROR_HOST_IS_IP_ADDRESS); + } + + try { + etld = tld.getPublicSuffixFromHost("2010:836B:4179::836B:4179"); + do_throw("this should fail"); + } catch(e) { + do_check_eq(e.result, Cr.NS_ERROR_HOST_IS_IP_ADDRESS); + } + + try { + etld = tld.getPublicSuffixFromHost("3232235878"); + do_throw("this should fail"); + } catch(e) { + do_check_eq(e.result, Cr.NS_ERROR_HOST_IS_IP_ADDRESS); + } + + try { + etld = tld.getPublicSuffixFromHost("::ffff:192.9.5.5"); + do_throw("this should fail"); + } catch(e) { + do_check_eq(e.result, Cr.NS_ERROR_HOST_IS_IP_ADDRESS); + } + + try { + etld = tld.getPublicSuffixFromHost("::1"); + do_throw("this should fail"); + } catch(e) { + do_check_eq(e.result, Cr.NS_ERROR_HOST_IS_IP_ADDRESS); + } + + // Check IP addresses with trailing dot as well, Necko sometimes accepts + // those (depending on operating system, see bug 380543) + try { + etld = tld.getPublicSuffixFromHost("127.0.0.1."); + do_throw("this should fail"); + } catch(e) { + do_check_eq(e.result, Cr.NS_ERROR_HOST_IS_IP_ADDRESS); + } + + try { + etld = tld.getPublicSuffixFromHost("::ffff:127.0.0.1."); + do_throw("this should fail"); + } catch(e) { + do_check_eq(e.result, Cr.NS_ERROR_HOST_IS_IP_ADDRESS); + } + + // check normalization: output should be consistent with + // nsIURI::GetAsciiHost(), i.e. lowercased and ASCII/ACE encoded + var ioService = Components.classes["@mozilla.org/network/io-service;1"] + .getService(Components.interfaces.nsIIOService); + + var uri = ioService.newURI("http://b\u00FCcher.co.uk", null, null); + do_check_eq(tld.getBaseDomain(uri), "xn--bcher-kva.co.uk"); + do_check_eq(tld.getBaseDomainFromHost("b\u00FCcher.co.uk"), "xn--bcher-kva.co.uk"); + do_check_eq(tld.getPublicSuffix(uri), "co.uk"); + do_check_eq(tld.getPublicSuffixFromHost("b\u00FCcher.co.uk"), "co.uk"); + + // check that malformed hosts are rejected as invalid args + try { + etld = tld.getBaseDomainFromHost("domain.co.uk.."); + do_throw("this should fail"); + } catch(e) { + do_check_eq(e.result, Cr.NS_ERROR_ILLEGAL_VALUE); + } + + try { + etld = tld.getBaseDomainFromHost("domain.co..uk"); + do_throw("this should fail"); + } catch(e) { + do_check_eq(e.result, Cr.NS_ERROR_ILLEGAL_VALUE); + } + + try { + etld = tld.getBaseDomainFromHost(".domain.co.uk"); + do_throw("this should fail"); + } catch(e) { + do_check_eq(e.result, Cr.NS_ERROR_ILLEGAL_VALUE); + } + + try { + etld = tld.getBaseDomainFromHost(".domain.co.uk"); + do_throw("this should fail"); + } catch(e) { + do_check_eq(e.result, Cr.NS_ERROR_ILLEGAL_VALUE); + } + + try { + etld = tld.getBaseDomainFromHost("."); + do_throw("this should fail"); + } catch(e) { + do_check_eq(e.result, Cr.NS_ERROR_ILLEGAL_VALUE); + } + + try { + etld = tld.getBaseDomainFromHost(".."); + do_throw("this should fail"); + } catch(e) { + do_check_eq(e.result, Cr.NS_ERROR_ILLEGAL_VALUE); + } +} |