netwerk/test/unit/test_unescapestring.js

Wed, 31 Dec 2014 13:27:57 +0100

author
Michael Schloh von Bennewitz <michael@schloh.com>
date
Wed, 31 Dec 2014 13:27:57 +0100
branch
TOR_BUG_3246
changeset 6
8bccb770b82d
permissions
-rw-r--r--

Ignore runtime configuration files generated during quality assurance.

     1 const ONLY_NONASCII = Components.interfaces.nsINetUtil.ESCAPE_URL_ONLY_NONASCII;
     2 const SKIP_CONTROL = Components.interfaces.nsINetUtil.ESCAPE_URL_SKIP_CONTROL;
     5 var tests = [
     6   ["foo", "foo", 0],
     7   ["foo%20bar", "foo bar", 0],
     8   ["foo%2zbar", "foo%2zbar", 0],
     9   ["foo%", "foo%", 0],
    10   ["%zzfoo", "%zzfoo", 0],
    11   ["foo%z", "foo%z", 0],
    12   ["foo%00bar", "foo\x00bar", 0],
    13   ["foo%ffbar", "foo\xffbar", 0],
    14   ["%00%1b%20%61%7f%80%ff", "%00%1b%20%61%7f\x80\xff", ONLY_NONASCII],
    15   ["%00%1b%20%61%7f%80%ff", "%00%1b a%7f\x80\xff", SKIP_CONTROL],
    16   ["%00%1b%20%61%7f%80%ff", "%00%1b%20%61%7f\x80\xff", ONLY_NONASCII|SKIP_CONTROL],
    17   // Test that we do not drop the high-bytes of a UTF-16 string.
    18   ["\u30a8\u30c9", "\xe3\x82\xa8\xe3\x83\x89", 0],
    19 ];
    21 function run_test() {
    22   var util = Components.classes["@mozilla.org/network/util;1"]
    23                        .getService(Components.interfaces.nsINetUtil);
    25   for (var i = 0; i < tests.length; ++i) {
    26     dump("Test " + i + " (" + tests[i][0] + ", " + tests[i][2] + ")\n");
    27     do_check_eq(util.unescapeString(tests[i][0], tests[i][2]),
    28                                     tests[i][1]);
    29   }
    30   dump(tests.length + " tests passed\n");
    31 }

mercurial