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" |
11 #include "sync/internal_api/public/base/model_type_invalidation_map.h" | 11 #include "sync/internal_api/public/base/model_type_invalidation_map.h" |
12 #include "sync/notifier/fake_invalidation_handler.h" | 12 #include "sync/notifier/fake_invalidation_handler.h" |
13 #include "sync/notifier/invalidator_test_template.h" | 13 #include "sync/notifier/invalidator_test_template.h" |
14 #include "sync/notifier/object_id_invalidation_map_test_util.h" | 14 #include "sync/notifier/object_id_invalidation_map_test_util.h" |
15 #include "testing/gtest/include/gtest/gtest.h" | 15 #include "testing/gtest/include/gtest/gtest.h" |
16 | 16 |
17 namespace syncer { | 17 namespace syncer { |
18 | 18 |
19 namespace { | 19 namespace { |
20 | 20 |
21 class P2PInvalidatorTestDelegate { | 21 class P2PInvalidatorTestDelegate { |
22 public: | 22 public: |
23 P2PInvalidatorTestDelegate() : fake_push_client_(NULL) {} | 23 P2PInvalidatorTestDelegate() : fake_push_client_(NULL) {} |
24 | 24 |
25 ~P2PInvalidatorTestDelegate() { | 25 ~P2PInvalidatorTestDelegate() { |
26 DestroyInvalidator(); | 26 DestroyInvalidator(); |
27 } | 27 } |
28 | 28 |
29 void CreateInvalidator( | 29 void CreateInvalidator( |
| 30 const std::string& invalidator_client_id, |
30 const std::string& initial_state, | 31 const std::string& initial_state, |
31 const base::WeakPtr<InvalidationStateTracker>& | 32 const base::WeakPtr<InvalidationStateTracker>& |
32 invalidation_state_tracker) { | 33 invalidation_state_tracker) { |
33 DCHECK(!fake_push_client_); | 34 DCHECK(!fake_push_client_); |
34 DCHECK(!invalidator_.get()); | 35 DCHECK(!invalidator_.get()); |
35 fake_push_client_ = new notifier::FakePushClient(); | 36 fake_push_client_ = new notifier::FakePushClient(); |
36 invalidator_.reset( | 37 invalidator_.reset( |
37 new P2PInvalidator( | 38 new P2PInvalidator( |
38 scoped_ptr<notifier::PushClient>(fake_push_client_), | 39 scoped_ptr<notifier::PushClient>(fake_push_client_), |
| 40 invalidator_client_id, |
39 NOTIFY_OTHERS)); | 41 NOTIFY_OTHERS)); |
40 } | 42 } |
41 | 43 |
42 P2PInvalidator* GetInvalidator() { | 44 P2PInvalidator* GetInvalidator() { |
43 return invalidator_.get(); | 45 return invalidator_.get(); |
44 } | 46 } |
45 | 47 |
46 notifier::FakePushClient* GetPushClient() { | 48 notifier::FakePushClient* GetPushClient() { |
47 return fake_push_client_; | 49 return fake_push_client_; |
48 } | 50 } |
(...skipping 28 matching lines...) Expand all Loading... |
77 private: | 79 private: |
78 // Owned by |invalidator_|. | 80 // Owned by |invalidator_|. |
79 notifier::FakePushClient* fake_push_client_; | 81 notifier::FakePushClient* fake_push_client_; |
80 scoped_ptr<P2PInvalidator> invalidator_; | 82 scoped_ptr<P2PInvalidator> invalidator_; |
81 }; | 83 }; |
82 | 84 |
83 class P2PInvalidatorTest : public testing::Test { | 85 class P2PInvalidatorTest : public testing::Test { |
84 protected: | 86 protected: |
85 P2PInvalidatorTest() | 87 P2PInvalidatorTest() |
86 : next_sent_notification_to_reflect_(0) { | 88 : next_sent_notification_to_reflect_(0) { |
87 delegate_.CreateInvalidator("fake_state", | 89 delegate_.CreateInvalidator("sender", |
| 90 "fake_state", |
88 base::WeakPtr<InvalidationStateTracker>()); | 91 base::WeakPtr<InvalidationStateTracker>()); |
89 delegate_.GetInvalidator()->RegisterHandler(&fake_handler_); | 92 delegate_.GetInvalidator()->RegisterHandler(&fake_handler_); |
90 } | 93 } |
91 | 94 |
92 virtual ~P2PInvalidatorTest() { | 95 virtual ~P2PInvalidatorTest() { |
93 delegate_.GetInvalidator()->UnregisterHandler(&fake_handler_); | 96 delegate_.GetInvalidator()->UnregisterHandler(&fake_handler_); |
94 } | 97 } |
95 | 98 |
96 ModelTypeInvalidationMap MakeInvalidationMap(ModelTypeSet types) { | 99 ModelTypeInvalidationMap MakeInvalidationMap(ModelTypeSet types) { |
97 return ModelTypeSetToInvalidationMap(types, std::string()); | 100 return ModelTypeSetToInvalidationMap(types, std::string()); |
(...skipping 109 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
207 // UpdateEnabledTypes(). | 210 // UpdateEnabledTypes(). |
208 TEST_F(P2PInvalidatorTest, NotificationsBasic) { | 211 TEST_F(P2PInvalidatorTest, NotificationsBasic) { |
209 const ModelTypeSet enabled_types(BOOKMARKS, PREFERENCES); | 212 const ModelTypeSet enabled_types(BOOKMARKS, PREFERENCES); |
210 | 213 |
211 P2PInvalidator* const invalidator = delegate_.GetInvalidator(); | 214 P2PInvalidator* const invalidator = delegate_.GetInvalidator(); |
212 notifier::FakePushClient* const push_client = delegate_.GetPushClient(); | 215 notifier::FakePushClient* const push_client = delegate_.GetPushClient(); |
213 | 216 |
214 invalidator->UpdateRegisteredIds(&fake_handler_, | 217 invalidator->UpdateRegisteredIds(&fake_handler_, |
215 ModelTypeSetToObjectIdSet(enabled_types)); | 218 ModelTypeSetToObjectIdSet(enabled_types)); |
216 | 219 |
217 invalidator->SetUniqueId("sender"); | |
218 | |
219 const char kEmail[] = "foo@bar.com"; | 220 const char kEmail[] = "foo@bar.com"; |
220 const char kToken[] = "token"; | 221 const char kToken[] = "token"; |
221 invalidator->UpdateCredentials(kEmail, kToken); | 222 invalidator->UpdateCredentials(kEmail, kToken); |
222 { | 223 { |
223 notifier::Subscription expected_subscription; | 224 notifier::Subscription expected_subscription; |
224 expected_subscription.channel = kSyncP2PNotificationChannel; | 225 expected_subscription.channel = kSyncP2PNotificationChannel; |
225 expected_subscription.from = kEmail; | 226 expected_subscription.from = kEmail; |
226 EXPECT_TRUE(notifier::SubscriptionListsEqual( | 227 EXPECT_TRUE(notifier::SubscriptionListsEqual( |
227 push_client->subscriptions(), | 228 push_client->subscriptions(), |
228 notifier::SubscriptionList(1, expected_subscription))); | 229 notifier::SubscriptionList(1, expected_subscription))); |
(...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
265 const ObjectIdInvalidationMap& invalidation_map = | 266 const ObjectIdInvalidationMap& invalidation_map = |
266 ObjectIdSetToInvalidationMap( | 267 ObjectIdSetToInvalidationMap( |
267 ModelTypeSetToObjectIdSet(changed_types), ""); | 268 ModelTypeSetToObjectIdSet(changed_types), ""); |
268 | 269 |
269 P2PInvalidator* const invalidator = delegate_.GetInvalidator(); | 270 P2PInvalidator* const invalidator = delegate_.GetInvalidator(); |
270 notifier::FakePushClient* const push_client = delegate_.GetPushClient(); | 271 notifier::FakePushClient* const push_client = delegate_.GetPushClient(); |
271 | 272 |
272 invalidator->UpdateRegisteredIds(&fake_handler_, | 273 invalidator->UpdateRegisteredIds(&fake_handler_, |
273 ModelTypeSetToObjectIdSet(enabled_types)); | 274 ModelTypeSetToObjectIdSet(enabled_types)); |
274 | 275 |
275 invalidator->SetUniqueId("sender"); | |
276 invalidator->UpdateCredentials("foo@bar.com", "fake_token"); | 276 invalidator->UpdateCredentials("foo@bar.com", "fake_token"); |
277 | 277 |
278 ReflectSentNotifications(); | 278 ReflectSentNotifications(); |
279 push_client->EnableNotifications(); | 279 push_client->EnableNotifications(); |
280 EXPECT_EQ(INVALIDATIONS_ENABLED, fake_handler_.GetInvalidatorState()); | 280 EXPECT_EQ(INVALIDATIONS_ENABLED, fake_handler_.GetInvalidatorState()); |
281 | 281 |
282 ReflectSentNotifications(); | 282 ReflectSentNotifications(); |
283 EXPECT_EQ(1, fake_handler_.GetInvalidationCount()); | 283 EXPECT_EQ(1, fake_handler_.GetInvalidationCount()); |
284 EXPECT_THAT( | 284 EXPECT_THAT( |
285 ModelTypeInvalidationMapToObjectIdInvalidationMap( | 285 ModelTypeInvalidationMapToObjectIdInvalidationMap( |
(...skipping 68 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
354 EXPECT_EQ(5, fake_handler_.GetInvalidationCount()); | 354 EXPECT_EQ(5, fake_handler_.GetInvalidationCount()); |
355 } | 355 } |
356 | 356 |
357 INSTANTIATE_TYPED_TEST_CASE_P( | 357 INSTANTIATE_TYPED_TEST_CASE_P( |
358 P2PInvalidatorTest, InvalidatorTest, | 358 P2PInvalidatorTest, InvalidatorTest, |
359 P2PInvalidatorTestDelegate); | 359 P2PInvalidatorTestDelegate); |
360 | 360 |
361 } // namespace | 361 } // namespace |
362 | 362 |
363 } // namespace syncer | 363 } // namespace syncer |
OLD | NEW |