Tighten XMLHttpRequest setRequestHeader value check
[WebKit-https.git] / LayoutTests / http / tests / xmlhttprequest / set-bad-headervalue.html
1 <!doctype html>
2 <html>
3   <head>
4     <meta charset="utf-8">
5     <title>XMLHttpRequest: setRequestHeader() value argument checks</title>
6     <script src="/js-test-resources/testharness.js"></script>
7     <script src="/js-test-resources/testharnessreport.js"></script>
8     <!-- Test based on http://w3c-test.org/web-platform-tests/master/XMLHttpRequest/setrequestheader-bogus-value.htm This test should be removed once wpt XMLHttpRequest is imported if both tests are in sync -->
9   </head>
10   <body>
11     <div id="log"></div>
12     <script>
13       function try_value(value, expectError) {
14         test(function() {
15           var client = new XMLHttpRequest()
16           client.open("GET", "...")
17           if (expectError)
18               assert_throws("SyntaxError", function() { client.setRequestHeader("x-test", value) }, ' given value ' + value+', ')
19           else
20               client.setRequestHeader("x-test", value)  
21           })
22       }
23
24       try_value("t\rt", true)
25       try_value("t\nt", true)
26       try_value("テスト", true)
27       try_value("t\bt", true)
28       try_value("t\vt", true)
29       try_value("t\tt", false)
30       try_value("t t", false)
31       try_value(" t", true)
32       try_value("t ", true)
33       try_value("\xd0\xa1", false)
34       try_value("\x7f", true)
35       test(function() {
36         var client = new XMLHttpRequest()
37         client.open("GET", "...")
38         assert_throws({name:'TypeError'}, function() { client.setRequestHeader("x-test") })
39       })
40     </script>
41   </body>
42 </html>