| Index: LayoutTests/http/tests/xmlhttprequest/response-document.html
|
| diff --git a/LayoutTests/http/tests/xmlhttprequest/resources/response-text.js b/LayoutTests/http/tests/xmlhttprequest/response-document.html
|
| similarity index 54%
|
| copy from LayoutTests/http/tests/xmlhttprequest/resources/response-text.js
|
| copy to LayoutTests/http/tests/xmlhttprequest/response-document.html
|
| index 216765a0e5f0e4cff25a95e1bc9168adbd9e29ef..d3f0e3426ec32398dcaa98f2b819c5ae677e15d0 100644
|
| --- a/LayoutTests/http/tests/xmlhttprequest/resources/response-text.js
|
| +++ b/LayoutTests/http/tests/xmlhttprequest/response-document.html
|
| @@ -1,3 +1,10 @@
|
| +<!DOCTYPE html>
|
| +<script src="/js-test-resources/js-test.js"></script>
|
| +<script>
|
| +
|
| +description("Request a file as the document type with asynchronous XMLHttpRequest in a document context.");
|
| +window.jsTestIsAsync = true;
|
| +
|
| var global = window;
|
|
|
| function rejectIfThrown(func, reject) {
|
| @@ -12,60 +19,71 @@ function rejectIfThrown(func, reject) {
|
|
|
| new Promise(function(resolve, reject) {
|
| global.req = new XMLHttpRequest;
|
| - req.responseType = 'text';
|
| - req.open('GET', 'resources/get.txt', true);
|
| + req.responseType = 'document';
|
| + req.open('GET', 'resources/test.html', true);
|
| req.onreadystatechange = rejectIfThrown(function() {
|
| if (req.readyState != req.DONE) {
|
| return;
|
| }
|
|
|
| shouldBe('req.status', '200');
|
| - shouldBeEqualToString('req.response', 'PASS');
|
| + shouldBeNonNull('req.response');
|
| + global.result = req.response.querySelector('p').innerText;
|
| + shouldBeEqualToString('result', 'PASS');
|
| +
|
| resolve();
|
| }, reject);
|
| req.send(null);
|
| }).catch(function(r) {
|
| - testFailed('Set responseType before open(): Failed: ' + r);
|
| + testFailed('Set responseType to document before open(): Failed: ' + r);
|
| }).then(function() {
|
| return new Promise(function(resolve, reject)
|
| {
|
| global.req = new XMLHttpRequest;
|
| req.responseType = 'blob';
|
| - req.open('GET', 'resources/get.txt', true);
|
| + req.open('GET', 'resources/test.html', true);
|
| req.onreadystatechange = rejectIfThrown(function() {
|
| if (req.readyState != req.DONE) {
|
| return;
|
| }
|
|
|
| shouldBe('req.status', '200');
|
| - shouldBeEqualToString('req.response', 'PASS');
|
| + shouldBeNonNull('req.response');
|
| + global.result = req.response.querySelector('p').innerText;
|
| + shouldBeEqualToString('result', 'PASS');
|
| +
|
| resolve();
|
| }, reject);
|
| - req.responseType = 'text';
|
| + req.responseType = 'document';
|
| req.send(null);
|
| });
|
| }).catch(function(r) {
|
| - testFailed('Change responseType from blob to text between open() and send(): Failed: ' + r);
|
| + testFailed('Change responseType from blob to document between open() and send(): Failed: ' + r);
|
| }).then(function() {
|
| return new Promise(function(resolve, reject)
|
| {
|
| global.req = new XMLHttpRequest;
|
| req.responseType = 'blob';
|
| - req.open('GET', 'resources/get.txt', true);
|
| + req.open('GET', 'resources/test.html', true);
|
| req.onreadystatechange = rejectIfThrown(function() {
|
| if (req.readyState == req.HEADERS_RECEIVED) {
|
| - req.responseType = 'text';
|
| + req.responseType = 'document';
|
| return;
|
| } else if (req.readyState != req.DONE) {
|
| return;
|
| }
|
|
|
| shouldBe('req.status', '200');
|
| - shouldBeEqualToString('req.response', 'PASS');
|
| + shouldBeNonNull('req.response');
|
| + global.result = req.response.querySelector('p').innerText;
|
| + shouldBeEqualToString('result', 'PASS');
|
| +
|
| resolve();
|
| }, reject);
|
| req.send(null);
|
| });
|
| }).catch(function(r) {
|
| - testFailed('Change responseType from blob to text in HEADERS_RECEIVED: Failed: ' + r);
|
| + testFailed('Change responseType from blob to document in HEADERS_RECEIVED: Failed: ' + r);
|
| }).then(finishJSTest, finishJSTest);
|
| +
|
| +</script>
|
|
|