Chromium Code Reviews| Index: LayoutTests/http/tests/notifications/notification-data-property.html |
| diff --git a/LayoutTests/http/tests/notifications/notification-data-property.html b/LayoutTests/http/tests/notifications/notification-data-property.html |
| new file mode 100644 |
| index 0000000000000000000000000000000000000000..1c5c453d41b091b15111deea2b9a3d096f695396 |
| --- /dev/null |
| +++ b/LayoutTests/http/tests/notifications/notification-data-property.html |
| @@ -0,0 +1,48 @@ |
| +<!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. |
| + if (window.testRunner) |
|
Peter Beverloo
2015/03/13 12:12:07
nit: this isn't really necessary. The test would w
Sanghyun Park
2015/03/13 17:47:31
I'll remove this.
|
| + testRunner.clearWebNotificationPermissions(); |
| + |
| + function assertNotificationDataReflects(value) { |
| + var notification = new Notification('Title', { data: value }); |
| + |
| + if (Array.isArray(value)) |
| + assert_object_equals(notification.data, value); |
| + else if (typeof value === 'object') |
| + assert_array_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> |