netwerk/test/unit/test_bug368702.js

Wed, 31 Dec 2014 06:09:35 +0100

author
Michael Schloh von Bennewitz <michael@schloh.com>
date
Wed, 31 Dec 2014 06:09:35 +0100
changeset 0
6474c204b198
permissions
-rw-r--r--

Cloned upstream origin tor-browser at tor-browser-31.3.0esr-4.5-1-build1
revision ID fc1c9ff7c1b2defdbc039f12214767608f46423f for hacking purpose.

     1 function run_test() {
     2   var tld =
     3     Cc["@mozilla.org/network/effective-tld-service;1"].
     4     getService(Ci.nsIEffectiveTLDService);
     6   var etld;
     8   do_check_eq(tld.getPublicSuffixFromHost("localhost"), "localhost");
     9   do_check_eq(tld.getPublicSuffixFromHost("localhost."), "localhost.");
    10   do_check_eq(tld.getPublicSuffixFromHost("domain.com"), "com");
    11   do_check_eq(tld.getPublicSuffixFromHost("domain.com."), "com.");
    12   do_check_eq(tld.getPublicSuffixFromHost("domain.co.uk"), "co.uk");
    13   do_check_eq(tld.getPublicSuffixFromHost("domain.co.uk."), "co.uk.");
    14   do_check_eq(tld.getPublicSuffixFromHost("co.uk"), "co.uk");
    15   do_check_eq(tld.getBaseDomainFromHost("domain.co.uk"), "domain.co.uk");
    16   do_check_eq(tld.getBaseDomainFromHost("domain.co.uk."), "domain.co.uk.");
    18   try {
    19     etld = tld.getPublicSuffixFromHost("");
    20     do_throw("this should fail");
    21   } catch(e) {
    22     do_check_eq(e.result, Cr.NS_ERROR_INSUFFICIENT_DOMAIN_LEVELS);
    23   }
    25   try {
    26     etld = tld.getBaseDomainFromHost("domain.co.uk", 1);
    27     do_throw("this should fail");
    28   } catch(e) {
    29     do_check_eq(e.result, Cr.NS_ERROR_INSUFFICIENT_DOMAIN_LEVELS);
    30   }
    32   try {
    33     etld = tld.getBaseDomainFromHost("co.uk");
    34     do_throw("this should fail");
    35   } catch(e) {
    36     do_check_eq(e.result, Cr.NS_ERROR_INSUFFICIENT_DOMAIN_LEVELS);
    37   }
    39   try {
    40     etld = tld.getBaseDomainFromHost("");
    41     do_throw("this should fail");
    42   } catch(e) {
    43     do_check_eq(e.result, Cr.NS_ERROR_INSUFFICIENT_DOMAIN_LEVELS);
    44   }
    46   try {
    47     etld = tld.getPublicSuffixFromHost("1.2.3.4");
    48     do_throw("this should fail");
    49   } catch(e) {
    50     do_check_eq(e.result, Cr.NS_ERROR_HOST_IS_IP_ADDRESS);
    51   }
    53   try {
    54     etld = tld.getPublicSuffixFromHost("2010:836B:4179::836B:4179");
    55     do_throw("this should fail");
    56   } catch(e) {
    57     do_check_eq(e.result, Cr.NS_ERROR_HOST_IS_IP_ADDRESS);
    58   }
    60   try {
    61     etld = tld.getPublicSuffixFromHost("3232235878");
    62     do_throw("this should fail");
    63   } catch(e) {
    64     do_check_eq(e.result, Cr.NS_ERROR_HOST_IS_IP_ADDRESS);
    65   }
    67   try {
    68     etld = tld.getPublicSuffixFromHost("::ffff:192.9.5.5");
    69     do_throw("this should fail");
    70   } catch(e) {
    71     do_check_eq(e.result, Cr.NS_ERROR_HOST_IS_IP_ADDRESS);
    72   }
    74   try {
    75     etld = tld.getPublicSuffixFromHost("::1");
    76     do_throw("this should fail");
    77   } catch(e) {
    78     do_check_eq(e.result, Cr.NS_ERROR_HOST_IS_IP_ADDRESS);
    79   }
    81   // Check IP addresses with trailing dot as well, Necko sometimes accepts
    82   // those (depending on operating system, see bug 380543)
    83   try {
    84     etld = tld.getPublicSuffixFromHost("127.0.0.1.");
    85     do_throw("this should fail");
    86   } catch(e) {
    87     do_check_eq(e.result, Cr.NS_ERROR_HOST_IS_IP_ADDRESS);
    88   }
    90   try {
    91     etld = tld.getPublicSuffixFromHost("::ffff:127.0.0.1.");
    92     do_throw("this should fail");
    93   } catch(e) {
    94     do_check_eq(e.result, Cr.NS_ERROR_HOST_IS_IP_ADDRESS);
    95   }
    97   // check normalization: output should be consistent with
    98   // nsIURI::GetAsciiHost(), i.e. lowercased and ASCII/ACE encoded
    99   var ioService = Components.classes["@mozilla.org/network/io-service;1"]
   100                             .getService(Components.interfaces.nsIIOService);
   102   var uri = ioService.newURI("http://b\u00FCcher.co.uk", null, null);
   103   do_check_eq(tld.getBaseDomain(uri), "xn--bcher-kva.co.uk");
   104   do_check_eq(tld.getBaseDomainFromHost("b\u00FCcher.co.uk"), "xn--bcher-kva.co.uk");
   105   do_check_eq(tld.getPublicSuffix(uri), "co.uk");
   106   do_check_eq(tld.getPublicSuffixFromHost("b\u00FCcher.co.uk"), "co.uk");
   108   // check that malformed hosts are rejected as invalid args
   109   try {
   110     etld = tld.getBaseDomainFromHost("domain.co.uk..");
   111     do_throw("this should fail");
   112   } catch(e) {
   113     do_check_eq(e.result, Cr.NS_ERROR_ILLEGAL_VALUE);
   114   }
   116   try {
   117     etld = tld.getBaseDomainFromHost("domain.co..uk");
   118     do_throw("this should fail");
   119   } catch(e) {
   120     do_check_eq(e.result, Cr.NS_ERROR_ILLEGAL_VALUE);
   121   }
   123   try {
   124     etld = tld.getBaseDomainFromHost(".domain.co.uk");
   125     do_throw("this should fail");
   126   } catch(e) {
   127     do_check_eq(e.result, Cr.NS_ERROR_ILLEGAL_VALUE);
   128   }
   130   try {
   131     etld = tld.getBaseDomainFromHost(".domain.co.uk");
   132     do_throw("this should fail");
   133   } catch(e) {
   134     do_check_eq(e.result, Cr.NS_ERROR_ILLEGAL_VALUE);
   135   }
   137   try {
   138     etld = tld.getBaseDomainFromHost(".");
   139     do_throw("this should fail");
   140   } catch(e) {
   141     do_check_eq(e.result, Cr.NS_ERROR_ILLEGAL_VALUE);
   142   }
   144   try {
   145     etld = tld.getBaseDomainFromHost("..");
   146     do_throw("this should fail");
   147   } catch(e) {
   148     do_check_eq(e.result, Cr.NS_ERROR_ILLEGAL_VALUE);
   149   }
   150 }

mercurial