| OLD | NEW |
| 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 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 "sync/notifier/p2p_invalidator.h" | 5 #include "sync/notifier/p2p_invalidator.h" |
| 6 | 6 |
| 7 #include <cstddef> | 7 #include <cstddef> |
| 8 | 8 |
| 9 #include "jingle/notifier/listener/fake_push_client.h" | 9 #include "jingle/notifier/listener/fake_push_client.h" |
| 10 #include "sync/internal_api/public/base/model_type.h" | 10 #include "sync/internal_api/public/base/model_type.h" |
| (...skipping 162 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 173 EXPECT_TRUE(notification_data_parsed.ResetFromString(notification_data_str)); | 173 EXPECT_TRUE(notification_data_parsed.ResetFromString(notification_data_str)); |
| 174 EXPECT_TRUE(notification_data.Equals(notification_data_parsed)); | 174 EXPECT_TRUE(notification_data.Equals(notification_data_parsed)); |
| 175 } | 175 } |
| 176 | 176 |
| 177 // Make sure the P2PNotificationData <-> string conversions work for a | 177 // Make sure the P2PNotificationData <-> string conversions work for a |
| 178 // non-default-constructed P2PNotificationData. | 178 // non-default-constructed P2PNotificationData. |
| 179 TEST_F(P2PInvalidatorTest, P2PNotificationDataNonDefault) { | 179 TEST_F(P2PInvalidatorTest, P2PNotificationDataNonDefault) { |
| 180 const ObjectIdInvalidationMap& invalidation_map = | 180 const ObjectIdInvalidationMap& invalidation_map = |
| 181 ObjectIdSetToInvalidationMap( | 181 ObjectIdSetToInvalidationMap( |
| 182 ModelTypeSetToObjectIdSet(ModelTypeSet(BOOKMARKS, THEMES)), | 182 ModelTypeSetToObjectIdSet(ModelTypeSet(BOOKMARKS, THEMES)), |
| 183 Invalidation::kUnknownVersion, |
| 183 std::string()); | 184 std::string()); |
| 184 const P2PNotificationData notification_data( | 185 const P2PNotificationData notification_data( |
| 185 "sender", NOTIFY_ALL, invalidation_map); | 186 "sender", NOTIFY_ALL, invalidation_map); |
| 186 EXPECT_TRUE(notification_data.IsTargeted("sender")); | 187 EXPECT_TRUE(notification_data.IsTargeted("sender")); |
| 187 EXPECT_TRUE(notification_data.IsTargeted("other1")); | 188 EXPECT_TRUE(notification_data.IsTargeted("other1")); |
| 188 EXPECT_TRUE(notification_data.IsTargeted("other2")); | 189 EXPECT_TRUE(notification_data.IsTargeted("other2")); |
| 189 EXPECT_THAT(invalidation_map, | 190 EXPECT_THAT(invalidation_map, |
| 190 Eq(notification_data.GetIdInvalidationMap())); | 191 Eq(notification_data.GetIdInvalidationMap())); |
| 191 const std::string& notification_data_str = notification_data.ToString(); | 192 const std::string& notification_data_str = notification_data.ToString(); |
| 192 EXPECT_EQ( | 193 EXPECT_EQ( |
| 193 "{\"idInvalidationMap\":[" | 194 "{\"idInvalidationMap\":[" |
| 194 "{\"objectId\":{\"name\":\"BOOKMARK\",\"source\":1004}," | 195 "{\"objectId\":{\"name\":\"BOOKMARK\",\"source\":1004}," |
| 195 "\"state\":{\"ackHandle\":{\"state\":\"\",\"timestamp\":\"0\"}," | 196 "\"state\":{\"ackHandle\":{\"state\":\"\",\"timestamp\":\"0\"}," |
| 196 "\"payload\":\"\"}}," | 197 "\"payload\":\"\",\"version\":\"-1\"}}," |
| 197 "{\"objectId\":{\"name\":\"THEME\",\"source\":1004}," | 198 "{\"objectId\":{\"name\":\"THEME\",\"source\":1004}," |
| 198 "\"state\":{\"ackHandle\":{\"state\":\"\",\"timestamp\":\"0\"}," | 199 "\"state\":{\"ackHandle\":{\"state\":\"\",\"timestamp\":\"0\"}," |
| 199 "\"payload\":\"\"}}" | 200 "\"payload\":\"\",\"version\":\"-1\"}}" |
| 200 "],\"notificationType\":\"notifyAll\"," | 201 "],\"notificationType\":\"notifyAll\"," |
| 201 "\"senderId\":\"sender\"}", notification_data_str); | 202 "\"senderId\":\"sender\"}", notification_data_str); |
| 202 | 203 |
| 203 P2PNotificationData notification_data_parsed; | 204 P2PNotificationData notification_data_parsed; |
| 204 EXPECT_TRUE(notification_data_parsed.ResetFromString(notification_data_str)); | 205 EXPECT_TRUE(notification_data_parsed.ResetFromString(notification_data_str)); |
| 205 EXPECT_TRUE(notification_data.Equals(notification_data_parsed)); | 206 EXPECT_TRUE(notification_data.Equals(notification_data_parsed)); |
| 206 } | 207 } |
| 207 | 208 |
| 208 // Set up the P2PInvalidator, simulate a successful connection, and send | 209 // Set up the P2PInvalidator, simulate a successful connection, and send |
| 209 // a notification with the default target (NOTIFY_OTHERS). The | 210 // a notification with the default target (NOTIFY_OTHERS). The |
| (...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 242 ModelTypeInvalidationMapToObjectIdInvalidationMap( | 243 ModelTypeInvalidationMapToObjectIdInvalidationMap( |
| 243 MakeInvalidationMap(enabled_types)), | 244 MakeInvalidationMap(enabled_types)), |
| 244 Eq(fake_handler_.GetLastInvalidationMap())); | 245 Eq(fake_handler_.GetLastInvalidationMap())); |
| 245 | 246 |
| 246 // Sent with target NOTIFY_OTHERS so should not be propagated to | 247 // Sent with target NOTIFY_OTHERS so should not be propagated to |
| 247 // |fake_handler_|. | 248 // |fake_handler_|. |
| 248 { | 249 { |
| 249 const ObjectIdInvalidationMap& invalidation_map = | 250 const ObjectIdInvalidationMap& invalidation_map = |
| 250 ObjectIdSetToInvalidationMap( | 251 ObjectIdSetToInvalidationMap( |
| 251 ModelTypeSetToObjectIdSet(ModelTypeSet(THEMES, APPS)), | 252 ModelTypeSetToObjectIdSet(ModelTypeSet(THEMES, APPS)), |
| 253 Invalidation::kUnknownVersion, |
| 252 std::string()); | 254 std::string()); |
| 253 invalidator->SendInvalidation(invalidation_map); | 255 invalidator->SendInvalidation(invalidation_map); |
| 254 } | 256 } |
| 255 | 257 |
| 256 ReflectSentNotifications(); | 258 ReflectSentNotifications(); |
| 257 EXPECT_EQ(1, fake_handler_.GetInvalidationCount()); | 259 EXPECT_EQ(1, fake_handler_.GetInvalidationCount()); |
| 258 } | 260 } |
| 259 | 261 |
| 260 // Set up the P2PInvalidator and send out notifications with various | 262 // Set up the P2PInvalidator and send out notifications with various |
| 261 // target settings. The notifications received by the observer should | 263 // target settings. The notifications received by the observer should |
| 262 // be consistent with the target settings. | 264 // be consistent with the target settings. |
| 263 TEST_F(P2PInvalidatorTest, SendNotificationData) { | 265 TEST_F(P2PInvalidatorTest, SendNotificationData) { |
| 264 const ModelTypeSet enabled_types(BOOKMARKS, PREFERENCES, THEMES); | 266 const ModelTypeSet enabled_types(BOOKMARKS, PREFERENCES, THEMES); |
| 265 const ModelTypeSet changed_types(THEMES, APPS); | 267 const ModelTypeSet changed_types(THEMES, APPS); |
| 266 const ModelTypeSet expected_types(THEMES); | 268 const ModelTypeSet expected_types(THEMES); |
| 267 | 269 |
| 268 const ObjectIdInvalidationMap& invalidation_map = | 270 const ObjectIdInvalidationMap& invalidation_map = |
| 269 ObjectIdSetToInvalidationMap(ModelTypeSetToObjectIdSet(changed_types), | 271 ObjectIdSetToInvalidationMap(ModelTypeSetToObjectIdSet(changed_types), |
| 272 Invalidation::kUnknownVersion, |
| 270 std::string()); | 273 std::string()); |
| 271 | 274 |
| 272 P2PInvalidator* const invalidator = delegate_.GetInvalidator(); | 275 P2PInvalidator* const invalidator = delegate_.GetInvalidator(); |
| 273 notifier::FakePushClient* const push_client = delegate_.GetPushClient(); | 276 notifier::FakePushClient* const push_client = delegate_.GetPushClient(); |
| 274 | 277 |
| 275 invalidator->UpdateRegisteredIds(&fake_handler_, | 278 invalidator->UpdateRegisteredIds(&fake_handler_, |
| 276 ModelTypeSetToObjectIdSet(enabled_types)); | 279 ModelTypeSetToObjectIdSet(enabled_types)); |
| 277 | 280 |
| 278 invalidator->UpdateCredentials("foo@bar.com", "fake_token"); | 281 invalidator->UpdateCredentials("foo@bar.com", "fake_token"); |
| 279 | 282 |
| (...skipping 76 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 356 EXPECT_EQ(5, fake_handler_.GetInvalidationCount()); | 359 EXPECT_EQ(5, fake_handler_.GetInvalidationCount()); |
| 357 } | 360 } |
| 358 | 361 |
| 359 INSTANTIATE_TYPED_TEST_CASE_P( | 362 INSTANTIATE_TYPED_TEST_CASE_P( |
| 360 P2PInvalidatorTest, InvalidatorTest, | 363 P2PInvalidatorTest, InvalidatorTest, |
| 361 P2PInvalidatorTestDelegate); | 364 P2PInvalidatorTestDelegate); |
| 362 | 365 |
| 363 } // namespace | 366 } // namespace |
| 364 | 367 |
| 365 } // namespace syncer | 368 } // namespace syncer |
| OLD | NEW |