Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(89)

Side by Side Diff: LayoutTests/http/tests/notifications/notification-properties.html

Issue 1260793007: Generalize validation of developer input for Web Notifications (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: fix actions Created 5 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « no previous file | LayoutTests/http/tests/notifications/serviceworkerregistration-document-actions-throw.html » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 <!doctype html> 1 <!doctype html>
2 <html> 2 <html>
3 <head> 3 <head>
4 <title>Notifications: The Notification object exposes the expected propertie s.</title> 4 <title>Notifications: The Notification object exposes the expected propertie s.</title>
5 <script src="../resources/testharness.js"></script> 5 <script src="../resources/testharness.js"></script>
6 <script src="../resources/testharnessreport.js"></script> 6 <script src="../resources/testharnessreport.js"></script>
7 </head> 7 </head>
8 <body> 8 <body>
9 <script> 9 <script>
10 // Tests that the Notification object exposes the properties per the 10 // Tests that the Notification object exposes the properties per the
(...skipping 48 matching lines...) Expand 10 before | Expand all | Expand 10 after
59 assert_equals(emptyNotification.dir, "auto"); 59 assert_equals(emptyNotification.dir, "auto");
60 assert_equals(emptyNotification.lang, ""); 60 assert_equals(emptyNotification.lang, "");
61 assert_equals(emptyNotification.body, ""); 61 assert_equals(emptyNotification.body, "");
62 assert_equals(emptyNotification.tag, ""); 62 assert_equals(emptyNotification.tag, "");
63 assert_equals(emptyNotification.icon, ""); 63 assert_equals(emptyNotification.icon, "");
64 assert_equals(notification.vibrate, null); 64 assert_equals(notification.vibrate, null);
65 assert_false(emptyNotification.silent); 65 assert_false(emptyNotification.silent);
66 assert_equals(emptyNotification.data, null); 66 assert_equals(emptyNotification.data, null);
67 assert_array_equals(emptyNotification.actions, []); 67 assert_array_equals(emptyNotification.actions, []);
68 68
69 var invalidIconNotification = new Notification("My Notification", {
70 icon: "http://test:test/"
71 });
72
73 // Invalid icon URLs should be reset to an empty string.
74 assert_equals(invalidIconNotification.icon, "");
75
76 var serializedUrlNotification = new Notification("My Notification", { 69 var serializedUrlNotification = new Notification("My Notification", {
77 icon: "http://example.com" 70 icon: "http://example.com"
78 }); 71 });
79 72
80 // Icon URLs should be returned in serialized form. 73 // Icon URLs should be returned in serialized form.
81 assert_equals(serializedUrlNotification.icon, "http://example.com/") ; 74 assert_equals(serializedUrlNotification.icon, "http://example.com/") ;
82 75
83 var noTagNotification = new Notification("My Notification"), 76 var noTagNotification = new Notification("My Notification"),
84 emptyTagNotification = new Notification("My Notification", { tag : "" }); 77 emptyTagNotification = new Notification("My Notification", { tag : "" });
85 78
(...skipping 13 matching lines...) Expand all
99 vibrate: pattern 92 vibrate: pattern
100 }); 93 });
101 assert_array_equals(sequenceVibrateNotification.vibrate, pattern); 94 assert_array_equals(sequenceVibrateNotification.vibrate, pattern);
102 95
103 // Invalid vibrate pattern should be reset to 0. 96 // Invalid vibrate pattern should be reset to 0.
104 var invalidVibrateNotification = new Notification("My Notification", { 97 var invalidVibrateNotification = new Notification("My Notification", {
105 vibrate: [100, 200, "invalid"] 98 vibrate: [100, 200, "invalid"]
106 }); 99 });
107 assert_array_equals(invalidVibrateNotification.vibrate, [100, 200, 0 ]); 100 assert_array_equals(invalidVibrateNotification.vibrate, [100, 200, 0 ]);
108 101
109 // Invalid vibrate pattern should be sanitized.
110 // 1. If the vibration pattern is longer than 100 then truncate it.
111 // 2. If the last item in the vibration pattern is a pause then disc ard it.
112 // 3. If any pattern entry is longer than 10000 then truncate it.
113 var sanitizedVibrateNotification = new Notification("My Notification ", {
114 vibrate: Array.apply(null, new Array(101)).map(Number.prototype. valueOf, 20000)
115 });
116 assert_array_equals(sanitizedVibrateNotification.vibrate,
117 Array.apply(null, new Array(99)).map(Number.prototype.valueO f, 10000));
118
119 // Verifying the exception throwing behavior, when silent set true a nd vibrate is presented.
120 assert_throws(new TypeError(), function() {
121 var notification = new Notification("My Notification", {
122 silent: true,
123 vibrate: 1000
124 });
125 }, 'Set vibrate, when silent is true.');
126
127 // Check exception is thrown when a NotificationAction is missing
128 // action or title, or when action or title is an empty string.
129 assert_throws(new TypeError(), function() {
130 var notification = new Notification("My Notification", {
131 actions: [{title: "Foo"}]
132 });
133 }, 'NotificationAction without action.');
134 assert_throws(new TypeError(), function() {
135 var notification = new Notification("My Notification", {
136 actions: [{action: "foo"}]
137 });
138 }, 'NotificationAction without title.');
139 assert_throws(new TypeError(), function() {
140 var notification = new Notification("My Notification", {
141 actions: [{action: "", title: "Foo"}]
142 });
143 }, 'NotificationAction with empty action.');
144 assert_throws(new TypeError(), function() {
145 var notification = new Notification("My Notification", {
146 actions: [{action: "foo", title: ""}]
147 });
148 }, 'NotificationAction with empty title.');
149
150 }, 'Checks the properties exposed on the Notification object.'); 102 }, 'Checks the properties exposed on the Notification object.');
151 </script> 103 </script>
152 </body> 104 </body>
153 </html> 105 </html>
OLDNEW
« no previous file with comments | « no previous file | LayoutTests/http/tests/notifications/serviceworkerregistration-document-actions-throw.html » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698