1.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 1.2 +++ b/netwerk/test/unit/test_unescapestring.js Wed Dec 31 06:09:35 2014 +0100 1.3 @@ -0,0 +1,31 @@ 1.4 +const ONLY_NONASCII = Components.interfaces.nsINetUtil.ESCAPE_URL_ONLY_NONASCII; 1.5 +const SKIP_CONTROL = Components.interfaces.nsINetUtil.ESCAPE_URL_SKIP_CONTROL; 1.6 + 1.7 + 1.8 +var tests = [ 1.9 + ["foo", "foo", 0], 1.10 + ["foo%20bar", "foo bar", 0], 1.11 + ["foo%2zbar", "foo%2zbar", 0], 1.12 + ["foo%", "foo%", 0], 1.13 + ["%zzfoo", "%zzfoo", 0], 1.14 + ["foo%z", "foo%z", 0], 1.15 + ["foo%00bar", "foo\x00bar", 0], 1.16 + ["foo%ffbar", "foo\xffbar", 0], 1.17 + ["%00%1b%20%61%7f%80%ff", "%00%1b%20%61%7f\x80\xff", ONLY_NONASCII], 1.18 + ["%00%1b%20%61%7f%80%ff", "%00%1b a%7f\x80\xff", SKIP_CONTROL], 1.19 + ["%00%1b%20%61%7f%80%ff", "%00%1b%20%61%7f\x80\xff", ONLY_NONASCII|SKIP_CONTROL], 1.20 + // Test that we do not drop the high-bytes of a UTF-16 string. 1.21 + ["\u30a8\u30c9", "\xe3\x82\xa8\xe3\x83\x89", 0], 1.22 +]; 1.23 + 1.24 +function run_test() { 1.25 + var util = Components.classes["@mozilla.org/network/util;1"] 1.26 + .getService(Components.interfaces.nsINetUtil); 1.27 + 1.28 + for (var i = 0; i < tests.length; ++i) { 1.29 + dump("Test " + i + " (" + tests[i][0] + ", " + tests[i][2] + ")\n"); 1.30 + do_check_eq(util.unescapeString(tests[i][0], tests[i][2]), 1.31 + tests[i][1]); 1.32 + } 1.33 + dump(tests.length + " tests passed\n"); 1.34 +}