| Index: third_party/WebKit/Source/modules/notifications/NotificationDataTest.cpp
|
| diff --git a/third_party/WebKit/Source/modules/notifications/NotificationDataTest.cpp b/third_party/WebKit/Source/modules/notifications/NotificationDataTest.cpp
|
| index 9f8038de0efd58882d9aace0f040f8ba476fe7b5..259dc9382cd918235e0da23d1f1839a15d57b2e9 100644
|
| --- a/third_party/WebKit/Source/modules/notifications/NotificationDataTest.cpp
|
| +++ b/third_party/WebKit/Source/modules/notifications/NotificationDataTest.cpp
|
| @@ -33,7 +33,7 @@ const bool kNotificationRenotify = true;
|
| const bool kNotificationSilent = false;
|
| const bool kNotificationRequireInteraction = true;
|
|
|
| -const WebNotificationAction::Type kWebNotificationActionType = WebNotificationAction::Text;
|
| +const mojom::blink::NotificationActionType kWebNotificationActionType = mojom::blink::NotificationActionType::TEXT;
|
| const char kNotificationActionType[] = "text";
|
| const char kNotificationActionAction[] = "my_action";
|
| const char kNotificationActionTitle[] = "My Action";
|
| @@ -41,7 +41,7 @@ const char kNotificationActionIcon[] = "https://example.com/action_icon.png";
|
| const char kNotificationActionPlaceholder[] = "Placeholder...";
|
|
|
| const unsigned kNotificationVibrationUnnormalized[] = { 10, 1000000, 50, 42 };
|
| -const int kNotificationVibrationNormalized[] = { 10, 10000, 50 };
|
| +const unsigned kNotificationVibrationNormalized[] = { 10, 10000, 50 };
|
|
|
| class NotificationDataTest : public ::testing::Test {
|
| public:
|
| @@ -94,32 +94,34 @@ TEST_F(NotificationDataTest, ReflectProperties)
|
| // TODO(peter): Test |options.data| and |notificationData.data|.
|
|
|
| TrackExceptionState exceptionState;
|
| - WebNotificationData notificationData = createWebNotificationData(getExecutionContext(), kNotificationTitle, options, exceptionState);
|
| + mojom::blink::NotificationPtr notification = createNotificationData(getExecutionContext(), kNotificationTitle, options, exceptionState);
|
| ASSERT_FALSE(exceptionState.hadException());
|
|
|
| - EXPECT_EQ(kNotificationTitle, notificationData.title);
|
| + EXPECT_EQ(kNotificationTitle, notification->title);
|
|
|
| - EXPECT_EQ(WebNotificationData::DirectionRightToLeft, notificationData.direction);
|
| - EXPECT_EQ(kNotificationLang, notificationData.lang);
|
| - EXPECT_EQ(kNotificationBody, notificationData.body);
|
| - EXPECT_EQ(kNotificationTag, notificationData.tag);
|
| + EXPECT_EQ(mojom::blink::NotificationDirection::RIGHT_TO_LEFT, notification->direction);
|
| + EXPECT_EQ(kNotificationLang, notification->lang);
|
| + EXPECT_EQ(kNotificationBody, notification->body);
|
| + EXPECT_EQ(kNotificationTag, notification->tag);
|
|
|
| // TODO(peter): Test the various icon properties when ExecutionContext::completeURL() works in this test.
|
| -
|
| - ASSERT_EQ(vibrationPattern.size(), notificationData.vibrate.size());
|
| + ASSERT_EQ(vibrationPattern.size(), notification->vibration_pattern.size());
|
| for (size_t i = 0; i < vibrationPattern.size(); ++i)
|
| - EXPECT_EQ(vibrationPattern[i], static_cast<unsigned>(notificationData.vibrate[i]));
|
| -
|
| - EXPECT_EQ(kNotificationTimestamp, notificationData.timestamp);
|
| - EXPECT_EQ(kNotificationRenotify, notificationData.renotify);
|
| - EXPECT_EQ(kNotificationSilent, notificationData.silent);
|
| - EXPECT_EQ(kNotificationRequireInteraction, notificationData.requireInteraction);
|
| - EXPECT_EQ(actions.size(), notificationData.actions.size());
|
| - for (const auto& action : notificationData.actions) {
|
| - EXPECT_EQ(kWebNotificationActionType, action.type);
|
| - EXPECT_EQ(kNotificationActionAction, action.action);
|
| - EXPECT_EQ(kNotificationActionTitle, action.title);
|
| - EXPECT_EQ(kNotificationActionPlaceholder, action.placeholder);
|
| + EXPECT_EQ(vibrationPattern[i], static_cast<unsigned>(notification->vibration_pattern[i]));
|
| +
|
| + EXPECT_EQ(kNotificationTimestamp, notification->timestamp);
|
| + EXPECT_EQ(kNotificationRenotify, notification->renotify);
|
| + EXPECT_EQ(kNotificationSilent, notification->silent);
|
| + EXPECT_EQ(kNotificationRequireInteraction, notification->require_interaction);
|
| + EXPECT_EQ(actions.size(), notification->actions.size());
|
| +
|
| + for (size_t i = 0; i < notification->actions.size(); ++i) {
|
| + SCOPED_TRACE(i);
|
| +
|
| + EXPECT_EQ(kWebNotificationActionType, notification->actions[i]->type);
|
| + EXPECT_EQ(kNotificationActionAction, notification->actions[i]->action);
|
| + EXPECT_EQ(kNotificationActionTitle, notification->actions[i]->title);
|
| + EXPECT_EQ(kNotificationActionPlaceholder, notification->actions[i]->placeholder);
|
| }
|
| }
|
|
|
| @@ -137,7 +139,7 @@ TEST_F(NotificationDataTest, SilentNotificationWithVibration)
|
| options.setSilent(true);
|
|
|
| TrackExceptionState exceptionState;
|
| - WebNotificationData notificationData = createWebNotificationData(getExecutionContext(), kNotificationTitle, options, exceptionState);
|
| + mojom::blink::NotificationPtr notification = createNotificationData(getExecutionContext(), kNotificationTitle, options, exceptionState);
|
| ASSERT_TRUE(exceptionState.hadException());
|
|
|
| EXPECT_EQ("Silent notifications must not specify vibration patterns.", exceptionState.message());
|
| @@ -155,7 +157,7 @@ TEST_F(NotificationDataTest, ActionTypeButtonWithPlaceholder)
|
| options.setActions(actions);
|
|
|
| TrackExceptionState exceptionState;
|
| - WebNotificationData notificationData = createWebNotificationData(getExecutionContext(), kNotificationTitle, options, exceptionState);
|
| + mojom::blink::NotificationPtr notification = createNotificationData(getExecutionContext(), kNotificationTitle, options, exceptionState);
|
| ASSERT_TRUE(exceptionState.hadException());
|
|
|
| EXPECT_EQ("Notifications of type \"button\" cannot specify a placeholder.", exceptionState.message());
|
| @@ -168,7 +170,7 @@ TEST_F(NotificationDataTest, RenotifyWithEmptyTag)
|
| options.setRenotify(true);
|
|
|
| TrackExceptionState exceptionState;
|
| - WebNotificationData notificationData = createWebNotificationData(getExecutionContext(), kNotificationTitle, options, exceptionState);
|
| + mojom::blink::NotificationPtr notification = createNotificationData(getExecutionContext(), kNotificationTitle, options, exceptionState);
|
| ASSERT_TRUE(exceptionState.hadException());
|
|
|
| EXPECT_EQ("Notifications which set the renotify flag must specify a non-empty tag.", exceptionState.message());
|
| @@ -191,13 +193,14 @@ TEST_F(NotificationDataTest, InvalidIconUrls)
|
| options.setActions(actions);
|
|
|
| TrackExceptionState exceptionState;
|
| - WebNotificationData notificationData = createWebNotificationData(getExecutionContext(), kNotificationTitle, options, exceptionState);
|
| + mojom::blink::NotificationPtr notification = createNotificationData(getExecutionContext(), kNotificationTitle, options, exceptionState);
|
| ASSERT_FALSE(exceptionState.hadException());
|
|
|
| - EXPECT_TRUE(notificationData.icon.isEmpty());
|
| - EXPECT_TRUE(notificationData.badge.isEmpty());
|
| - for (const auto& action : notificationData.actions)
|
| - EXPECT_TRUE(action.icon.isEmpty());
|
| + EXPECT_TRUE(notification->icon.isEmpty());
|
| + EXPECT_TRUE(notification->badge.isEmpty());
|
| +
|
| + for (size_t i = 0; i < notification->actions.size(); ++i)
|
| + EXPECT_TRUE(notification->actions[i]->icon.isEmpty());
|
| }
|
|
|
| TEST_F(NotificationDataTest, VibrationNormalization)
|
| @@ -213,16 +216,16 @@ TEST_F(NotificationDataTest, VibrationNormalization)
|
| options.setVibrate(vibrationSequence);
|
|
|
| TrackExceptionState exceptionState;
|
| - WebNotificationData notificationData = createWebNotificationData(getExecutionContext(), kNotificationTitle, options, exceptionState);
|
| + mojom::blink::NotificationPtr notification = createNotificationData(getExecutionContext(), kNotificationTitle, options, exceptionState);
|
| EXPECT_FALSE(exceptionState.hadException());
|
|
|
| - Vector<int> normalizedPattern;
|
| + Vector<unsigned> normalizedPattern;
|
| for (size_t i = 0; i < WTF_ARRAY_LENGTH(kNotificationVibrationNormalized); ++i)
|
| normalizedPattern.append(kNotificationVibrationNormalized[i]);
|
|
|
| - ASSERT_EQ(normalizedPattern.size(), notificationData.vibrate.size());
|
| + ASSERT_EQ(normalizedPattern.size(), notification->vibration_pattern.size());
|
| for (size_t i = 0; i < normalizedPattern.size(); ++i)
|
| - EXPECT_EQ(normalizedPattern[i], notificationData.vibrate[i]);
|
| + EXPECT_EQ(normalizedPattern[i], notification->vibration_pattern[i]);
|
| }
|
|
|
| TEST_F(NotificationDataTest, DefaultTimestampValue)
|
| @@ -230,33 +233,33 @@ TEST_F(NotificationDataTest, DefaultTimestampValue)
|
| NotificationOptions options;
|
|
|
| TrackExceptionState exceptionState;
|
| - WebNotificationData notificationData = createWebNotificationData(getExecutionContext(), kNotificationTitle, options, exceptionState);
|
| + mojom::blink::NotificationPtr notification = createNotificationData(getExecutionContext(), kNotificationTitle, options, exceptionState);
|
| EXPECT_FALSE(exceptionState.hadException());
|
|
|
| // The timestamp should be set to the current time since the epoch if it wasn't supplied by the developer.
|
| // "32" has no significance, but an equal comparison of the value could lead to flaky failures.
|
| - EXPECT_NEAR(notificationData.timestamp, WTF::currentTimeMS(), 32);
|
| + EXPECT_NEAR(notification->timestamp, WTF::currentTimeMS(), 32);
|
| }
|
|
|
| TEST_F(NotificationDataTest, DirectionValues)
|
| {
|
| - WTF::HashMap<String, WebNotificationData::Direction> mappings;
|
| - mappings.add("ltr", WebNotificationData::DirectionLeftToRight);
|
| - mappings.add("rtl", WebNotificationData::DirectionRightToLeft);
|
| - mappings.add("auto", WebNotificationData::DirectionAuto);
|
| + WTF::HashMap<String, mojom::blink::NotificationDirection> mappings;
|
| + mappings.add("ltr", mojom::blink::NotificationDirection::LEFT_TO_RIGHT);
|
| + mappings.add("rtl", mojom::blink::NotificationDirection::RIGHT_TO_LEFT);
|
| + mappings.add("auto", mojom::blink::NotificationDirection::AUTO);
|
|
|
| // Invalid values should default to "auto".
|
| - mappings.add("peter", WebNotificationData::DirectionAuto);
|
| + mappings.add("peter", mojom::blink::NotificationDirection::AUTO);
|
|
|
| for (const String& direction : mappings.keys()) {
|
| NotificationOptions options;
|
| options.setDir(direction);
|
|
|
| TrackExceptionState exceptionState;
|
| - WebNotificationData notificationData = createWebNotificationData(getExecutionContext(), kNotificationTitle, options, exceptionState);
|
| + mojom::blink::NotificationPtr notification = createNotificationData(getExecutionContext(), kNotificationTitle, options, exceptionState);
|
| ASSERT_FALSE(exceptionState.hadException());
|
|
|
| - EXPECT_EQ(mappings.get(direction), notificationData.direction);
|
| + EXPECT_EQ(mappings.get(direction), notification->direction);
|
| }
|
| }
|
|
|
| @@ -275,16 +278,14 @@ TEST_F(NotificationDataTest, MaximumActionCount)
|
| options.setActions(actions);
|
|
|
| TrackExceptionState exceptionState;
|
| - WebNotificationData notificationData = createWebNotificationData(getExecutionContext(), kNotificationTitle, options, exceptionState);
|
| + mojom::blink::NotificationPtr notification = createNotificationData(getExecutionContext(), kNotificationTitle, options, exceptionState);
|
| ASSERT_FALSE(exceptionState.hadException());
|
|
|
| // The stored actions will be capped to |maxActions| entries.
|
| - ASSERT_EQ(Notification::maxActions(), notificationData.actions.size());
|
| + ASSERT_EQ(Notification::maxActions(), notification->actions.size());
|
|
|
| - for (size_t i = 0; i < Notification::maxActions(); ++i) {
|
| - WebString expectedAction = String::number(i);
|
| - EXPECT_EQ(expectedAction, notificationData.actions[i].action);
|
| - }
|
| + for (size_t i = 0; i < Notification::maxActions(); ++i)
|
| + EXPECT_EQ(String::number(i), notification->actions[i]->action);
|
| }
|
|
|
| } // namespace
|
|
|