Sat, 03 Jan 2015 20:18:00 +0100
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.
1 /* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
2 /* This Source Code Form is subject to the terms of the Mozilla Public
3 * License, v. 2.0. If a copy of the MPL was not distributed with this
4 * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
6 //-----------------------------------------------------------------------------
7 var BUGNUMBER = 291494;
8 var summary = 'Date.prototype.toLocaleFormat extension';
9 var actual = '';
10 var expect = '';
11 var temp;
13 /*
14 * SpiderMonkey only.
15 *
16 * When the output of toLocaleFormat exceeds 100 bytes toLocaleFormat
17 * defaults to using toString to produce the result.
18 */
20 enterFunc ('test');
21 printBugNumber(BUGNUMBER);
22 printStatus (summary);
24 var date = new Date("06/05/2005 00:00:00 GMT-0000");
26 expect = date.getTimezoneOffset() > 0 ? 'Sat' : 'Sun';
27 actual = date.toLocaleFormat('%a');
28 reportCompare(expect, actual, 'Date.toLocaleFormat("%a")');
30 expect = date.getTimezoneOffset() > 0 ? 'Saturday' : 'Sunday';
31 actual = date.toLocaleFormat('%A');
32 reportCompare(expect, actual, 'Date.toLocaleFormat("%A")');
34 expect = 'Jun';
35 actual = date.toLocaleFormat('%b');
36 reportCompare(expect, actual, 'Date.toLocaleFormat("%b")');
38 expect = 'June';
39 actual = date.toLocaleFormat('%B');
40 reportCompare(expect, actual, 'Date.toLocaleFormat("%B")');
42 expect = (date.getTimezoneOffset() > 0) ? '04' : '05';
43 actual = date.toLocaleFormat('%d');
44 reportCompare(expect, actual, 'Date.toLocaleFormat("%d")');
46 expect = '0';
47 actual = String((Number(date.toLocaleFormat('%H')) +
48 date.getTimezoneOffset()/60) % 24);
49 reportCompare(expect, actual, 'Date.toLocaleFormat(%H)');
51 expect = '12';
52 actual = String(Number(date.toLocaleFormat('%I')) +
53 date.getTimezoneOffset()/60);
54 reportCompare(expect, actual, 'Date.toLocaleFormat(%I)');
56 expect = String(155 + ((date.getTimezoneOffset() > 0) ? 0 : 1));
57 actual = date.toLocaleFormat('%j');
58 reportCompare(expect, actual, 'Date.toLocaleFormat("%j")');
60 expect = '06';
61 actual = date.toLocaleFormat('%m');
62 reportCompare(expect, actual, 'Date.toLocaleFormat("%m")');
64 expect = '00';
65 actual = date.toLocaleFormat('%M');
66 reportCompare(expect, actual, 'Date.toLocaleFormat("%M")');
68 expect = true;
69 temp = date.toLocaleFormat('%p');
70 actual = temp == 'AM' || date.toLocaleFormat('%p') == 'PM';
71 reportCompare(expect, actual, 'Date.toLocaleFormat("%p") is AM or PM');
73 expect = '00';
74 actual = date.toLocaleFormat('%S');
75 reportCompare(expect, actual, 'Date.toLocaleFormat("%S")');
77 expect = String(22 + ((date.getTimezoneOffset() > 0) ? 0 : 1));
78 actual = date.toLocaleFormat('%U');
79 reportCompare(expect, actual, 'Date.toLocaleFormat("%U")');
81 expect = String((6 + ((date.getTimezoneOffset() > 0) ? 0 : 1))%7);
82 actual = date.toLocaleFormat('%w');
83 reportCompare(expect, actual, 'Date.toLocaleFormat("%w")');
85 expect = '22';
86 actual = date.toLocaleFormat('%W');
87 reportCompare(expect, actual, 'Date.toLocaleFormat("%W")');
89 expect = '05';
90 actual = date.toLocaleFormat('%y');
91 reportCompare(expect, actual, 'Date.toLocaleFormat("%y")');
93 expect = '2005';
94 actual = date.toLocaleFormat('%Y');
95 reportCompare(expect, actual, 'Date.toLocaleFormat("%Y")');
97 expect = '%';
98 actual = date.toLocaleFormat('%%');
99 reportCompare(expect, actual, 'Date.toLocaleFormat("%%")');
102 expect = '1899 99';
103 temp='%Y %y';
104 actual = new Date(0, 0, 0, 13, 14, 15, 0).toLocaleFormat(temp);
105 reportCompare(expect, actual, 'Date.toLocaleFormat("'+temp+'")');
107 expect = '1899189918991899189918991899189918991899189918991899189918991899189918991899189918991899';
108 temp = '%Y%Y%Y%Y%Y%Y%Y%Y%Y%Y%Y%Y%Y%Y%Y%Y%Y%Y%Y%Y%Y%Y';
109 actual = new Date(0, 0, 0, 13, 14, 15, 0).toLocaleFormat(temp);
110 reportCompare(expect, actual, 'Date.toLocaleFormat("'+temp+'")');
112 expect = 'xxx189918991899189918991899189918991899189918991899189918991899189918991899189918991899189918991899';
113 temp = 'xxx%Y%Y%Y%Y%Y%Y%Y%Y%Y%Y%Y%Y%Y%Y%Y%Y%Y%Y%Y%Y%Y%Y%Y%Y';
114 actual = new Date(0, 0, 0, 13, 14, 15, 0).toLocaleFormat(temp);
115 reportCompare(expect, actual, 'Date.toLocaleFormat("'+temp+'")');
117 expect = new Date(0, 0, 0, 13, 14, 15, 0).toString();
118 temp = 'xxxx%Y%Y%Y%Y%Y%Y%Y%Y%Y%Y%Y%Y%Y%Y%Y%Y%Y%Y%Y%Y%Y%Y%Y%Y';
119 actual = new Date(0, 0, 0, 13, 14, 15, 0).toLocaleFormat(temp);
120 reportCompare(expect, actual, 'Date.toLocaleFormat("'+temp+'")');
122 expect = 'xxxx189918991899189918991899189918991899';
123 temp = 'xxxx%Y%Y%Y%Y%Y%Y%Y%Y%Y';
124 actual = new Date(0, 0, 0, 13, 14, 15, 0).toLocaleFormat(temp);
125 reportCompare(expect, actual, 'Date.toLocaleFormat("'+temp+'")');
128 expect = '-51 49';
129 temp = '%Y %y';
130 actual = new Date(-51, 0).toLocaleFormat(temp);
131 reportCompare(expect, actual, 'Date.toLocaleFormat("'+temp+'")');
133 expect = '-51-51-51-51-51-51-51-51-51-51-51-51-51-51-51-51-51-51-51-51-51-51';
134 temp = '%Y%Y%Y%Y%Y%Y%Y%Y%Y%Y%Y%Y%Y%Y%Y%Y%Y%Y%Y%Y%Y%Y';
135 actual = new Date(-51, 0).toLocaleFormat(temp);
136 reportCompare(expect, actual, 'Date.toLocaleFormat("'+temp+'")');
138 expect = 'xxx-51-51-51-51-51-51-51-51-51-51-51-51-51-51-51-51-51-51-51-51-51-51-51-51';
139 temp = 'xxx%Y%Y%Y%Y%Y%Y%Y%Y%Y%Y%Y%Y%Y%Y%Y%Y%Y%Y%Y%Y%Y%Y%Y%Y';
140 actual = new Date(-51, 0).toLocaleFormat(temp);
141 reportCompare(expect, actual, 'Date.toLocaleFormat("'+temp+'")');
143 expect = new Date(-51, 0).toString();
144 temp = 'xxxx%Y%Y%Y%Y%Y%Y%Y%Y%Y%Y%Y%Y%Y%Y%Y%Y%Y%Y%Y%Y%Y%Y%Y%Y';
145 actual = new Date(-51, 0).toLocaleFormat(temp);
146 reportCompare(expect, actual, 'Date.toLocaleFormat("'+temp+'")');
149 expect = '1851 51';
150 temp = '%Y %y';
151 actual = new Date(1851, 0).toLocaleFormat(temp);
152 reportCompare(expect, actual, 'Date.toLocaleFormat("'+temp+'")');
154 expect = '1851185118511851185118511851185118511851185118511851185118511851185118511851185118511851';
155 temp = '%Y%Y%Y%Y%Y%Y%Y%Y%Y%Y%Y%Y%Y%Y%Y%Y%Y%Y%Y%Y%Y%Y';
156 actual = new Date(1851, 0).toLocaleFormat(temp);
157 reportCompare(expect, actual, 'Date.toLocaleFormat("'+temp+'")');
159 expect = 'xxx185118511851185118511851185118511851185118511851185118511851185118511851185118511851185118511851';
160 temp = 'xxx%Y%Y%Y%Y%Y%Y%Y%Y%Y%Y%Y%Y%Y%Y%Y%Y%Y%Y%Y%Y%Y%Y%Y%Y';
161 actual = new Date(1851, 0).toLocaleFormat(temp);
162 reportCompare(expect, actual, 'Date.toLocaleFormat("'+temp+'")');
164 expect = new Date(1851, 0).toString();
165 temp = 'xxxx%Y%Y%Y%Y%Y%Y%Y%Y%Y%Y%Y%Y%Y%Y%Y%Y%Y%Y%Y%Y%Y%Y%Y%Y';
166 actual = new Date(1851, 0).toLocaleFormat(temp);
167 reportCompare(expect, actual, 'Date.toLocaleFormat("'+temp+'")');
170 expect = '-1 99';
171 temp = '%Y %y';
172 actual = new Date(-1, 0).toLocaleFormat(temp);
173 reportCompare(expect, actual, 'Date.toLocaleFormat("'+temp+'")');
175 expect = '-100 00';
176 temp = '%Y %y';
177 actual = new Date(-100, 0).toLocaleFormat(temp);
178 reportCompare(expect, actual, 'Date.toLocaleFormat("'+temp+'")');
180 expect = '1900 00';
181 temp = '%Y %y';
182 actual = new Date(0, 0).toLocaleFormat(temp);
183 reportCompare(expect, actual, 'Date.toLocaleFormat("'+temp+'")');
185 expect = '1901 01';
186 temp = '%Y %y';
187 actual = new Date(1, 0).toLocaleFormat(temp);
188 reportCompare(expect, actual, 'Date.toLocaleFormat("'+temp+'")');
190 expect = '1970 70';
191 temp = '%Y %y';
192 actual = new Date(1970, 0).toLocaleFormat(temp);
193 reportCompare(expect, actual, 'Date.toLocaleFormat("'+temp+'")');
196 expect = new Date(32767, 0).toString();
197 temp = 'xxxx%Y%Y%Y%Y%Y%Y%Y%Y%Y%Y%Y%Y%Y%Y%Y%Y%Y%Y%Y%Y%Y%Y';
198 actual = new Date(32767, 0).toLocaleFormat(temp);
199 reportCompare(expect, actual, 'Date.toLocaleFormat("'+temp+'")');
201 expect = '32767327673276732767327673276732767327673276732767327673276732767327673276732767327673276732767';
202 temp = '%Y%Y%Y%Y%Y%Y%Y%Y%Y%Y%Y%Y%Y%Y%Y%Y%Y%Y%Y';
203 actual = new Date(32767, 0).toLocaleFormat(temp);
204 reportCompare(expect, actual, 'Date.toLocaleFormat("'+temp+'")');
206 expect = 'xxxx32767327673276732767327673276732767327673276732767327673276732767327673276732767327673276732767';
207 temp = 'xxxx%Y%Y%Y%Y%Y%Y%Y%Y%Y%Y%Y%Y%Y%Y%Y%Y%Y%Y%Y';
208 actual = new Date(32767, 0).toLocaleFormat(temp);
209 reportCompare(expect, actual, 'Date.toLocaleFormat("'+temp+'")');
211 expect = new Date(32767, 0).toString();
212 temp = 'xxxxx%Y%Y%Y%Y%Y%Y%Y%Y%Y%Y%Y%Y%Y%Y%Y%Y%Y%Y%Y';
213 actual = new Date(32767, 0).toLocaleFormat(temp);
214 reportCompare(expect, actual, 'Date.toLocaleFormat("'+temp+'")');
217 expect = '-9999-9999-9999-9999-9999-9999-9999-9999-9999-9999-9999-9999-9999-9999-9999-9999-9999-9999-9999';
218 temp = '%Y%Y%Y%Y%Y%Y%Y%Y%Y%Y%Y%Y%Y%Y%Y%Y%Y%Y%Y';
219 actual = new Date(-9999, 0).toLocaleFormat(temp);
220 reportCompare(expect, actual, 'Date.toLocaleFormat("'+temp+'")');
222 expect = 'xxxx-9999-9999-9999-9999-9999-9999-9999-9999-9999-9999-9999-9999-9999-9999-9999-9999-9999-9999-9999';
223 temp = 'xxxx%Y%Y%Y%Y%Y%Y%Y%Y%Y%Y%Y%Y%Y%Y%Y%Y%Y%Y%Y';
224 actual = new Date(-9999, 0).toLocaleFormat(temp);
225 reportCompare(expect, actual, 'Date.toLocaleFormat("'+temp+'")');
227 expect = new Date(-9999, 0).toString();
228 temp = 'xxxx%Y%Y%Y%Y%Y%Y%Y%Y%Y%Y%Y%Y%Y%Y%Y%Y%Y%Y%Y%Y%Y%Y';
229 actual = new Date(-9999, 0).toLocaleFormat(temp);
230 reportCompare(expect, actual, 'Date.toLocaleFormat("'+temp+'")');