| (async function(testRunner) { |
| var {page, session, dp} = await testRunner.startBlank( |
| `Tests basic function of the fetch domain.`); |
| |
| var FetchHelper = await testRunner.loadScript('resources/fetch-test.js'); |
| var helper = new FetchHelper(testRunner, dp); |
| await helper.enable(); |
| |
| helper.onceRequest().fulfill({ |
| responseCode: 200, |
| responseHeaders: [], |
| body: btoa("overriden response body") |
| }); |
| |
| const url = '/devtools/network/resources/resource.php'; |
| let content = await session.evaluateAsync(`fetch("${url}").then(r => r.text())`); |
| testRunner.log(`Response after Fetch.fulfillRequest: ${content}`); |
| |
| helper.onceRequest().continueRequest(); |
| content = await session.evaluateAsync(`fetch("${url}").then(r => r.text())`); |
| testRunner.log(`Response after fetch.continueRequest: ${content}`); |
| |
| helper.onceRequest().continueRequest({url: 'http://127.0.0.1:8000/devtools/network/resources/resource.php?size=42'}); |
| content = await session.evaluateAsync(`fetch("${url}").then(r => r.text())`); |
| testRunner.log(`Response after fetch.continueRequest with new URL: ${content}`); |
| |
| helper.onceRequest().fail({errorReason: 'AccessDenied'}); |
| content = await session.evaluateAsync(`fetch("${url}").then(r => t.text()).catch(() => 'fail')`); |
| testRunner.log(`Response after fetch.failRequest: ${content}`); |
| |
| testRunner.log(`Sending invalid header (should result in error)`); |
| const echoHeaders = '/inspector-protocol/network/resources/echo-headers.php?headers=HTTP_X_DEVTOOLS_TEST'; |
| session.evaluateAsync(`fetch("${echoHeaders}").then(r => r.text())`); |
| await helper.onceRequest().continueRequest({headers: [{name: 'X-DevTools-Test: ', value: 'foo'}]}); |
| |
| testRunner.completeTest(); |
| }) |