| <!doctype html> | |
| <html> | |
| <head> | |
| <title>XMLHttpRequest: send() - Document</title> | |
| <meta charset="utf-8"> | |
| <script src="/resources/testharness.js"></script> | |
| <script src="/resources/testharnessreport.js"></script> | |
| <link rel="help" href="https://xhr.spec.whatwg.org/#the-send()-method" data-tested-assertations="/following::ol/li[4]" /> | |
| <link rel="help" href="https://xhr.spec.whatwg.org/#dom-XMLHttpRequest-send-document" data-tested-assertations="/following::dd" /> | |
| </head> | |
| <body> | |
| <div id="log"></div> | |
| <script> | |
| var tests = [ | |
| { | |
| title: 'XML document, windows-1252', | |
| url: 'resources/win-1252-xml.py', | |
| contentType: 'application/xml;charset=UTF-8', | |
| responseText: '<\u00FF\/>' | |
| }, | |
| // Invalid character code in document turns into U+FFFD. | |
| { | |
| title: 'HTML document, invalid UTF-8', | |
| url: 'resources/invalid-utf8-html.py', | |
| contentType: 'text/html;charset=UTF-8', | |
| responseText: '<body>\uFFFD<\/body>' | |
| }, | |
| // Correctly serialized Shift-JIS. | |
| { | |
| title: 'HTML document, shift-jis', | |
| url: 'resources/shift-jis-html.py', | |
| contentType: 'text/html;charset=UTF-8', | |
| responseText: '<body>\u30C6\u30b9\u30c8<\/body>' | |
| }, | |
| // There's some markup included, but it's not really relevant for this | |
| // test suite, so we do an indexOf() test. | |
| { | |
| title: 'plain text file', | |
| url: 'folder.txt', | |
| contentType: 'text/html;charset=UTF-8', | |
| responseText: 'top' | |
| }, | |
| // This test does not want to assert anything about what markup a | |
| // standalone image should be wrapped in. Hence this test lacks a | |
| // responseText expectation. | |
| { | |
| title: 'image file', | |
| url: 'resources/image.gif', | |
| contentType: 'text/html;charset=UTF-8' | |
| }, | |
| { | |
| title: 'img tag', | |
| url: 'resources/img-utf8-html.py', | |
| contentType: 'text/html;charset=UTF-8', | |
| responseText: '<img>foo' | |
| }, | |
| { | |
| title: 'empty div', | |
| url: 'resources/empty-div-utf8-html.py', | |
| contentType: 'text/html;charset=UTF-8', | |
| responseText: '<!DOCTYPE html><html><head></head><body><div></div></body></html>' | |
| } | |
| ]; | |
| tests.forEach(function(t) { | |
| async_test(function() { | |
| var iframe = document.createElement("iframe"); | |
| iframe.onload = this.step_func_done(function() { | |
| var client = new XMLHttpRequest() | |
| client.open("POST", "resources/content.py?response_charset_label=UTF-8", false) | |
| client.send(iframe.contentDocument) | |
| assert_equals(client.getResponseHeader('X-Request-Content-Type'), | |
| t.contentType, | |
| 'document should be serialized and sent as ' + t.contentType) | |
| // The indexOf() assertion will overlook some stuff, e.g. XML | |
| // prologues that shouldn't be there (looking at you, Presto). | |
| // However, arguably these things have little to do with the XHR | |
| // functionality we're testing. | |
| if (t.responseText) { | |
| assert_true(client.responseText.indexOf(t.responseText) != -1, | |
| JSON.stringify(t.responseText) + " not in " + | |
| JSON.stringify(client.responseText)); | |
| } | |
| assert_equals(client.responseXML, null) | |
| }); | |
| iframe.src = t.url; | |
| document.body.appendChild(iframe); | |
| }, t.title); | |
| }); | |
| </script> | |
| </body> | |
| </html> |