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

Side by Side Diff: third_party/WebKit/Source/modules/notifications/NotificationDataTest.cpp

Issue 1773813007: blink: Rename modules/ method to prefix with get when they collide. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: clash-modules: rebase-fixes Created 4 years, 9 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
OLDNEW
1 // Copyright 2015 The Chromium Authors. All rights reserved. 1 // Copyright 2015 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "modules/notifications/NotificationData.h" 5 #include "modules/notifications/NotificationData.h"
6 6
7 #include "bindings/core/v8/ExceptionState.h" 7 #include "bindings/core/v8/ExceptionState.h"
8 #include "bindings/modules/v8/UnionTypesModules.h" 8 #include "bindings/modules/v8/UnionTypesModules.h"
9 #include "core/testing/NullExecutionContext.h" 9 #include "core/testing/NullExecutionContext.h"
10 #include "modules/notifications/Notification.h" 10 #include "modules/notifications/Notification.h"
(...skipping 28 matching lines...) Expand all
39 const unsigned kNotificationVibrationUnnormalized[] = { 10, 1000000, 50, 42 }; 39 const unsigned kNotificationVibrationUnnormalized[] = { 10, 1000000, 50, 42 };
40 const int kNotificationVibrationNormalized[] = { 10, 10000, 50 }; 40 const int kNotificationVibrationNormalized[] = { 10, 10000, 50 };
41 41
42 class NotificationDataTest : public ::testing::Test { 42 class NotificationDataTest : public ::testing::Test {
43 public: 43 public:
44 void SetUp() override 44 void SetUp() override
45 { 45 {
46 m_executionContext = adoptRefWillBeNoop(new NullExecutionContext()); 46 m_executionContext = adoptRefWillBeNoop(new NullExecutionContext());
47 } 47 }
48 48
49 ExecutionContext* executionContext() { return m_executionContext.get(); } 49 ExecutionContext* getExecutionContext() { return m_executionContext.get(); }
50 50
51 private: 51 private:
52 RefPtrWillBePersistent<ExecutionContext> m_executionContext; 52 RefPtrWillBePersistent<ExecutionContext> m_executionContext;
53 }; 53 };
54 54
55 TEST_F(NotificationDataTest, ReflectProperties) 55 TEST_F(NotificationDataTest, ReflectProperties)
56 { 56 {
57 Vector<unsigned> vibrationPattern; 57 Vector<unsigned> vibrationPattern;
58 for (size_t i = 0; i < WTF_ARRAY_LENGTH(kNotificationVibration); ++i) 58 for (size_t i = 0; i < WTF_ARRAY_LENGTH(kNotificationVibration); ++i)
59 vibrationPattern.append(kNotificationVibration[i]); 59 vibrationPattern.append(kNotificationVibration[i]);
(...skipping 20 matching lines...) Expand all
80 options.setVibrate(vibrationSequence); 80 options.setVibrate(vibrationSequence);
81 options.setTimestamp(kNotificationTimestamp); 81 options.setTimestamp(kNotificationTimestamp);
82 options.setRenotify(kNotificationRenotify); 82 options.setRenotify(kNotificationRenotify);
83 options.setSilent(kNotificationSilent); 83 options.setSilent(kNotificationSilent);
84 options.setRequireInteraction(kNotificationRequireInteraction); 84 options.setRequireInteraction(kNotificationRequireInteraction);
85 options.setActions(actions); 85 options.setActions(actions);
86 86
87 // TODO(peter): Test |options.data| and |notificationData.data|. 87 // TODO(peter): Test |options.data| and |notificationData.data|.
88 88
89 TrackExceptionState exceptionState; 89 TrackExceptionState exceptionState;
90 WebNotificationData notificationData = createWebNotificationData(executionCo ntext(), kNotificationTitle, options, exceptionState); 90 WebNotificationData notificationData = createWebNotificationData(getExecutio nContext(), kNotificationTitle, options, exceptionState);
91 ASSERT_FALSE(exceptionState.hadException()); 91 ASSERT_FALSE(exceptionState.hadException());
92 92
93 EXPECT_EQ(kNotificationTitle, notificationData.title); 93 EXPECT_EQ(kNotificationTitle, notificationData.title);
94 94
95 EXPECT_EQ(WebNotificationData::DirectionRightToLeft, notificationData.direct ion); 95 EXPECT_EQ(WebNotificationData::DirectionRightToLeft, notificationData.direct ion);
96 EXPECT_EQ(kNotificationLang, notificationData.lang); 96 EXPECT_EQ(kNotificationLang, notificationData.lang);
97 EXPECT_EQ(kNotificationBody, notificationData.body); 97 EXPECT_EQ(kNotificationBody, notificationData.body);
98 EXPECT_EQ(kNotificationTag, notificationData.tag); 98 EXPECT_EQ(kNotificationTag, notificationData.tag);
99 99
100 // TODO(peter): Test WebNotificationData.icon and WebNotificationAction.icon when ExecutionContext::completeURL() works in this test. 100 // TODO(peter): Test WebNotificationData.icon and WebNotificationAction.icon when ExecutionContext::completeURL() works in this test.
(...skipping 20 matching lines...) Expand all
121 vibrationPattern.append(kNotificationVibration[i]); 121 vibrationPattern.append(kNotificationVibration[i]);
122 122
123 UnsignedLongOrUnsignedLongSequence vibrationSequence; 123 UnsignedLongOrUnsignedLongSequence vibrationSequence;
124 vibrationSequence.setUnsignedLongSequence(vibrationPattern); 124 vibrationSequence.setUnsignedLongSequence(vibrationPattern);
125 125
126 NotificationOptions options; 126 NotificationOptions options;
127 options.setVibrate(vibrationSequence); 127 options.setVibrate(vibrationSequence);
128 options.setSilent(true); 128 options.setSilent(true);
129 129
130 TrackExceptionState exceptionState; 130 TrackExceptionState exceptionState;
131 WebNotificationData notificationData = createWebNotificationData(executionCo ntext(), kNotificationTitle, options, exceptionState); 131 WebNotificationData notificationData = createWebNotificationData(getExecutio nContext(), kNotificationTitle, options, exceptionState);
132 ASSERT_TRUE(exceptionState.hadException()); 132 ASSERT_TRUE(exceptionState.hadException());
133 133
134 EXPECT_EQ("Silent notifications must not specify vibration patterns.", excep tionState.message()); 134 EXPECT_EQ("Silent notifications must not specify vibration patterns.", excep tionState.message());
135 } 135 }
136 136
137 TEST_F(NotificationDataTest, RenotifyWithEmptyTag) 137 TEST_F(NotificationDataTest, RenotifyWithEmptyTag)
138 { 138 {
139 NotificationOptions options; 139 NotificationOptions options;
140 options.setTag(kNotificationEmptyTag); 140 options.setTag(kNotificationEmptyTag);
141 options.setRenotify(true); 141 options.setRenotify(true);
142 142
143 TrackExceptionState exceptionState; 143 TrackExceptionState exceptionState;
144 WebNotificationData notificationData = createWebNotificationData(executionCo ntext(), kNotificationTitle, options, exceptionState); 144 WebNotificationData notificationData = createWebNotificationData(getExecutio nContext(), kNotificationTitle, options, exceptionState);
145 ASSERT_TRUE(exceptionState.hadException()); 145 ASSERT_TRUE(exceptionState.hadException());
146 146
147 EXPECT_EQ("Notifications which set the renotify flag must specify a non-empt y tag.", exceptionState.message()); 147 EXPECT_EQ("Notifications which set the renotify flag must specify a non-empt y tag.", exceptionState.message());
148 } 148 }
149 149
150 TEST_F(NotificationDataTest, InvalidIconUrls) 150 TEST_F(NotificationDataTest, InvalidIconUrls)
151 { 151 {
152 HeapVector<NotificationAction> actions; 152 HeapVector<NotificationAction> actions;
153 for (size_t i = 0; i < Notification::maxActions(); ++i) { 153 for (size_t i = 0; i < Notification::maxActions(); ++i) {
154 NotificationAction action; 154 NotificationAction action;
155 action.setAction(kNotificationActionAction); 155 action.setAction(kNotificationActionAction);
156 action.setTitle(kNotificationActionTitle); 156 action.setTitle(kNotificationActionTitle);
157 action.setIcon(kNotificationIconInvalid); 157 action.setIcon(kNotificationIconInvalid);
158 actions.append(action); 158 actions.append(action);
159 } 159 }
160 160
161 NotificationOptions options; 161 NotificationOptions options;
162 options.setIcon(kNotificationIconInvalid); 162 options.setIcon(kNotificationIconInvalid);
163 options.setActions(actions); 163 options.setActions(actions);
164 164
165 TrackExceptionState exceptionState; 165 TrackExceptionState exceptionState;
166 WebNotificationData notificationData = createWebNotificationData(executionCo ntext(), kNotificationTitle, options, exceptionState); 166 WebNotificationData notificationData = createWebNotificationData(getExecutio nContext(), kNotificationTitle, options, exceptionState);
167 ASSERT_FALSE(exceptionState.hadException()); 167 ASSERT_FALSE(exceptionState.hadException());
168 168
169 EXPECT_TRUE(notificationData.icon.isEmpty()); 169 EXPECT_TRUE(notificationData.icon.isEmpty());
170 for (const auto& action : notificationData.actions) 170 for (const auto& action : notificationData.actions)
171 EXPECT_TRUE(action.icon.isEmpty()); 171 EXPECT_TRUE(action.icon.isEmpty());
172 } 172 }
173 173
174 TEST_F(NotificationDataTest, VibrationNormalization) 174 TEST_F(NotificationDataTest, VibrationNormalization)
175 { 175 {
176 Vector<unsigned> unnormalizedPattern; 176 Vector<unsigned> unnormalizedPattern;
177 for (size_t i = 0; i < WTF_ARRAY_LENGTH(kNotificationVibrationUnnormalized); ++i) 177 for (size_t i = 0; i < WTF_ARRAY_LENGTH(kNotificationVibrationUnnormalized); ++i)
178 unnormalizedPattern.append(kNotificationVibrationUnnormalized[i]); 178 unnormalizedPattern.append(kNotificationVibrationUnnormalized[i]);
179 179
180 UnsignedLongOrUnsignedLongSequence vibrationSequence; 180 UnsignedLongOrUnsignedLongSequence vibrationSequence;
181 vibrationSequence.setUnsignedLongSequence(unnormalizedPattern); 181 vibrationSequence.setUnsignedLongSequence(unnormalizedPattern);
182 182
183 NotificationOptions options; 183 NotificationOptions options;
184 options.setVibrate(vibrationSequence); 184 options.setVibrate(vibrationSequence);
185 185
186 TrackExceptionState exceptionState; 186 TrackExceptionState exceptionState;
187 WebNotificationData notificationData = createWebNotificationData(executionCo ntext(), kNotificationTitle, options, exceptionState); 187 WebNotificationData notificationData = createWebNotificationData(getExecutio nContext(), kNotificationTitle, options, exceptionState);
188 EXPECT_FALSE(exceptionState.hadException()); 188 EXPECT_FALSE(exceptionState.hadException());
189 189
190 Vector<int> normalizedPattern; 190 Vector<int> normalizedPattern;
191 for (size_t i = 0; i < WTF_ARRAY_LENGTH(kNotificationVibrationNormalized); + +i) 191 for (size_t i = 0; i < WTF_ARRAY_LENGTH(kNotificationVibrationNormalized); + +i)
192 normalizedPattern.append(kNotificationVibrationNormalized[i]); 192 normalizedPattern.append(kNotificationVibrationNormalized[i]);
193 193
194 ASSERT_EQ(normalizedPattern.size(), notificationData.vibrate.size()); 194 ASSERT_EQ(normalizedPattern.size(), notificationData.vibrate.size());
195 for (size_t i = 0; i < normalizedPattern.size(); ++i) 195 for (size_t i = 0; i < normalizedPattern.size(); ++i)
196 EXPECT_EQ(normalizedPattern[i], notificationData.vibrate[i]); 196 EXPECT_EQ(normalizedPattern[i], notificationData.vibrate[i]);
197 } 197 }
198 198
199 TEST_F(NotificationDataTest, DefaultTimestampValue) 199 TEST_F(NotificationDataTest, DefaultTimestampValue)
200 { 200 {
201 NotificationOptions options; 201 NotificationOptions options;
202 202
203 TrackExceptionState exceptionState; 203 TrackExceptionState exceptionState;
204 WebNotificationData notificationData = createWebNotificationData(executionCo ntext(), kNotificationTitle, options, exceptionState); 204 WebNotificationData notificationData = createWebNotificationData(getExecutio nContext(), kNotificationTitle, options, exceptionState);
205 EXPECT_FALSE(exceptionState.hadException()); 205 EXPECT_FALSE(exceptionState.hadException());
206 206
207 // The timestamp should be set to the current time since the epoch if it was n't supplied by the developer. 207 // The timestamp should be set to the current time since the epoch if it was n't supplied by the developer.
208 // "32" has no significance, but an equal comparison of the value could lead to flaky failures. 208 // "32" has no significance, but an equal comparison of the value could lead to flaky failures.
209 EXPECT_NEAR(notificationData.timestamp, WTF::currentTimeMS(), 32); 209 EXPECT_NEAR(notificationData.timestamp, WTF::currentTimeMS(), 32);
210 } 210 }
211 211
212 TEST_F(NotificationDataTest, DirectionValues) 212 TEST_F(NotificationDataTest, DirectionValues)
213 { 213 {
214 WTF::HashMap<String, WebNotificationData::Direction> mappings; 214 WTF::HashMap<String, WebNotificationData::Direction> mappings;
215 mappings.add("ltr", WebNotificationData::DirectionLeftToRight); 215 mappings.add("ltr", WebNotificationData::DirectionLeftToRight);
216 mappings.add("rtl", WebNotificationData::DirectionRightToLeft); 216 mappings.add("rtl", WebNotificationData::DirectionRightToLeft);
217 mappings.add("auto", WebNotificationData::DirectionAuto); 217 mappings.add("auto", WebNotificationData::DirectionAuto);
218 218
219 // Invalid values should default to "auto". 219 // Invalid values should default to "auto".
220 mappings.add("peter", WebNotificationData::DirectionAuto); 220 mappings.add("peter", WebNotificationData::DirectionAuto);
221 221
222 for (const String& direction : mappings.keys()) { 222 for (const String& direction : mappings.keys()) {
223 NotificationOptions options; 223 NotificationOptions options;
224 options.setDir(direction); 224 options.setDir(direction);
225 225
226 TrackExceptionState exceptionState; 226 TrackExceptionState exceptionState;
227 WebNotificationData notificationData = createWebNotificationData(executi onContext(), kNotificationTitle, options, exceptionState); 227 WebNotificationData notificationData = createWebNotificationData(getExec utionContext(), kNotificationTitle, options, exceptionState);
228 ASSERT_FALSE(exceptionState.hadException()); 228 ASSERT_FALSE(exceptionState.hadException());
229 229
230 EXPECT_EQ(mappings.get(direction), notificationData.direction); 230 EXPECT_EQ(mappings.get(direction), notificationData.direction);
231 } 231 }
232 } 232 }
233 233
234 TEST_F(NotificationDataTest, MaximumActionCount) 234 TEST_F(NotificationDataTest, MaximumActionCount)
235 { 235 {
236 HeapVector<NotificationAction> actions; 236 HeapVector<NotificationAction> actions;
237 for (size_t i = 0; i < Notification::maxActions() + 2; ++i) { 237 for (size_t i = 0; i < Notification::maxActions() + 2; ++i) {
238 NotificationAction action; 238 NotificationAction action;
239 action.setAction(String::number(i)); 239 action.setAction(String::number(i));
240 action.setTitle(kNotificationActionTitle); 240 action.setTitle(kNotificationActionTitle);
241 241
242 actions.append(action); 242 actions.append(action);
243 } 243 }
244 244
245 NotificationOptions options; 245 NotificationOptions options;
246 options.setActions(actions); 246 options.setActions(actions);
247 247
248 TrackExceptionState exceptionState; 248 TrackExceptionState exceptionState;
249 WebNotificationData notificationData = createWebNotificationData(executionCo ntext(), kNotificationTitle, options, exceptionState); 249 WebNotificationData notificationData = createWebNotificationData(getExecutio nContext(), kNotificationTitle, options, exceptionState);
250 ASSERT_FALSE(exceptionState.hadException()); 250 ASSERT_FALSE(exceptionState.hadException());
251 251
252 // The stored actions will be capped to |maxActions| entries. 252 // The stored actions will be capped to |maxActions| entries.
253 ASSERT_EQ(Notification::maxActions(), notificationData.actions.size()); 253 ASSERT_EQ(Notification::maxActions(), notificationData.actions.size());
254 254
255 for (size_t i = 0; i < Notification::maxActions(); ++i) { 255 for (size_t i = 0; i < Notification::maxActions(); ++i) {
256 WebString expectedAction = String::number(i); 256 WebString expectedAction = String::number(i);
257 EXPECT_EQ(expectedAction, notificationData.actions[i].action); 257 EXPECT_EQ(expectedAction, notificationData.actions[i].action);
258 } 258 }
259 } 259 }
260 260
261 } // namespace 261 } // namespace
262 } // namespace blink 262 } // namespace blink
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698