| <!doctype html> |
| <html> |
| <head> |
| <meta charset="utf-8"> |
| <title>Response clone after load is finished</title> |
| <script src="/resources/testharness.js"></script> |
| <script src="/resources/testharnessreport.js"></script> |
| </head> |
| <body> |
| <script> |
| promise_test(function(t) { |
| var clone; |
| return fetch('/resources/testharnessreport.js').then(function(res) { |
| assert_equals(res.status, 200); |
| var resolveFunction; |
| var promise = new Promise((resolve) => { |
| resolveFunction = resolve; |
| }); |
| setTimeout(() => { |
| // Load should be finished by now |
| clone = res.clone(); |
| var string; |
| return res.text().then((value) => { |
| string = value; |
| return clone.text(); |
| }).then((value) => { |
| assert_equals(value, string); |
| resolveFunction(); |
| }); |
| }, 1000); |
| return promise; |
| }); |
| }, 'Ensure that cloning works when load is finished'); |
| |
| promise_test(function(t) { |
| var clone; |
| return fetch('/resources/download-json-with-delay.php?iteration=2&delay=100').then(function(res) { |
| assert_equals(res.status, 200); |
| // All data should not be enqueued yet. |
| clone = res.clone(); |
| var string; |
| return res.text().then((value) => { |
| string = value; |
| return clone.text(); |
| }).then((value) => { |
| assert_equals(value, string); |
| }); |
| }); |
| }, 'Ensure that cloning works when load is ongoing'); |
| |
| </script> |
| </body> |
| </html> |