tor-browser

The Tor Browser
git clone https://git.dasho.dev/tor-browser.git
Log | Files | Refs | README | LICENSE

encode-decode.js (1212B)


      1 // Latin1
      2 s = "a%2b%20def%00A0";
      3 
      4 res = decodeURI(s);
      5 assertEq(res, "a%2b def\x00A0");
      6 assertEq(isLatin1(res), true);
      7 
      8 res = decodeURIComponent(s);
      9 assertEq(res, "a+ def\x00A0");
     10 assertEq(isLatin1(res), true);
     11 
     12 // TwoByte
     13 s += "\u1200";
     14 assertEq(decodeURI(s), "a%2b def\x00A0\u1200");
     15 assertEq(decodeURIComponent(s), "a+ def\x00A0\u1200");
     16 
     17 // Latin1 malformed
     18 try {
     19    decodeURI("abc%80");
     20    assertEq(0, 1);
     21 } catch(e) {
     22    assertEq(e instanceof URIError, true);
     23 }
     24 
     25 // TwoByte malformed
     26 try {
     27    decodeURI("abc%80\u1200");
     28    assertEq(0, 1);
     29 } catch(e) {
     30    assertEq(e instanceof URIError, true);
     31 }
     32 
     33 // Latin1
     34 res = encodeURI("a%2b def\x00A0");
     35 assertEq(res, "a%252b%20def%00A0");
     36 assertEq(isLatin1(res), true);
     37 
     38 res = encodeURIComponent("a+ def\x00A0");
     39 assertEq(res, "a%2B%20def%00A0");
     40 assertEq(isLatin1(res), true);
     41 
     42 // TwoByte
     43 res = encodeURI("a%2b def\x00A0\u1200");
     44 assertEq(res, "a%252b%20def%00A0%E1%88%80");
     45 assertEq(isLatin1(res), true);
     46 
     47 res = encodeURIComponent("a+ def\x00A0\u1200");
     48 assertEq(res, "a%2B%20def%00A0%E1%88%80");
     49 assertEq(isLatin1(res), true);
     50 
     51 // TwoByte malformed
     52 try {
     53    encodeURI("a\uDB00");
     54    assertEq(0, 1);
     55 } catch(e) {
     56    assertEq(e instanceof URIError, true);
     57 }