blob: 77e91479e8b990b2b8240dc3fd6853e4d25ab980 [file] [log] [blame] [edit]
// 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.');