| OLD | NEW |
| 1 // Copyright (c) 2013 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2013 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 "chrome/browser/invalidation/invalidation_service_android.h" | 5 #include "chrome/browser/invalidation/invalidation_service_android.h" |
| 6 | 6 |
| 7 #include "chrome/browser/chrome_notification_types.h" | 7 #include "chrome/browser/chrome_notification_types.h" |
| 8 #include "chrome/browser/invalidation/invalidation_controller_android.h" | 8 #include "chrome/browser/invalidation/invalidation_controller_android.h" |
| 9 #include "chrome/browser/invalidation/invalidation_service_factory.h" | |
| 10 #include "chrome/browser/invalidation/invalidation_service_test_template.h" | 9 #include "chrome/browser/invalidation/invalidation_service_test_template.h" |
| 11 #include "chrome/test/base/testing_profile.h" | 10 #include "chrome/test/base/testing_profile.h" |
| 12 #include "components/invalidation/fake_invalidation_handler.h" | 11 #include "components/invalidation/fake_invalidation_handler.h" |
| 13 #include "content/public/browser/notification_service.h" | 12 #include "content/public/browser/notification_service.h" |
| 14 #include "testing/gtest/include/gtest/gtest.h" | 13 #include "testing/gtest/include/gtest/gtest.h" |
| 15 | 14 |
| 16 namespace invalidation { | 15 namespace invalidation { |
| 17 | 16 |
| 18 class MockInvalidationControllerAndroid : public InvalidationControllerAndroid { | 17 class MockInvalidationControllerAndroid : public InvalidationControllerAndroid { |
| 19 public: | 18 public: |
| 20 MockInvalidationControllerAndroid() {} | 19 MockInvalidationControllerAndroid() {} |
| 21 virtual ~MockInvalidationControllerAndroid() {} | 20 virtual ~MockInvalidationControllerAndroid() {} |
| 22 | 21 |
| 23 virtual void SetRegisteredObjectIds(const syncer::ObjectIdSet& ids) OVERRIDE { | 22 virtual void SetRegisteredObjectIds(const syncer::ObjectIdSet& ids) OVERRIDE { |
| 24 registered_ids_ = ids; | 23 registered_ids_ = ids; |
| 25 } | 24 } |
| 26 | 25 |
| 27 syncer::ObjectIdSet registered_ids_; | 26 syncer::ObjectIdSet registered_ids_; |
| 28 }; | 27 }; |
| 29 | 28 |
| 30 class InvalidationServiceAndroidTestDelegate { | 29 class InvalidationServiceAndroidTestDelegate { |
| 31 public: | 30 public: |
| 32 InvalidationServiceAndroidTestDelegate() { } | 31 InvalidationServiceAndroidTestDelegate() {} |
| 33 | 32 |
| 34 ~InvalidationServiceAndroidTestDelegate() { | 33 ~InvalidationServiceAndroidTestDelegate() {} |
| 35 DestroyInvalidationService(); | |
| 36 } | |
| 37 | 34 |
| 38 void CreateInvalidationService() { | 35 void CreateInvalidationService() { |
| 39 profile_.reset(new TestingProfile()); | 36 profile_.reset(new TestingProfile()); |
| 40 invalidation_service_android_.reset( | 37 invalidation_service_android_.reset( |
| 41 new InvalidationServiceAndroid( | 38 new InvalidationServiceAndroid( |
| 42 profile_.get(), | 39 profile_.get(), |
| 43 new MockInvalidationControllerAndroid())); | 40 new MockInvalidationControllerAndroid())); |
| 44 } | 41 } |
| 45 | 42 |
| 46 InvalidationService* GetInvalidationService() { | 43 InvalidationService* GetInvalidationService() { |
| 47 return invalidation_service_android_.get(); | 44 return invalidation_service_android_.get(); |
| 48 } | 45 } |
| 49 | 46 |
| 50 void DestroyInvalidationService() { | 47 void DestroyInvalidationService() { |
| 51 invalidation_service_android_->Shutdown(); | 48 invalidation_service_android_.reset(); |
| 52 } | 49 } |
| 53 | 50 |
| 54 void TriggerOnInvalidatorStateChange(syncer::InvalidatorState state) { | 51 void TriggerOnInvalidatorStateChange(syncer::InvalidatorState state) { |
| 55 invalidation_service_android_->TriggerStateChangeForTest(state); | 52 invalidation_service_android_->TriggerStateChangeForTest(state); |
| 56 } | 53 } |
| 57 | 54 |
| 58 void TriggerOnIncomingInvalidation( | 55 void TriggerOnIncomingInvalidation( |
| 59 const syncer::ObjectIdInvalidationMap& invalidation_map) { | 56 const syncer::ObjectIdInvalidationMap& invalidation_map) { |
| 60 content::NotificationService::current()->Notify( | 57 content::NotificationService::current()->Notify( |
| 61 chrome::NOTIFICATION_SYNC_REFRESH_REMOTE, | 58 chrome::NOTIFICATION_SYNC_REFRESH_REMOTE, |
| 62 content::Source<Profile>(profile_.get()), | 59 content::Source<Profile>(profile_.get()), |
| 63 content::Details<const syncer::ObjectIdInvalidationMap>( | 60 content::Details<const syncer::ObjectIdInvalidationMap>( |
| 64 &invalidation_map)); | 61 &invalidation_map)); |
| 65 } | 62 } |
| 66 | 63 |
| 67 scoped_ptr<TestingProfile> profile_; | 64 scoped_ptr<TestingProfile> profile_; |
| 68 scoped_ptr<InvalidationServiceAndroid> invalidation_service_android_; | 65 scoped_ptr<InvalidationServiceAndroid> invalidation_service_android_; |
| 69 }; | 66 }; |
| 70 | 67 |
| 71 INSTANTIATE_TYPED_TEST_CASE_P( | 68 INSTANTIATE_TYPED_TEST_CASE_P( |
| 72 AndroidInvalidationServiceTest, InvalidationServiceTest, | 69 AndroidInvalidationServiceTest, InvalidationServiceTest, |
| 73 InvalidationServiceAndroidTestDelegate); | 70 InvalidationServiceAndroidTestDelegate); |
| 74 | 71 |
| 75 class InvalidationServiceAndroidRegistrationTest : public testing::Test { | 72 class InvalidationServiceAndroidRegistrationTest : public testing::Test { |
| 76 protected: | 73 protected: |
| 77 InvalidationServiceAndroidRegistrationTest() | 74 InvalidationServiceAndroidRegistrationTest() |
| 78 : invalidation_controller_(new MockInvalidationControllerAndroid()), | 75 : invalidation_controller_(new MockInvalidationControllerAndroid()), |
| 79 invalidation_service_(&profile_, invalidation_controller_) {} | 76 invalidation_service_(&profile_, invalidation_controller_) {} |
| 80 | 77 |
| 81 virtual ~InvalidationServiceAndroidRegistrationTest() { | 78 virtual ~InvalidationServiceAndroidRegistrationTest() {} |
| 82 invalidation_service_.Shutdown(); | |
| 83 } | |
| 84 | 79 |
| 85 // Get the invalidation service being tested. | 80 // Get the invalidation service being tested. |
| 86 InvalidationService& invalidation_service() { | 81 InvalidationService& invalidation_service() { |
| 87 return invalidation_service_; | 82 return invalidation_service_; |
| 88 } | 83 } |
| 89 | 84 |
| 90 // Get the number of objects which are registered. | 85 // Get the number of objects which are registered. |
| 91 size_t RegisteredObjectCount() { | 86 size_t RegisteredObjectCount() { |
| 92 return registered_ids().size(); | 87 return registered_ids().size(); |
| 93 } | 88 } |
| (...skipping 73 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 167 ASSERT_FALSE(id1.empty()); | 162 ASSERT_FALSE(id1.empty()); |
| 168 | 163 |
| 169 // If nothing else, the ID should be consistent. | 164 // If nothing else, the ID should be consistent. |
| 170 const std::string id2 = invalidation_service().GetInvalidatorClientId(); | 165 const std::string id2 = invalidation_service().GetInvalidatorClientId(); |
| 171 ASSERT_EQ(id1, id2); | 166 ASSERT_EQ(id1, id2); |
| 172 } | 167 } |
| 173 | 168 |
| 174 #endif | 169 #endif |
| 175 | 170 |
| 176 } // namespace invalidation | 171 } // namespace invalidation |
| OLD | NEW |