js/src/tests/ecma_5/JSON/stringify-special-escapes.js

Sat, 03 Jan 2015 20:18:00 +0100

author
Michael Schloh von Bennewitz <michael@schloh.com>
date
Sat, 03 Jan 2015 20:18:00 +0100
branch
TOR_BUG_3246
changeset 7
129ffea94266
permissions
-rw-r--r--

Conditionally enable double key logic according to:
private browsing mode or privacy.thirdparty.isolate preference and
implement in GetCookieStringCommon and FindCookie where it counts...
With some reservations of how to convince FindCookie users to test
condition and pass a nullptr when disabling double key logic.

michael@0 1 // Any copyright is dedicated to the Public Domain.
michael@0 2 // http://creativecommons.org/licenses/publicdomain/
michael@0 3
michael@0 4 var gTestfile = 'stringify-special-escapes.js';
michael@0 5 //-----------------------------------------------------------------------------
michael@0 6 var BUGNUMBER = 512266;
michael@0 7 var summary =
michael@0 8 "JSON.stringify of \\b\\f\\n\\r\\t should use one-character escapes, not hex";
michael@0 9
michael@0 10 print(BUGNUMBER + ": " + summary);
michael@0 11
michael@0 12 /**************
michael@0 13 * BEGIN TEST *
michael@0 14 **************/
michael@0 15
michael@0 16 assertEq(JSON.stringify("\u0000"), '"\\u0000"');
michael@0 17 assertEq(JSON.stringify("\u0001"), '"\\u0001"');
michael@0 18 assertEq(JSON.stringify("\u0002"), '"\\u0002"');
michael@0 19 assertEq(JSON.stringify("\u0003"), '"\\u0003"');
michael@0 20 assertEq(JSON.stringify("\u0004"), '"\\u0004"');
michael@0 21 assertEq(JSON.stringify("\u0005"), '"\\u0005"');
michael@0 22 assertEq(JSON.stringify("\u0006"), '"\\u0006"');
michael@0 23 assertEq(JSON.stringify("\u0007"), '"\\u0007"');
michael@0 24 assertEq(JSON.stringify("\u0008"), '"\\b"');
michael@0 25 assertEq(JSON.stringify("\u0009"), '"\\t"');
michael@0 26 assertEq(JSON.stringify("\u000A"), '"\\n"');
michael@0 27 assertEq(JSON.stringify("\u000B"), '"\\u000b"');
michael@0 28 assertEq(JSON.stringify("\u000C"), '"\\f"');
michael@0 29 assertEq(JSON.stringify("\u000D"), '"\\r"');
michael@0 30 assertEq(JSON.stringify("\u000E"), '"\\u000e"');
michael@0 31 assertEq(JSON.stringify("\u000F"), '"\\u000f"');
michael@0 32 assertEq(JSON.stringify("\u0010"), '"\\u0010"');
michael@0 33 assertEq(JSON.stringify("\u0011"), '"\\u0011"');
michael@0 34 assertEq(JSON.stringify("\u0012"), '"\\u0012"');
michael@0 35 assertEq(JSON.stringify("\u0013"), '"\\u0013"');
michael@0 36 assertEq(JSON.stringify("\u0014"), '"\\u0014"');
michael@0 37 assertEq(JSON.stringify("\u0015"), '"\\u0015"');
michael@0 38 assertEq(JSON.stringify("\u0016"), '"\\u0016"');
michael@0 39 assertEq(JSON.stringify("\u0017"), '"\\u0017"');
michael@0 40 assertEq(JSON.stringify("\u0018"), '"\\u0018"');
michael@0 41 assertEq(JSON.stringify("\u0019"), '"\\u0019"');
michael@0 42 assertEq(JSON.stringify("\u001A"), '"\\u001a"');
michael@0 43 assertEq(JSON.stringify("\u001B"), '"\\u001b"');
michael@0 44 assertEq(JSON.stringify("\u001C"), '"\\u001c"');
michael@0 45 assertEq(JSON.stringify("\u001D"), '"\\u001d"');
michael@0 46 assertEq(JSON.stringify("\u001E"), '"\\u001e"');
michael@0 47 assertEq(JSON.stringify("\u001F"), '"\\u001f"');
michael@0 48 assertEq(JSON.stringify("\u0020"), '" "');
michael@0 49
michael@0 50 assertEq(JSON.stringify("\\u0000"), '"\\\\u0000"');
michael@0 51 assertEq(JSON.stringify("\\u0001"), '"\\\\u0001"');
michael@0 52 assertEq(JSON.stringify("\\u0002"), '"\\\\u0002"');
michael@0 53 assertEq(JSON.stringify("\\u0003"), '"\\\\u0003"');
michael@0 54 assertEq(JSON.stringify("\\u0004"), '"\\\\u0004"');
michael@0 55 assertEq(JSON.stringify("\\u0005"), '"\\\\u0005"');
michael@0 56 assertEq(JSON.stringify("\\u0006"), '"\\\\u0006"');
michael@0 57 assertEq(JSON.stringify("\\u0007"), '"\\\\u0007"');
michael@0 58 assertEq(JSON.stringify("\\u0008"), '"\\\\u0008"');
michael@0 59 assertEq(JSON.stringify("\\u0009"), '"\\\\u0009"');
michael@0 60 assertEq(JSON.stringify("\\u000A"), '"\\\\u000A"');
michael@0 61 assertEq(JSON.stringify("\\u000B"), '"\\\\u000B"');
michael@0 62 assertEq(JSON.stringify("\\u000C"), '"\\\\u000C"');
michael@0 63 assertEq(JSON.stringify("\\u000D"), '"\\\\u000D"');
michael@0 64 assertEq(JSON.stringify("\\u000E"), '"\\\\u000E"');
michael@0 65 assertEq(JSON.stringify("\\u000F"), '"\\\\u000F"');
michael@0 66 assertEq(JSON.stringify("\\u0010"), '"\\\\u0010"');
michael@0 67 assertEq(JSON.stringify("\\u0011"), '"\\\\u0011"');
michael@0 68 assertEq(JSON.stringify("\\u0012"), '"\\\\u0012"');
michael@0 69 assertEq(JSON.stringify("\\u0013"), '"\\\\u0013"');
michael@0 70 assertEq(JSON.stringify("\\u0014"), '"\\\\u0014"');
michael@0 71 assertEq(JSON.stringify("\\u0015"), '"\\\\u0015"');
michael@0 72 assertEq(JSON.stringify("\\u0016"), '"\\\\u0016"');
michael@0 73 assertEq(JSON.stringify("\\u0017"), '"\\\\u0017"');
michael@0 74 assertEq(JSON.stringify("\\u0018"), '"\\\\u0018"');
michael@0 75 assertEq(JSON.stringify("\\u0019"), '"\\\\u0019"');
michael@0 76 assertEq(JSON.stringify("\\u001A"), '"\\\\u001A"');
michael@0 77 assertEq(JSON.stringify("\\u001B"), '"\\\\u001B"');
michael@0 78 assertEq(JSON.stringify("\\u001C"), '"\\\\u001C"');
michael@0 79 assertEq(JSON.stringify("\\u001D"), '"\\\\u001D"');
michael@0 80 assertEq(JSON.stringify("\\u001E"), '"\\\\u001E"');
michael@0 81 assertEq(JSON.stringify("\\u001F"), '"\\\\u001F"');
michael@0 82 assertEq(JSON.stringify("\\u0020"), '"\\\\u0020"');
michael@0 83
michael@0 84
michael@0 85 assertEq(JSON.stringify("a\u0000"), '"a\\u0000"');
michael@0 86 assertEq(JSON.stringify("a\u0001"), '"a\\u0001"');
michael@0 87 assertEq(JSON.stringify("a\u0002"), '"a\\u0002"');
michael@0 88 assertEq(JSON.stringify("a\u0003"), '"a\\u0003"');
michael@0 89 assertEq(JSON.stringify("a\u0004"), '"a\\u0004"');
michael@0 90 assertEq(JSON.stringify("a\u0005"), '"a\\u0005"');
michael@0 91 assertEq(JSON.stringify("a\u0006"), '"a\\u0006"');
michael@0 92 assertEq(JSON.stringify("a\u0007"), '"a\\u0007"');
michael@0 93 assertEq(JSON.stringify("a\u0008"), '"a\\b"');
michael@0 94 assertEq(JSON.stringify("a\u0009"), '"a\\t"');
michael@0 95 assertEq(JSON.stringify("a\u000A"), '"a\\n"');
michael@0 96 assertEq(JSON.stringify("a\u000B"), '"a\\u000b"');
michael@0 97 assertEq(JSON.stringify("a\u000C"), '"a\\f"');
michael@0 98 assertEq(JSON.stringify("a\u000D"), '"a\\r"');
michael@0 99 assertEq(JSON.stringify("a\u000E"), '"a\\u000e"');
michael@0 100 assertEq(JSON.stringify("a\u000F"), '"a\\u000f"');
michael@0 101 assertEq(JSON.stringify("a\u0010"), '"a\\u0010"');
michael@0 102 assertEq(JSON.stringify("a\u0011"), '"a\\u0011"');
michael@0 103 assertEq(JSON.stringify("a\u0012"), '"a\\u0012"');
michael@0 104 assertEq(JSON.stringify("a\u0013"), '"a\\u0013"');
michael@0 105 assertEq(JSON.stringify("a\u0014"), '"a\\u0014"');
michael@0 106 assertEq(JSON.stringify("a\u0015"), '"a\\u0015"');
michael@0 107 assertEq(JSON.stringify("a\u0016"), '"a\\u0016"');
michael@0 108 assertEq(JSON.stringify("a\u0017"), '"a\\u0017"');
michael@0 109 assertEq(JSON.stringify("a\u0018"), '"a\\u0018"');
michael@0 110 assertEq(JSON.stringify("a\u0019"), '"a\\u0019"');
michael@0 111 assertEq(JSON.stringify("a\u001A"), '"a\\u001a"');
michael@0 112 assertEq(JSON.stringify("a\u001B"), '"a\\u001b"');
michael@0 113 assertEq(JSON.stringify("a\u001C"), '"a\\u001c"');
michael@0 114 assertEq(JSON.stringify("a\u001D"), '"a\\u001d"');
michael@0 115 assertEq(JSON.stringify("a\u001E"), '"a\\u001e"');
michael@0 116 assertEq(JSON.stringify("a\u001F"), '"a\\u001f"');
michael@0 117 assertEq(JSON.stringify("a\u0020"), '"a "');
michael@0 118
michael@0 119 assertEq(JSON.stringify("a\\u0000"), '"a\\\\u0000"');
michael@0 120 assertEq(JSON.stringify("a\\u0001"), '"a\\\\u0001"');
michael@0 121 assertEq(JSON.stringify("a\\u0002"), '"a\\\\u0002"');
michael@0 122 assertEq(JSON.stringify("a\\u0003"), '"a\\\\u0003"');
michael@0 123 assertEq(JSON.stringify("a\\u0004"), '"a\\\\u0004"');
michael@0 124 assertEq(JSON.stringify("a\\u0005"), '"a\\\\u0005"');
michael@0 125 assertEq(JSON.stringify("a\\u0006"), '"a\\\\u0006"');
michael@0 126 assertEq(JSON.stringify("a\\u0007"), '"a\\\\u0007"');
michael@0 127 assertEq(JSON.stringify("a\\u0008"), '"a\\\\u0008"');
michael@0 128 assertEq(JSON.stringify("a\\u0009"), '"a\\\\u0009"');
michael@0 129 assertEq(JSON.stringify("a\\u000A"), '"a\\\\u000A"');
michael@0 130 assertEq(JSON.stringify("a\\u000B"), '"a\\\\u000B"');
michael@0 131 assertEq(JSON.stringify("a\\u000C"), '"a\\\\u000C"');
michael@0 132 assertEq(JSON.stringify("a\\u000D"), '"a\\\\u000D"');
michael@0 133 assertEq(JSON.stringify("a\\u000E"), '"a\\\\u000E"');
michael@0 134 assertEq(JSON.stringify("a\\u000F"), '"a\\\\u000F"');
michael@0 135 assertEq(JSON.stringify("a\\u0010"), '"a\\\\u0010"');
michael@0 136 assertEq(JSON.stringify("a\\u0011"), '"a\\\\u0011"');
michael@0 137 assertEq(JSON.stringify("a\\u0012"), '"a\\\\u0012"');
michael@0 138 assertEq(JSON.stringify("a\\u0013"), '"a\\\\u0013"');
michael@0 139 assertEq(JSON.stringify("a\\u0014"), '"a\\\\u0014"');
michael@0 140 assertEq(JSON.stringify("a\\u0015"), '"a\\\\u0015"');
michael@0 141 assertEq(JSON.stringify("a\\u0016"), '"a\\\\u0016"');
michael@0 142 assertEq(JSON.stringify("a\\u0017"), '"a\\\\u0017"');
michael@0 143 assertEq(JSON.stringify("a\\u0018"), '"a\\\\u0018"');
michael@0 144 assertEq(JSON.stringify("a\\u0019"), '"a\\\\u0019"');
michael@0 145 assertEq(JSON.stringify("a\\u001A"), '"a\\\\u001A"');
michael@0 146 assertEq(JSON.stringify("a\\u001B"), '"a\\\\u001B"');
michael@0 147 assertEq(JSON.stringify("a\\u001C"), '"a\\\\u001C"');
michael@0 148 assertEq(JSON.stringify("a\\u001D"), '"a\\\\u001D"');
michael@0 149 assertEq(JSON.stringify("a\\u001E"), '"a\\\\u001E"');
michael@0 150 assertEq(JSON.stringify("a\\u001F"), '"a\\\\u001F"');
michael@0 151 assertEq(JSON.stringify("a\\u0020"), '"a\\\\u0020"');
michael@0 152
michael@0 153
michael@0 154 assertEq(JSON.stringify("\u0000Q"), '"\\u0000Q"');
michael@0 155 assertEq(JSON.stringify("\u0001Q"), '"\\u0001Q"');
michael@0 156 assertEq(JSON.stringify("\u0002Q"), '"\\u0002Q"');
michael@0 157 assertEq(JSON.stringify("\u0003Q"), '"\\u0003Q"');
michael@0 158 assertEq(JSON.stringify("\u0004Q"), '"\\u0004Q"');
michael@0 159 assertEq(JSON.stringify("\u0005Q"), '"\\u0005Q"');
michael@0 160 assertEq(JSON.stringify("\u0006Q"), '"\\u0006Q"');
michael@0 161 assertEq(JSON.stringify("\u0007Q"), '"\\u0007Q"');
michael@0 162 assertEq(JSON.stringify("\u0008Q"), '"\\bQ"');
michael@0 163 assertEq(JSON.stringify("\u0009Q"), '"\\tQ"');
michael@0 164 assertEq(JSON.stringify("\u000AQ"), '"\\nQ"');
michael@0 165 assertEq(JSON.stringify("\u000BQ"), '"\\u000bQ"');
michael@0 166 assertEq(JSON.stringify("\u000CQ"), '"\\fQ"');
michael@0 167 assertEq(JSON.stringify("\u000DQ"), '"\\rQ"');
michael@0 168 assertEq(JSON.stringify("\u000EQ"), '"\\u000eQ"');
michael@0 169 assertEq(JSON.stringify("\u000FQ"), '"\\u000fQ"');
michael@0 170 assertEq(JSON.stringify("\u0010Q"), '"\\u0010Q"');
michael@0 171 assertEq(JSON.stringify("\u0011Q"), '"\\u0011Q"');
michael@0 172 assertEq(JSON.stringify("\u0012Q"), '"\\u0012Q"');
michael@0 173 assertEq(JSON.stringify("\u0013Q"), '"\\u0013Q"');
michael@0 174 assertEq(JSON.stringify("\u0014Q"), '"\\u0014Q"');
michael@0 175 assertEq(JSON.stringify("\u0015Q"), '"\\u0015Q"');
michael@0 176 assertEq(JSON.stringify("\u0016Q"), '"\\u0016Q"');
michael@0 177 assertEq(JSON.stringify("\u0017Q"), '"\\u0017Q"');
michael@0 178 assertEq(JSON.stringify("\u0018Q"), '"\\u0018Q"');
michael@0 179 assertEq(JSON.stringify("\u0019Q"), '"\\u0019Q"');
michael@0 180 assertEq(JSON.stringify("\u001AQ"), '"\\u001aQ"');
michael@0 181 assertEq(JSON.stringify("\u001BQ"), '"\\u001bQ"');
michael@0 182 assertEq(JSON.stringify("\u001CQ"), '"\\u001cQ"');
michael@0 183 assertEq(JSON.stringify("\u001DQ"), '"\\u001dQ"');
michael@0 184 assertEq(JSON.stringify("\u001EQ"), '"\\u001eQ"');
michael@0 185 assertEq(JSON.stringify("\u001FQ"), '"\\u001fQ"');
michael@0 186 assertEq(JSON.stringify("\u0020Q"), '" Q"');
michael@0 187
michael@0 188 assertEq(JSON.stringify("\\u0000Q"), '"\\\\u0000Q"');
michael@0 189 assertEq(JSON.stringify("\\u0001Q"), '"\\\\u0001Q"');
michael@0 190 assertEq(JSON.stringify("\\u0002Q"), '"\\\\u0002Q"');
michael@0 191 assertEq(JSON.stringify("\\u0003Q"), '"\\\\u0003Q"');
michael@0 192 assertEq(JSON.stringify("\\u0004Q"), '"\\\\u0004Q"');
michael@0 193 assertEq(JSON.stringify("\\u0005Q"), '"\\\\u0005Q"');
michael@0 194 assertEq(JSON.stringify("\\u0006Q"), '"\\\\u0006Q"');
michael@0 195 assertEq(JSON.stringify("\\u0007Q"), '"\\\\u0007Q"');
michael@0 196 assertEq(JSON.stringify("\\u0008Q"), '"\\\\u0008Q"');
michael@0 197 assertEq(JSON.stringify("\\u0009Q"), '"\\\\u0009Q"');
michael@0 198 assertEq(JSON.stringify("\\u000AQ"), '"\\\\u000AQ"');
michael@0 199 assertEq(JSON.stringify("\\u000BQ"), '"\\\\u000BQ"');
michael@0 200 assertEq(JSON.stringify("\\u000CQ"), '"\\\\u000CQ"');
michael@0 201 assertEq(JSON.stringify("\\u000DQ"), '"\\\\u000DQ"');
michael@0 202 assertEq(JSON.stringify("\\u000EQ"), '"\\\\u000EQ"');
michael@0 203 assertEq(JSON.stringify("\\u000FQ"), '"\\\\u000FQ"');
michael@0 204 assertEq(JSON.stringify("\\u0010Q"), '"\\\\u0010Q"');
michael@0 205 assertEq(JSON.stringify("\\u0011Q"), '"\\\\u0011Q"');
michael@0 206 assertEq(JSON.stringify("\\u0012Q"), '"\\\\u0012Q"');
michael@0 207 assertEq(JSON.stringify("\\u0013Q"), '"\\\\u0013Q"');
michael@0 208 assertEq(JSON.stringify("\\u0014Q"), '"\\\\u0014Q"');
michael@0 209 assertEq(JSON.stringify("\\u0015Q"), '"\\\\u0015Q"');
michael@0 210 assertEq(JSON.stringify("\\u0016Q"), '"\\\\u0016Q"');
michael@0 211 assertEq(JSON.stringify("\\u0017Q"), '"\\\\u0017Q"');
michael@0 212 assertEq(JSON.stringify("\\u0018Q"), '"\\\\u0018Q"');
michael@0 213 assertEq(JSON.stringify("\\u0019Q"), '"\\\\u0019Q"');
michael@0 214 assertEq(JSON.stringify("\\u001AQ"), '"\\\\u001AQ"');
michael@0 215 assertEq(JSON.stringify("\\u001BQ"), '"\\\\u001BQ"');
michael@0 216 assertEq(JSON.stringify("\\u001CQ"), '"\\\\u001CQ"');
michael@0 217 assertEq(JSON.stringify("\\u001DQ"), '"\\\\u001DQ"');
michael@0 218 assertEq(JSON.stringify("\\u001EQ"), '"\\\\u001EQ"');
michael@0 219 assertEq(JSON.stringify("\\u001FQ"), '"\\\\u001FQ"');
michael@0 220 assertEq(JSON.stringify("\\u0020Q"), '"\\\\u0020Q"');
michael@0 221
michael@0 222 /******************************************************************************/
michael@0 223
michael@0 224 if (typeof reportCompare === "function")
michael@0 225 reportCompare(true, true);
michael@0 226
michael@0 227 print("Tests complete");

mercurial