|
1 function handleRequest(request, response) |
|
2 { |
|
3 response.setHeader("Cache-Control", "no-cache", false); |
|
4 var query = request.queryString; |
|
5 switch (query) { |
|
6 case "reset": |
|
7 response.setHeader("Content-Type", "application/ecmascript", false); |
|
8 setState("1l", ""); |
|
9 setState("1v", ""); |
|
10 setState("2l", ""); |
|
11 setState("2v", ""); |
|
12 break; |
|
13 case "1l": |
|
14 case "1v": |
|
15 case "2l": |
|
16 case "2v": |
|
17 setState(query, getState(query) + "load"); |
|
18 response.setStatusLine("1.1", 302, "Found"); |
|
19 // redirect to a solid blue image |
|
20 response.setHeader("Location", "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAIAAACQd1PeAAAADElEQVQI12NgYPgPAAEDAQDZqt2zAAAAAElFTkSuQmCC"); |
|
21 response.setHeader("Content-Type", "text/plain", false); |
|
22 break; |
|
23 |
|
24 case "waitforresult": |
|
25 response.setHeader("Content-Type", "application/ecmascript", false); |
|
26 response.write("var start = Date.now();\n"); |
|
27 // fall through! |
|
28 |
|
29 case "waitforresult-internal": |
|
30 response.setHeader("Content-Type", "application/ecmascript", false); |
|
31 response.write("if ('" + getState("1l") + "' == 'load' && '" + |
|
32 getState("1v") + "' == '' && '" + |
|
33 getState("2l") + "' == 'load' && '" + |
|
34 getState("2v") + "' == '') { \n"); |
|
35 response.write("setTimeout(function() {\n"); |
|
36 response.write("var s = document.createElement('script');\n"); |
|
37 response.write("s.src = 'visited_image_loading.sjs?result';\n"); |
|
38 response.write("document.body.appendChild(s);"); |
|
39 response.write("}, Math.max(100, 2 * (Date.now() - start)));\n"); |
|
40 response.write("} else setTimeout(function() {\n"); |
|
41 response.write("var s = document.createElement('script');\n"); |
|
42 response.write("s.src = 'visited_image_loading.sjs?waitforresult-internal';\n"); |
|
43 response.write("document.body.appendChild(s);"); |
|
44 response.write("}, 10);\n"); |
|
45 break; |
|
46 |
|
47 case "result": |
|
48 response.setHeader("Content-Type", "application/ecmascript", false); |
|
49 response.write("is('" + getState("1l") + |
|
50 "', 'load', 'image 1l should have been loaded once')\n"); |
|
51 response.write("is('" + getState("1v") + |
|
52 "', '', 'image 1v should not have been loaded')\n"); |
|
53 response.write("is('" + getState("2l") + |
|
54 "', 'load', 'image 2l should have been loaded once')\n"); |
|
55 response.write("is('" + getState("2v") + |
|
56 "', '', 'image 2v should not have been loaded')\n"); |
|
57 response.write("SimpleTest.finish()"); |
|
58 break; |
|
59 } |
|
60 } |