Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(446)

Side by Side Diff: LayoutTests/http/tests/xmlhttprequest/response-document.html

Issue 675453002: Add tests to check XHR with responseType set to document (Closed) Base URL: https://chromium.googlesource.com/chromium/blink.git@master
Patch Set: Rebase Created 6 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 <!DOCTYPE html>
2 <script src="/js-test-resources/js-test.js"></script>
3 <script>
4
5 description("Request a file as the document type with asynchronous XMLHttpReques t in a document context.");
6 window.jsTestIsAsync = true;
7
1 var global = window; 8 var global = window;
2 9
3 function rejectIfThrown(func, reject) { 10 function rejectIfThrown(func, reject) {
4 return function() { 11 return function() {
5 try { 12 try {
6 func(); 13 func();
7 } catch (e) { 14 } catch (e) {
8 reject(e); 15 reject(e);
9 } 16 }
10 }; 17 };
11 } 18 }
12 19
13 new Promise(function(resolve, reject) { 20 new Promise(function(resolve, reject) {
14 global.req = new XMLHttpRequest; 21 global.req = new XMLHttpRequest;
15 req.responseType = 'text'; 22 req.responseType = 'document';
16 req.open('GET', 'resources/get.txt', true); 23 req.open('GET', 'resources/test.html', true);
17 req.onreadystatechange = rejectIfThrown(function() { 24 req.onreadystatechange = rejectIfThrown(function() {
18 if (req.readyState != req.DONE) { 25 if (req.readyState != req.DONE) {
19 return; 26 return;
20 } 27 }
21 28
22 shouldBe('req.status', '200'); 29 shouldBe('req.status', '200');
23 shouldBeEqualToString('req.response', 'PASS'); 30 shouldBeNonNull('req.response');
31 global.result = req.response.querySelector('p').innerText;
32 shouldBeEqualToString('result', 'PASS');
33
24 resolve(); 34 resolve();
25 }, reject); 35 }, reject);
26 req.send(null); 36 req.send(null);
27 }).catch(function(r) { 37 }).catch(function(r) {
28 testFailed('Set responseType before open(): Failed: ' + r); 38 testFailed('Set responseType to document before open(): Failed: ' + r);
29 }).then(function() { 39 }).then(function() {
30 return new Promise(function(resolve, reject) 40 return new Promise(function(resolve, reject)
31 { 41 {
32 global.req = new XMLHttpRequest; 42 global.req = new XMLHttpRequest;
33 req.responseType = 'blob'; 43 req.responseType = 'blob';
34 req.open('GET', 'resources/get.txt', true); 44 req.open('GET', 'resources/test.html', true);
35 req.onreadystatechange = rejectIfThrown(function() { 45 req.onreadystatechange = rejectIfThrown(function() {
36 if (req.readyState != req.DONE) { 46 if (req.readyState != req.DONE) {
37 return; 47 return;
38 } 48 }
39 49
40 shouldBe('req.status', '200'); 50 shouldBe('req.status', '200');
41 shouldBeEqualToString('req.response', 'PASS'); 51 shouldBeNonNull('req.response');
52 global.result = req.response.querySelector('p').innerText;
53 shouldBeEqualToString('result', 'PASS');
54
42 resolve(); 55 resolve();
43 }, reject); 56 }, reject);
44 req.responseType = 'text'; 57 req.responseType = 'document';
45 req.send(null); 58 req.send(null);
46 }); 59 });
47 }).catch(function(r) { 60 }).catch(function(r) {
48 testFailed('Change responseType from blob to text between open() and send(): Failed: ' + r); 61 testFailed('Change responseType from blob to document between open() and sen d(): Failed: ' + r);
49 }).then(function() { 62 }).then(function() {
50 return new Promise(function(resolve, reject) 63 return new Promise(function(resolve, reject)
51 { 64 {
52 global.req = new XMLHttpRequest; 65 global.req = new XMLHttpRequest;
53 req.responseType = 'blob'; 66 req.responseType = 'blob';
54 req.open('GET', 'resources/get.txt', true); 67 req.open('GET', 'resources/test.html', true);
55 req.onreadystatechange = rejectIfThrown(function() { 68 req.onreadystatechange = rejectIfThrown(function() {
56 if (req.readyState == req.HEADERS_RECEIVED) { 69 if (req.readyState == req.HEADERS_RECEIVED) {
57 req.responseType = 'text'; 70 req.responseType = 'document';
58 return; 71 return;
59 } else if (req.readyState != req.DONE) { 72 } else if (req.readyState != req.DONE) {
60 return; 73 return;
61 } 74 }
62 75
63 shouldBe('req.status', '200'); 76 shouldBe('req.status', '200');
64 shouldBeEqualToString('req.response', 'PASS'); 77 shouldBeNonNull('req.response');
78 global.result = req.response.querySelector('p').innerText;
79 shouldBeEqualToString('result', 'PASS');
80
65 resolve(); 81 resolve();
66 }, reject); 82 }, reject);
67 req.send(null); 83 req.send(null);
68 }); 84 });
69 }).catch(function(r) { 85 }).catch(function(r) {
70 testFailed('Change responseType from blob to text in HEADERS_RECEIVED: Faile d: ' + r); 86 testFailed('Change responseType from blob to document in HEADERS_RECEIVED: F ailed: ' + r);
71 }).then(finishJSTest, finishJSTest); 87 }).then(finishJSTest, finishJSTest);
88
89 </script>
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698