blob: 92a8d89491f877504df30ac3d1a0211ab25be8e2 [file] [log] [blame]
<!DOCTYPE html>
<html>
<head>
<title>Notifications: The Notification object exposes the expected data property.</title>
<script src="../resources/testharness.js"></script>
<script src="../resources/testharnessreport.js"></script>
</head>
<body>
<script>
// Tests that the Notification object exposes the data property per the
// semantics defined by the specification. When the test is being ran
// manually, grant Notification permission first.
function assertNotificationDataReflects(value) {
var notification = new Notification('Title', { data: value });
if (typeof value === 'object')
assert_object_equals(notification.data, value);
else
assert_equals(notification.data, value);
}
test(function () {
// Set notification's data of several type to a structured clone of options's data.
assertNotificationDataReflects(true); // Check Boolean type
assertNotificationDataReflects(1024); // Check Number type
assertNotificationDataReflects(Number.NaN); // Check Number.NaN type
assertNotificationDataReflects('any data'); // Check String type
var cars = new Array('Saab', 'Volvo', 'BMW');
assertNotificationDataReflects(cars); // Check Array type
var obj = { first: 'first', second: 'second'};
assertNotificationDataReflects(obj); // Check Object
// Verifying the exception throwing behavior of the method.
assert_throws('DataCloneError', function() {
var notification = new Notification('Title', { data: function() { return 1; } });
}, 'Set function in data');
}, 'Checks the data of several type property exposed on the Notification object.');
</script>
</body>
</html>