Sync web-platform-tests up to revision a5b95cb31914507088a4eda16f7674bbc6f3313f
[WebKit-https.git] / LayoutTests / imported / w3c / web-platform-tests / XMLHttpRequest / data-uri.htm
1 <!doctype html>
2 <meta charset=utf-8>
3 <title>XMLHttpRequest: data URLs</title>
4 <script src="/resources/testharness.js"></script>
5 <script src="/resources/testharnessreport.js"></script>
6 <div id="log"></div>
7
8 <script>
9   function do_test(method, url, mimeType, testNamePostfix) {
10     if (typeof mimeType === 'undefined' || mimeType === null) mimeType = 'text/plain';
11     var test = async_test("XHR method " + method + " with MIME type " + mimeType + (testNamePostfix||''));
12     test.step(function() {
13       var client = new XMLHttpRequest();
14       client.onreadystatechange = test.step_func(function () {
15         if (client.readyState !== 4) {
16           return;
17         }
18
19         assert_equals(client.responseText, "Hello, World!");
20         assert_equals(client.status, 200);
21         assert_equals(client.getResponseHeader('Content-Type'), mimeType);
22         var allHeaders = client.getAllResponseHeaders();
23         assert_regexp_match(allHeaders, /content\-type\:/i, 'getAllResponseHeaders() includes Content-Type');
24         assert_false(/content\-length\:/i.test(allHeaders), 'getAllResponseHeaders() must not include Content-Length');
25         test.done();
26       });
27       client.open(method, url);
28       client.send(null);
29     });
30   }
31   do_test('GET', "data:text/plain,Hello, World!");
32   do_test('GET', "data:text/plain;base64,SGVsbG8sIFdvcmxkIQ==", undefined, " (base64)");
33   do_test('GET', "data:text/html,Hello, World!", 'text/html');
34   do_test('GET', "data:text/html;charset=UTF-8,Hello, World!", 'text/html;charset=UTF-8');
35   do_test('GET', "data:image/png,Hello, World!", 'image/png');
36   do_test('POST', "data:text/plain,Hello, World!");
37   do_test('PUT', "data:text/plain,Hello, World!");
38   do_test('DELETE', "data:text/plain,Hello, World!");
39   do_test('HEAD', "data:text/plain,Hello, World!");
40   do_test('UNICORN', "data:text/plain,Hello, World!");
41 </script>