// META: script=/common/get-host-info.sub.js // META: script=/common/utils.js // META: script=/fetch/fetch-later/resources/fetch-later-helper.js 'use strict'; const {HTTPS_ORIGIN, HTTPS_NOTSAMESITE_ORIGIN} = get_host_info(); // Test making a HTTP POST request with empty payload, which is not accepted by // fetchLater API. for (const dataType in BeaconDataType) { const requestInit = { activateAfter: 0, method: 'POST', body: makeBeaconData('', dataType) }; if (dataType === BeaconDataType.FormData) { // An empty FormData object serializes to non-empty String. Hence, there // will be no error thrown from fetchLater. parallelPromiseTest(async _ => { expectFetchLater(requestInit); }, `fetchLater() accepts a non-empty POST request body of ${dataType}.`); continue; } test( () => assert_throws_js(TypeError, () => fetchLater('/', requestInit)), `fetchLater() does not accept an empty POST request body of ${ dataType}.`); } // Test making HTTP non-POST requests, which has no payload and should be // accepted by fetchLater API. for (const method of ['GET', 'DELETE', 'PUT']) { parallelPromiseTest( async _ => expectFetchLater({activateAfter: 0, method: method}), `fetchLater() accept a ${method} request.`); }