OLD | NEW |
1 <!DOCTYPE html> | 1 <!DOCTYPE HTML> |
2 <html> | 2 <script src="/js-test-resources/js-test.js"></script> |
3 <body> | 3 <script src="script-tests/eventsource-content-type-charset.js"></script> |
4 <p>Test for bug <a href="https://bugs.webkit.org/show_bug.cgi?id=45372">45372</a
>: https://bugs.webkit.org/show_bug.cgi?id=45372</p> | |
5 <p>Test EventSource with an event-stream with a Content-Type with a charset is s
till recognized. You should see 5 PASSED below.</p> | |
6 <div id="result"></div> | |
7 <script> | |
8 function log(msg) { | |
9 document.getElementById("result").innerHTML += msg + "<br>"; | |
10 } | |
11 | |
12 if (window.testRunner) { | |
13 testRunner.dumpAsText(); | |
14 testRunner.waitUntilDone(); | |
15 } | |
16 | |
17 function shouldGetMessage(es) | |
18 { | |
19 if (es.sawOpen && es.sawMessage && !es.sawError) | |
20 log("PASSED: " + es.contentType); | |
21 else | |
22 log("FAILED: " + es.contentType); | |
23 } | |
24 | |
25 function shouldFail(es) | |
26 { | |
27 if (es.sawError && !es.sawOpen && !es.sawMessages) | |
28 log("PASSED: " + es.contentType); | |
29 else | |
30 log("FAILED: " + es.contentType); | |
31 } | |
32 | |
33 var i = 0; | |
34 var contentTypes = [ 'text/event-stream; charset=UTF-8', | |
35 'text/event-stream; charset=windows-1251', | |
36 'text/event-stream; charset=utf-8', | |
37 'text/event-stream; charset="UTF-8"', | |
38 'text/event-stream-foobar;' | |
39 ]; | |
40 | |
41 var expectedResultCallback = [ shouldGetMessage, | |
42 shouldFail, | |
43 shouldGetMessage, | |
44 shouldGetMessage, | |
45 shouldFail | |
46 ]; | |
47 | |
48 function openListener(evt) { | |
49 evt.target.sawOpen = true; | |
50 }; | |
51 | |
52 function messageListener(evt) { | |
53 evt.target.sawMessage = true; | |
54 evt.target.successCallback(evt.target); | |
55 evt.target.close(); | |
56 next(); | |
57 }; | |
58 | |
59 function errorListener(evt) { | |
60 evt.target.sawError = true; | |
61 evt.target.successCallback(evt.target); | |
62 evt.target.close(); | |
63 next(); | |
64 }; | |
65 | |
66 function startRequest() | |
67 { | |
68 es = new EventSource("resources/response-content-type-charset.php?contentTyp
e=" + escape(contentTypes[i])); | |
69 es.onopen = openListener; | |
70 es.onmessage = messageListener; | |
71 es.onerror = errorListener; | |
72 es.successCallback = expectedResultCallback[i]; | |
73 es.contentType = contentTypes[i]; | |
74 ++i; | |
75 } | |
76 | |
77 function next() { | |
78 if (i >= contentTypes.length) { | |
79 end(); | |
80 return; | |
81 } | |
82 startRequest(); | |
83 } | |
84 | |
85 function end() { | |
86 if (window.testRunner) | |
87 testRunner.notifyDone(); | |
88 } | |
89 startRequest(); | |
90 </script> | |
91 </body> | |
92 </html> | |
OLD | NEW |