OLD | NEW |
| 1 <!DOCTYPE HTML> |
| 2 <script src="/js-test-resources/js-test.js"></script> |
| 3 <script src="resources/supported-xml-content-types.js"></script> |
1 <script> | 4 <script> |
| 5 description("Test identification of XML content type in XHR responses."); |
| 6 window.jsTestIsAsync = true; |
2 if (window.testRunner) | 7 if (window.testRunner) |
3 testRunner.dumpAsText(); | 8 testRunner.dumpAsText(); |
4 | 9 |
5 var request = new XMLHttpRequest(); | |
6 | |
7 function getXMLOfType(type) | |
8 { | |
9 var escapedType = escape(type).replace(/\+/g, "^^PLUS^^"); // Perl CGI modul
e seems replace + with a space | |
10 request.open("GET", "supported-xml-content-types.cgi?type=" + escapedType, f
alse); | |
11 request.send(null); | |
12 return request.responseXML; | |
13 } | |
14 | |
15 function testXMLType(type, expected) | |
16 { | |
17 var xmlResult = getXMLOfType(type); | |
18 var statusText = "FAIL (response type: " + request.getResponseHeader("Conten
t-type") + ")"; | |
19 | |
20 if (xmlResult) { | |
21 statusText = "FAIL (got document -- response type: " + request.getRespon
seHeader("Content-type") + ")"; | |
22 var typeElement = xmlResult.firstChild; | |
23 if (expected && typeElement) { | |
24 if (typeElement.textContent == type) | |
25 statusText = "PASS"; | |
26 else | |
27 statusText = "FAIL (incorrect content: " + typeElement.textConte
nt + " expected: " + type + ")"; | |
28 } | |
29 } else if (!expected) | |
30 statusText = "PASS"; | |
31 | |
32 document.write("<p>" + statusText + " -- testing: " + type + " -- responseXM
L: " + xmlResult + "</p>"); | |
33 } | |
34 | |
35 // valid types | 10 // valid types |
36 testXMLType("text/xml", true); | 11 testXMLType("text/xml", true); |
37 testXMLType("image/svg+xml", true); | 12 testXMLType("image/svg+xml", true); |
38 testXMLType("application/soap+xml", true); | 13 testXMLType("application/soap+xml", true); |
39 testXMLType("foo/bar+xml", true); | 14 testXMLType("foo/bar+xml", true); |
40 testXMLType("123/BAR+xml", true); | 15 testXMLType("123/BAR+xml", true); |
41 | 16 |
42 // They may be strange, but these should all be valid: | |
43 testXMLType("foo_bar/baz+xml", true); | |
44 testXMLType("foo-bar/baz+xml", true); | |
45 testXMLType("foo+bar/baz+xml", true); | |
46 testXMLType("foo~bar/baz+xml", true); | |
47 testXMLType("foo!bar/baz+xml", true); | |
48 testXMLType("foo$bar/baz+xml", true); | |
49 testXMLType("foo^bar/baz+xml", true); | |
50 testXMLType("foo{bar/baz+xml", true); | |
51 testXMLType("foo}bar/baz+xml", true); | |
52 testXMLType("foo|bar/baz+xml", true); | |
53 testXMLType("foo%bar/baz+xml", true); | |
54 testXMLType("foo'bar/baz+xml", true); | |
55 testXMLType("foo`bar/baz+xml", true); | |
56 testXMLType("foo#bar/baz+xml", true); | |
57 testXMLType("foo&bar/baz+xml", true); | |
58 testXMLType("foo*bar/baz+xml", true); | |
59 | |
60 // non-xml types | 17 // non-xml types |
61 testXMLType("text/html", false); | 18 testXMLType("text/html", false); |
62 testXMLType("image/png", false); | 19 testXMLType("image/png", false); |
63 | 20 |
64 | |
65 // invalid types | 21 // invalid types |
66 testXMLType("invalid", false); | 22 testXMLType("invalid", false); |
67 | 23 |
68 // FIXME: our code intentionally skips spaces, that seems wrong to me. | 24 runNextTest(); |
69 // https://bugs.webkit.org/show_bug.cgi?id=8644 | |
70 testXMLType("foo bar/baz+xml", false); | |
71 | |
72 testXMLType("foo[bar/baz+xml", false); | |
73 testXMLType("foo]bar/baz+xml", false); | |
74 testXMLType("foo(bar/baz+xml", false); | |
75 testXMLType("foo)bar/baz+xml", false); | |
76 testXMLType("foo<bar/baz+xml", false); | |
77 testXMLType("foo>bar/baz+xml", false); | |
78 testXMLType("foo@bar/baz+xml", false); | |
79 testXMLType("foo,bar/baz+xml", false); | |
80 testXMLType("foo;bar/baz+xml", false); | |
81 testXMLType("foo:bar/baz+xml", false); | |
82 testXMLType("foo\\bar/baz+xml", false); | |
83 testXMLType('foo"bar/baz+xml', false); | |
84 testXMLType("foo/bar/baz+xml", false); | |
85 testXMLType("foo?bar/baz+xml", false); | |
86 testXMLType("foo=bar/baz+xml", false); | |
87 | |
88 </script> | 25 </script> |
OLD | NEW |