OLD | NEW |
1 if (self.importScripts) { | 1 if (self.importScripts) { |
2 importScripts('../resources/fetch-test-helpers.js'); | 2 importScripts('../resources/fetch-test-helpers.js'); |
3 } | 3 } |
4 | 4 |
5 promise_test(function(t) { | 5 promise_test(function(t) { |
6 return fetch('http://') | 6 return fetch('http://') |
7 .then( | 7 .then( |
8 t.unreached_func('fetch of invalid URL must fail'), | 8 t.unreached_func('fetch of invalid URL must fail'), |
9 function() {}); | 9 function() {}); |
10 }, 'Fetch invalid URL'); | 10 }, 'Fetch invalid URL'); |
(...skipping 64 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
75 var redirect_target_url = | 75 var redirect_target_url = |
76 BASE_ORIGIN + '/fetch/resources/fetch-status.php?status=200'; | 76 BASE_ORIGIN + '/fetch/resources/fetch-status.php?status=200'; |
77 var redirect_original_url = | 77 var redirect_original_url = |
78 BASE_ORIGIN + '/serviceworker/resources/redirect.php?Redirect=' + | 78 BASE_ORIGIN + '/serviceworker/resources/redirect.php?Redirect=' + |
79 redirect_target_url; | 79 redirect_target_url; |
80 | 80 |
81 var request = new Request(redirect_original_url); | 81 var request = new Request(redirect_original_url); |
82 assert_equals(request.url, redirect_original_url, | 82 assert_equals(request.url, redirect_original_url, |
83 'Request\'s url is the original URL'); | 83 'Request\'s url is the original URL'); |
84 assert_equals(request.context, ''); | 84 assert_equals(request.context, ''); |
| 85 assert_equals(request.redirect, 'follow'); |
85 | 86 |
86 return fetch(request) | 87 return fetch(request) |
87 .then(function(response) { | 88 .then(function(response) { |
88 assert_equals(response.status, 200); | 89 assert_equals(response.status, 200); |
89 assert_equals(response.statusText, 'OK'); | 90 assert_equals(response.statusText, 'OK'); |
90 assert_equals(response.url, redirect_target_url, | 91 assert_equals(response.url, redirect_target_url, |
91 'Response\'s url is locationURL'); | 92 'Response\'s url is locationURL'); |
92 assert_equals(request.url, redirect_original_url, | 93 assert_equals(request.url, redirect_original_url, |
93 'Request\'s url remains the original URL'); | 94 'Request\'s url remains the original URL'); |
94 assert_equals(request.context, ''); | 95 assert_equals(request.context, ''); |
95 }); | 96 }); |
96 }, 'Request/response url attribute getter with redirect'); | 97 }, 'Request/response url attribute getter with redirect'); |
97 | 98 |
| 99 promise_test(function(t) { |
| 100 var redirect_target_url = |
| 101 BASE_ORIGIN + '/fetch/resources/fetch-status.php?status=200'; |
| 102 var redirect_original_url = |
| 103 BASE_ORIGIN + '/serviceworker/resources/redirect.php?Redirect=' + |
| 104 redirect_target_url; |
| 105 |
| 106 var request = new Request(redirect_original_url, {redirect: 'manual'}); |
| 107 assert_equals(request.url, redirect_original_url, |
| 108 'Request\'s url is the original URL'); |
| 109 assert_equals(request.context, ''); |
| 110 assert_equals(request.redirect, 'manual'); |
| 111 |
| 112 return fetch(request) |
| 113 .then(function(response) { |
| 114 assert_equals(response.status, 0); |
| 115 assert_equals(response.type, 'opaqueredirect'); |
| 116 assert_equals(response.url, ''); |
| 117 }); |
| 118 }, 'Manual redirect fetch returns opaque redirect response'); |
| 119 |
| 120 promise_test(function(t) { |
| 121 var redirect_target_url = |
| 122 BASE_ORIGIN + '/fetch/resources/fetch-status.php?status=200'; |
| 123 var redirect_original_url = |
| 124 BASE_ORIGIN + '/serviceworker/resources/redirect.php?Redirect=' + |
| 125 redirect_target_url; |
| 126 |
| 127 var request = new Request(redirect_original_url, {redirect: 'error'}); |
| 128 assert_equals(request.url, redirect_original_url, |
| 129 'Request\'s url is the original URL'); |
| 130 assert_equals(request.context, ''); |
| 131 assert_equals(request.redirect, 'error'); |
| 132 |
| 133 return fetch(request) |
| 134 .then( |
| 135 t.unreached_func('Redirect response must cause an error when redirct' + |
| 136 ' mode is error.'), |
| 137 function() {}); |
| 138 }, 'Redirect response must cause an error when redirct mode is error.'); |
| 139 |
| 140 promise_test(function(test) { |
| 141 var url = BASE_ORIGIN + '/fetch/resources/doctype.html'; |
| 142 return fetch(new Request(url, {redirect: 'manual'})) |
| 143 .then(function(response) { |
| 144 assert_equals(response.status, 200); |
| 145 assert_equals(response.statusText, 'OK'); |
| 146 assert_equals(response.url, url); |
| 147 return response.text(); |
| 148 }) |
| 149 .then(function(text) { assert_equals(text, '<!DOCTYPE html>\n'); }) |
| 150 }, 'No-redirect fetch completes normally even if redirect mode is manual'); |
| 151 |
| 152 promise_test(function(test) { |
| 153 var url = BASE_ORIGIN + '/fetch/resources/doctype.html'; |
| 154 return fetch(new Request(url, {redirect: 'error'})) |
| 155 .then(function(response) { |
| 156 assert_equals(response.status, 200); |
| 157 assert_equals(response.statusText, 'OK'); |
| 158 assert_equals(response.url, url); |
| 159 return response.text(); |
| 160 }) |
| 161 .then(function(text) { assert_equals(text, '<!DOCTYPE html>\n'); }) |
| 162 }, 'No-redirect fetch completes normally even if redirect mode is error'); |
| 163 |
98 function evalJsonp(text) { | 164 function evalJsonp(text) { |
99 return new Promise(function(resolve) { | 165 return new Promise(function(resolve) { |
100 var report = resolve; | 166 var report = resolve; |
101 // text must contain report() call. | 167 // text must contain report() call. |
102 eval(text); | 168 eval(text); |
103 }); | 169 }); |
104 } | 170 } |
105 | 171 |
106 promise_test(function(t) { | 172 promise_test(function(t) { |
107 var request = | 173 var request = |
(...skipping 100 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
208 function runInfiniteFetchLoop() { | 274 function runInfiniteFetchLoop() { |
209 fetch('dummy.html') | 275 fetch('dummy.html') |
210 .then(function() { runInfiniteFetchLoop(); }); | 276 .then(function() { runInfiniteFetchLoop(); }); |
211 } | 277 } |
212 runInfiniteFetchLoop(); | 278 runInfiniteFetchLoop(); |
213 }, | 279 }, |
214 'Destroying the execution context while fetch is happening should not ' + | 280 'Destroying the execution context while fetch is happening should not ' + |
215 'cause a crash.'); | 281 'cause a crash.'); |
216 | 282 |
217 done(); | 283 done(); |
OLD | NEW |