Exercising the Beacon API

On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".


PASS Object.getPrototypeOf(navigator).hasOwnProperty('sendBeacon') is true
PASS typeof navigator.sendBeacon is "function"
PASS navigator.sendBeacon() threw exception TypeError: Not enough arguments.
PASS navigator.sendBeacon('http://foo:-80/') threw exception TypeError: This URL is invalid.
PASS navigator.sendBeacon('javascript:alert(1);') threw exception TypeError: Beacons can only be sent over HTTP(S).
PASS navigator.sendBeacon('http://foo:-80/', new Uint8Array(new SharedArrayBuffer(10))) threw exception TypeError: This URL is invalid.
PASS successfullyParsed is true

TEST COMPLETE

