Tue, 06 Jan 2015 21:39:09 +0100
Conditionally force memory storage according to privacy.thirdparty.isolate;
This solves Tor bug #9701, complying with disk avoidance documented in
https://www.torproject.org/projects/torbrowser/design/#disk-avoidance.
1 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
2 "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
3 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
4 <head>
5 <title>script.aculo.us Unit test file</title>
6 <meta http-equiv="content-type" content="text/html; charset=utf-8" />
7 <script src="../../lib/prototype.js" type="text/javascript"></script>
8 <script src="../../src/scriptaculous.js" type="text/javascript"></script>
9 <script src="../../src/unittest.js" type="text/javascript"></script>
10 <link rel="stylesheet" href="../test.css" type="text/css" />
11 </head>
12 <body>
13 <h1>script.aculo.us Unit test file</h1>
14 <p>
15 Tests for Postion.clone (to be moved to Prototype)
16 </p>
18 <!-- Log output -->
19 <div id="testlog"> </div>
21 <!-- Tests follow -->
22 <script type="text/javascript" language="javascript" charset="utf-8">
23 // <![CDATA[
25 function prepareTarget(contained, position1, position2) {
26 var target;
27 if($('target_div')) Element.remove('target_div');
28 if($('container_div')) Element.remove('container_div');
29 if(contained) {
30 target = Builder.node('div',
31 {id: 'container_div', style: 'position:' + position1},
32 [Builder.node('div', {id: 'target_div', style: 'position: ' +position2})]);
33 } else {
34 target = Builder.node('div',
35 {id: 'target_div', style: 'position:' + position1}, '456');
36 }
37 document.body.appendChild(target);
38 Position.clone($('source_div'),$('target_div'));
39 }
41 function prepareTargetHidden(contained, position1, position2) {
42 var target;
43 if($('target_div')) Element.remove('target_div');
44 if($('container_div')) Element.remove('container_div');
45 if(contained) {
46 target = Builder.node('div',
47 {id: 'container_div', style: 'position:' + position1},
48 [Builder.node('div', {id: 'target_div', style: 'display:none; position: ' +position2})]);
49 } else {
50 target = Builder.node('div',
51 {id: 'target_div', style: 'display:none; position:' + position1}, '456');
52 }
53 document.body.appendChild(target);
54 Position.clone($('source_div'),$('target_div'));
55 Element.show($('target_div'));
56 }
58 new Test.Unit.Runner({
60 teardown: function() {
61 Element.remove($('source_div'));
62 },
64 testPositionCloneFromAbsolute: function() { with(this) {
65 var source = Builder.node('div',
66 {id: 'source_div', style: 'position:absolute; top:20px; left:120px; width:100px; height:50px;'}, '123');
67 document.body.appendChild(source);
68 var expected = Object.inspect([120, 20]);
69 assertEqual(expected, Object.inspect(Position.page($('source_div'))));
71 prepareTarget(false, 'absolute');
72 assertEqual(expected, Object.inspect(Position.page($('target_div'))),
73 "Clone to absolute BODY child");
75 prepareTarget(false, 'fixed');
76 assertEqual(expected, Object.inspect(Position.page($('target_div'))),
77 "Clone to fixed BODY child");
79 prepareTarget(true, 'absolute', 'absolute');
80 assertEqual(expected, Object.inspect(Position.page($('target_div'))),
81 "Clone to absolute child of absolute BODY child");
83 prepareTarget(true, 'absolute', 'fixed');
84 assertEqual(expected, Object.inspect(Position.page($('target_div'))),
85 "Clone to fixed child of absolute BODY child");
87 prepareTarget(true, 'relative', 'absolute');
88 assertEqual(expected, Object.inspect(Position.page($('target_div'))),
89 "Clone to absolute child of relative BODY child");
91 prepareTarget(true, 'relative', 'fixed');
92 assertEqual(expected, Object.inspect(Position.page($('target_div'))),
93 "Clone to fixed child of relative BODY child");
95 prepareTarget(true, 'static', 'absolute');
96 assertEqual(expected, Object.inspect(Position.page($('target_div'))),
97 "Clone to absolute child of static BODY child");
99 prepareTarget(true, 'static', 'fixed');
100 assertEqual(expected, Object.inspect(Position.page($('target_div'))),
101 "Clone to fixed child of static BODY child");
102 }},
104 testPositionCloneFromRelative: function() { with(this) {
105 var source = Builder.node('div',
106 {id: 'source_div', style: 'position:relative; top:20px; left:120px; width:100px; height:50px;'}, '123');
107 document.body.appendChild(source);
108 var expected = Object.inspect(Position.page($('source_div')));
109 assertEqual(expected, Object.inspect(Position.page($('source_div'))));
111 prepareTarget(false, 'absolute');
112 assertEqual(expected, Object.inspect(Position.page($('target_div'))),
113 "Clone to absolute BODY child");
115 prepareTarget(false, 'fixed');
116 assertEqual(expected, Object.inspect(Position.page($('target_div'))),
117 "Clone to fixed BODY child");
119 prepareTarget(true, 'absolute', 'absolute');
120 assertEqual(expected, Object.inspect(Position.page($('target_div'))),
121 "Clone to absolute child of absolute BODY child");
123 prepareTarget(true, 'absolute', 'fixed');
124 assertEqual(expected, Object.inspect(Position.page($('target_div'))),
125 "Clone to fixed child of absolute BODY child");
127 prepareTarget(true, 'relative', 'absolute');
128 assertEqual(expected, Object.inspect(Position.page($('target_div'))),
129 "Clone to absolute child of relative BODY child");
131 prepareTarget(true, 'relative', 'fixed');
132 assertEqual(expected, Object.inspect(Position.page($('target_div'))),
133 "Clone to fixed child of relative BODY child");
135 prepareTarget(true, 'static', 'absolute');
136 assertEqual(expected, Object.inspect(Position.page($('target_div'))),
137 "Clone to absolute child of static BODY child");
139 prepareTarget(true, 'static', 'fixed');
140 assertEqual(expected, Object.inspect(Position.page($('target_div'))),
141 "Clone to fixed child of static BODY child");
142 }},
144 testPositionCloneFromStatic: function() { with(this) {
145 var source = Builder.node('div',
146 {id: 'source_div', style: 'top:20px; left:120px; width:100px; height:50px;'}, '123');
147 document.body.appendChild(source);
148 var expected = Object.inspect(Position.page($('source_div')));
149 assertEqual(expected, Object.inspect(Position.page($('source_div'))));
151 prepareTarget(false, 'absolute');
152 assertEqual(expected, Object.inspect(Position.page($('target_div'))),
153 "Clone to absolute BODY child");
155 prepareTarget(false, 'fixed');
156 assertEqual(expected, Object.inspect(Position.page($('target_div'))),
157 "Clone to fixed BODY child");
159 prepareTarget(true, 'absolute', 'absolute');
160 assertEqual(expected, Object.inspect(Position.page($('target_div'))),
161 "Clone to absolute child of absolute BODY child");
163 prepareTarget(true, 'absolute', 'fixed');
164 assertEqual(expected, Object.inspect(Position.page($('target_div'))),
165 "Clone to fixed child of absolute BODY child");
167 prepareTarget(true, 'relative', 'absolute');
168 assertEqual(expected, Object.inspect(Position.page($('target_div'))),
169 "Clone to absolute child of relative BODY child");
171 prepareTarget(true, 'relative', 'fixed');
172 assertEqual(expected, Object.inspect(Position.page($('target_div'))),
173 "Clone to fixed child of relative BODY child");
175 prepareTarget(true, 'static', 'absolute');
176 assertEqual(expected, Object.inspect(Position.page($('target_div'))),
177 "Clone to absolute child of static BODY child");
179 prepareTarget(true, 'static', 'fixed');
180 assertEqual(expected, Object.inspect(Position.page($('target_div'))),
181 "Clone to fixed child of static BODY child");
182 }},
184 testPositionCloneFromAbsoluteWithHiddenTarget: function() { with(this) {
185 var source = Builder.node('div',
186 {id: 'source_div', style: 'position:absolute; top:20px; left:120px; width:100px; height:50px;'}, '123');
187 document.body.appendChild(source);
188 var expected = Object.inspect([120, 20]);
189 assertEqual(expected, Object.inspect(Position.page($('source_div'))));
191 prepareTargetHidden(false, 'absolute');
192 assertEqual(expected, Object.inspect(Position.page($('target_div'))),
193 "Clone to absolute BODY child");
195 prepareTargetHidden(false, 'fixed');
196 assertEqual(expected, Object.inspect(Position.page($('target_div'))),
197 "Clone to fixed BODY child");
199 prepareTargetHidden(true, 'absolute', 'absolute');
200 assertEqual(expected, Object.inspect(Position.page($('target_div'))),
201 "Clone to absolute child of absolute BODY child");
203 prepareTargetHidden(true, 'absolute', 'fixed');
204 assertEqual(expected, Object.inspect(Position.page($('target_div'))),
205 "Clone to fixed child of absolute BODY child");
207 prepareTargetHidden(true, 'relative', 'absolute');
208 assertEqual(expected, Object.inspect(Position.page($('target_div'))),
209 "Clone to absolute child of relative BODY child");
211 prepareTargetHidden(true, 'relative', 'fixed');
212 assertEqual(expected, Object.inspect(Position.page($('target_div'))),
213 "Clone to fixed child of relative BODY child");
215 prepareTargetHidden(true, 'static', 'absolute');
216 assertEqual(expected, Object.inspect(Position.page($('target_div'))),
217 "Clone to absolute child of static BODY child");
219 prepareTargetHidden(true, 'static', 'fixed');
220 assertEqual(expected, Object.inspect(Position.page($('target_div'))),
221 "Clone to fixed child of static BODY child");
222 }},
224 testPositionCloneFromRelativeWithHiddenTarget: function() { with(this) {
225 var source = Builder.node('div',
226 {id: 'source_div', style: 'position:relative; top:20px; left:120px; width:100px; height:50px;'}, '123');
227 document.body.appendChild(source);
228 var expected = Object.inspect(Position.page($('source_div')));
229 assertEqual(expected, Object.inspect(Position.page($('source_div'))));
231 prepareTargetHidden(false, 'absolute');
232 assertEqual(expected, Object.inspect(Position.page($('target_div'))),
233 "Clone to absolute BODY child");
235 prepareTargetHidden(false, 'fixed');
236 assertEqual(expected, Object.inspect(Position.page($('target_div'))),
237 "Clone to fixed BODY child");
239 prepareTargetHidden(true, 'absolute', 'absolute');
240 assertEqual(expected, Object.inspect(Position.page($('target_div'))),
241 "Clone to absolute child of absolute BODY child");
243 prepareTargetHidden(true, 'absolute', 'fixed');
244 assertEqual(expected, Object.inspect(Position.page($('target_div'))),
245 "Clone to fixed child of absolute BODY child");
247 prepareTargetHidden(true, 'relative', 'absolute');
248 assertEqual(expected, Object.inspect(Position.page($('target_div'))),
249 "Clone to absolute child of relative BODY child");
251 prepareTargetHidden(true, 'relative', 'fixed');
252 assertEqual(expected, Object.inspect(Position.page($('target_div'))),
253 "Clone to fixed child of relative BODY child");
255 prepareTargetHidden(true, 'static', 'absolute');
256 assertEqual(expected, Object.inspect(Position.page($('target_div'))),
257 "Clone to absolute child of static BODY child");
259 prepareTargetHidden(true, 'static', 'fixed');
260 assertEqual(expected, Object.inspect(Position.page($('target_div'))),
261 "Clone to fixed child of static BODY child");
262 }},
264 testPositionCloneFromStaticWithHiddenTarget: function() { with(this) {
265 var source = Builder.node('div',
266 {id: 'source_div', style: 'top:20px; left:120px; width:100px; height:50px;'}, '123');
267 document.body.appendChild(source);
268 var expected = Object.inspect(Position.page($('source_div')));
269 assertEqual(expected, Object.inspect(Position.page($('source_div'))));
271 prepareTargetHidden(false, 'absolute');
272 assertEqual(expected, Object.inspect(Position.page($('target_div'))),
273 "Clone to absolute BODY child");
275 prepareTargetHidden(false, 'fixed');
276 assertEqual(expected, Object.inspect(Position.page($('target_div'))),
277 "Clone to fixed BODY child");
279 prepareTargetHidden(true, 'absolute', 'absolute');
280 assertEqual(expected, Object.inspect(Position.page($('target_div'))),
281 "Clone to absolute child of absolute BODY child");
283 prepareTargetHidden(true, 'absolute', 'fixed');
284 assertEqual(expected, Object.inspect(Position.page($('target_div'))),
285 "Clone to fixed child of absolute BODY child");
287 prepareTargetHidden(true, 'relative', 'absolute');
288 assertEqual(expected, Object.inspect(Position.page($('target_div'))),
289 "Clone to absolute child of relative BODY child");
291 prepareTargetHidden(true, 'relative', 'fixed');
292 assertEqual(expected, Object.inspect(Position.page($('target_div'))),
293 "Clone to fixed child of relative BODY child");
295 prepareTargetHidden(true, 'static', 'absolute');
296 assertEqual(expected, Object.inspect(Position.page($('target_div'))),
297 "Clone to absolute child of static BODY child");
299 prepareTargetHidden(true, 'static', 'fixed');
300 assertEqual(expected, Object.inspect(Position.page($('target_div'))),
301 "Clone to fixed child of static BODY child");
302 }}
304 });
306 // ]]>
307 </script>
309 <!-- Test elements will be inserted after this -->
311 </body>
312 </html>