diff options
Diffstat (limited to 'testing/web-platform/tests/pending-beacon/pending_post_beacon-sendwithdata.tentative.https.window.js')
-rw-r--r-- | testing/web-platform/tests/pending-beacon/pending_post_beacon-sendwithdata.tentative.https.window.js | 43 |
1 files changed, 43 insertions, 0 deletions
diff --git a/testing/web-platform/tests/pending-beacon/pending_post_beacon-sendwithdata.tentative.https.window.js b/testing/web-platform/tests/pending-beacon/pending_post_beacon-sendwithdata.tentative.https.window.js new file mode 100644 index 0000000000..77e91479e8 --- /dev/null +++ b/testing/web-platform/tests/pending-beacon/pending_post_beacon-sendwithdata.tentative.https.window.js @@ -0,0 +1,43 @@ +// META: script=/common/utils.js +// META: script=./resources/pending_beacon-helper.js + +'use strict'; + +// Test empty data. +for (const dataType in BeaconDataType) { + postBeaconSendDataTest( + dataType, '', `Sent empty ${dataType}, and server got no data.`, { + expectNoData: true, + }); +} + +// Test small payload. +for (const [dataType, skipCharset] of Object.entries( + BeaconDataTypeToSkipCharset)) { + postBeaconSendDataTest( + dataType, generateSequentialData(0, 1024, skipCharset), + 'Encoded and sent in POST request.'); +} + +// Test large payload. +for (const dataType in BeaconDataType) { + postBeaconSendDataTest( + dataType, generatePayload(65536), 'Sent out big data.'); +} + +test(() => { + const uuid = token(); + const url = generateSetBeaconURL(uuid); + let beacon = new PendingPostBeacon(url); + assert_throws_js(TypeError, () => beacon.setData(new ReadableStream())); +}, 'setData() does not support ReadableStream.'); + +test(() => { + const uuid = token(); + const url = generateSetBeaconURL(uuid); + let beacon = new PendingPostBeacon(url); + const formData = new FormData(); + formData.append('part1', 'value1'); + formData.append('part2', new Blob(['value2']), 'file.txt'); + assert_throws_js(RangeError, () => beacon.setData(formData)); +}, 'setData() does not support multi-parts data.'); |