Index: chrome/browser/invalidation/android_invalidation_service_unittest.cc |
diff --git a/chrome/browser/invalidation/android_invalidation_service_unittest.cc b/chrome/browser/invalidation/android_invalidation_service_unittest.cc |
new file mode 100644 |
index 0000000000000000000000000000000000000000..04c9891bff2b440e920d81bbf2a555002064b61c |
--- /dev/null |
+++ b/chrome/browser/invalidation/android_invalidation_service_unittest.cc |
@@ -0,0 +1,61 @@ |
+// Copyright (c) 2013 The Chromium Authors. All rights reserved. |
+// Use of this source code is governed by a BSD-style license that can be |
+// found in the LICENSE file. |
+ |
+#include "chrome/browser/invalidation/android_invalidation_service.h" |
+ |
+#include "chrome/browser/invalidation/invalidation_frontend_test_template.h" |
+#include "chrome/browser/invalidation/invalidation_service_factory.h" |
+#include "chrome/common/chrome_notification_types.h" |
+#include "chrome/test/base/testing_profile.h" |
+#include "content/public/browser/notification_service.h" |
+#include "testing/gtest/include/gtest/gtest.h" |
+ |
+namespace invalidation { |
+ |
+class AndroidInvalidationServiceTestDelegate { |
+ public: |
+ AndroidInvalidationServiceTestDelegate() { } |
+ |
+ ~AndroidInvalidationServiceTestDelegate() { |
+ DestroyInvalidationFrontend(); |
+ } |
+ |
+ void CreateInvalidationFrontend() { |
+ profile_.reset(new TestingProfile()); |
+ android_invalidation_service_.reset(new AndroidInvalidationService()); |
+ android_invalidation_service_->Init(profile_.get()); |
+ } |
+ |
+ InvalidationFrontend* GetInvalidationFrontend() { |
+ return android_invalidation_service_.get(); |
+ } |
+ |
+ void DestroyInvalidationFrontend() { |
+ android_invalidation_service_->Shutdown(); |
+ } |
+ |
+ void TriggerOnInvalidatorStateChange(syncer::InvalidatorState state) { |
+ android_invalidation_service_->TriggerStateChangeForTest(state); |
+ } |
+ |
+ void TriggerOnIncomingInvalidation( |
+ const syncer::ObjectIdInvalidationMap& invalidation_map) { |
+ syncer::ModelTypeInvalidationMap model_invalidation_map = |
+ ObjectIdInvalidationMapToModelTypeInvalidationMap(invalidation_map); |
+ content::NotificationService::current()->Notify( |
+ chrome::NOTIFICATION_SYNC_REFRESH_REMOTE, |
+ content::Source<Profile>(profile_.get()), |
+ content::Details<const syncer::ModelTypeInvalidationMap>( |
+ &model_invalidation_map)); |
+ } |
+ |
+ scoped_ptr<TestingProfile> profile_; |
+ scoped_ptr<AndroidInvalidationService> android_invalidation_service_; |
+}; |
+ |
+INSTANTIATE_TYPED_TEST_CASE_P( |
+ AndroidInvalidationServiceTest, InvalidationFrontendTest, |
+ AndroidInvalidationServiceTestDelegate); |
+ |
+} // namespace invalidation |