| 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 "chrome/browser/extensions/api/push_messaging/push_messaging_invalidati
on_handler.h" | 5 #include "chrome/browser/extensions/api/push_messaging/push_messaging_invalidati
on_handler.h" |
| 6 | 6 |
| 7 #include "base/basictypes.h" | 7 #include "base/basictypes.h" |
| 8 #include "base/memory/scoped_ptr.h" | 8 #include "base/memory/scoped_ptr.h" |
| 9 #include "chrome/browser/extensions/api/push_messaging/push_messaging_invalidati
on_handler_delegate.h" | 9 #include "chrome/browser/extensions/api/push_messaging/push_messaging_invalidati
on_handler_delegate.h" |
| 10 #include "chrome/browser/invalidation/invalidation_frontend.h" | 10 #include "chrome/browser/invalidation/invalidation_service.h" |
| 11 #include "google/cacheinvalidation/types.pb.h" | 11 #include "google/cacheinvalidation/types.pb.h" |
| 12 #include "sync/internal_api/public/base/invalidation_test_util.h" | 12 #include "sync/internal_api/public/base/invalidation_test_util.h" |
| 13 #include "testing/gmock/include/gmock/gmock.h" | 13 #include "testing/gmock/include/gmock/gmock.h" |
| 14 #include "testing/gtest/include/gtest/gtest.h" | 14 #include "testing/gtest/include/gtest/gtest.h" |
| 15 | 15 |
| 16 using ::testing::_; | 16 using ::testing::_; |
| 17 using ::testing::NotNull; | 17 using ::testing::NotNull; |
| 18 using ::testing::SaveArg; | 18 using ::testing::SaveArg; |
| 19 using ::testing::StrictMock; | 19 using ::testing::StrictMock; |
| 20 | 20 |
| 21 namespace extensions { | 21 namespace extensions { |
| 22 | 22 |
| 23 namespace { | 23 namespace { |
| 24 | 24 |
| 25 class MockInvalidationFrontend : public invalidation::InvalidationFrontend { | 25 class MockInvalidationService : public invalidation::InvalidationService { |
| 26 public: | 26 public: |
| 27 MockInvalidationFrontend(); | 27 MockInvalidationService(); |
| 28 ~MockInvalidationFrontend(); | 28 ~MockInvalidationService(); |
| 29 MOCK_METHOD1(RegisterInvalidationHandler, | 29 MOCK_METHOD1(RegisterInvalidationHandler, |
| 30 void(syncer::InvalidationHandler*)); | 30 void(syncer::InvalidationHandler*)); |
| 31 MOCK_METHOD2(UpdateRegisteredInvalidationIds, | 31 MOCK_METHOD2(UpdateRegisteredInvalidationIds, |
| 32 void(syncer::InvalidationHandler*, const syncer::ObjectIdSet&)); | 32 void(syncer::InvalidationHandler*, const syncer::ObjectIdSet&)); |
| 33 MOCK_METHOD1(UnregisterInvalidationHandler, | 33 MOCK_METHOD1(UnregisterInvalidationHandler, |
| 34 void(syncer::InvalidationHandler*)); | 34 void(syncer::InvalidationHandler*)); |
| 35 MOCK_METHOD2(AcknowledgeInvalidation, void(const invalidation::ObjectId&, | 35 MOCK_METHOD2(AcknowledgeInvalidation, void(const invalidation::ObjectId&, |
| 36 const syncer::AckHandle&)); | 36 const syncer::AckHandle&)); |
| 37 MOCK_CONST_METHOD0(GetInvalidatorState, syncer::InvalidatorState()); | 37 MOCK_CONST_METHOD0(GetInvalidatorState, syncer::InvalidatorState()); |
| 38 MOCK_CONST_METHOD0(GetInvalidatorClientId, std::string()); |
| 38 | 39 |
| 39 private: | 40 private: |
| 40 DISALLOW_COPY_AND_ASSIGN(MockInvalidationFrontend); | 41 DISALLOW_COPY_AND_ASSIGN(MockInvalidationService); |
| 41 }; | 42 }; |
| 42 | 43 |
| 43 MockInvalidationFrontend::MockInvalidationFrontend() {} | 44 MockInvalidationService::MockInvalidationService() {} |
| 44 MockInvalidationFrontend::~MockInvalidationFrontend() {} | 45 MockInvalidationService::~MockInvalidationService() {} |
| 45 | 46 |
| 46 class MockInvalidationHandlerDelegate | 47 class MockInvalidationHandlerDelegate |
| 47 : public PushMessagingInvalidationHandlerDelegate { | 48 : public PushMessagingInvalidationHandlerDelegate { |
| 48 public: | 49 public: |
| 49 MockInvalidationHandlerDelegate(); | 50 MockInvalidationHandlerDelegate(); |
| 50 ~MockInvalidationHandlerDelegate(); | 51 ~MockInvalidationHandlerDelegate(); |
| 51 MOCK_METHOD3(OnMessage, | 52 MOCK_METHOD3(OnMessage, |
| 52 void(const std::string&, int, const std::string&)); | 53 void(const std::string&, int, const std::string&)); |
| 53 | 54 |
| 54 private: | 55 private: |
| (...skipping 12 matching lines...) Expand all Loading... |
| 67 EXPECT_CALL(service_, RegisterInvalidationHandler(NotNull())) | 68 EXPECT_CALL(service_, RegisterInvalidationHandler(NotNull())) |
| 68 .WillOnce(SaveArg<0>(&handler)); | 69 .WillOnce(SaveArg<0>(&handler)); |
| 69 handler_.reset(new PushMessagingInvalidationHandler( | 70 handler_.reset(new PushMessagingInvalidationHandler( |
| 70 &service_, &delegate_)); | 71 &service_, &delegate_)); |
| 71 EXPECT_EQ(handler_.get(), handler); | 72 EXPECT_EQ(handler_.get(), handler); |
| 72 } | 73 } |
| 73 virtual void TearDown() OVERRIDE { | 74 virtual void TearDown() OVERRIDE { |
| 74 EXPECT_CALL(service_, UnregisterInvalidationHandler(handler_.get())); | 75 EXPECT_CALL(service_, UnregisterInvalidationHandler(handler_.get())); |
| 75 handler_.reset(); | 76 handler_.reset(); |
| 76 } | 77 } |
| 77 StrictMock<MockInvalidationFrontend> service_; | 78 StrictMock<MockInvalidationService> service_; |
| 78 StrictMock<MockInvalidationHandlerDelegate> delegate_; | 79 StrictMock<MockInvalidationHandlerDelegate> delegate_; |
| 79 scoped_ptr<PushMessagingInvalidationHandler> handler_; | 80 scoped_ptr<PushMessagingInvalidationHandler> handler_; |
| 80 }; | 81 }; |
| 81 | 82 |
| 82 TEST_F(PushMessagingInvalidationHandlerTest, RegisterUnregisterExtension) { | 83 TEST_F(PushMessagingInvalidationHandlerTest, RegisterUnregisterExtension) { |
| 83 syncer::ObjectIdSet expected_ids; | 84 syncer::ObjectIdSet expected_ids; |
| 84 expected_ids.insert(invalidation::ObjectId( | 85 expected_ids.insert(invalidation::ObjectId( |
| 85 ipc::invalidation::ObjectSource::CHROME_PUSH_MESSAGING, | 86 ipc::invalidation::ObjectSource::CHROME_PUSH_MESSAGING, |
| 86 "U/cccccccccccccccccccccccccccccccc/0")); | 87 "U/cccccccccccccccccccccccccccccccc/0")); |
| 87 expected_ids.insert(invalidation::ObjectId( | 88 expected_ids.insert(invalidation::ObjectId( |
| (...skipping 66 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 154 for (syncer::ObjectIdSet::const_iterator it = ids.begin(); it != ids.end(); | 155 for (syncer::ObjectIdSet::const_iterator it = ids.begin(); it != ids.end(); |
| 155 ++it) { | 156 ++it) { |
| 156 EXPECT_CALL(service_, AcknowledgeInvalidation( | 157 EXPECT_CALL(service_, AcknowledgeInvalidation( |
| 157 *it, syncer::AckHandle::InvalidAckHandle())); | 158 *it, syncer::AckHandle::InvalidAckHandle())); |
| 158 } | 159 } |
| 159 handler_->OnIncomingInvalidation( | 160 handler_->OnIncomingInvalidation( |
| 160 ObjectIdSetToInvalidationMap(ids, "payload")); | 161 ObjectIdSetToInvalidationMap(ids, "payload")); |
| 161 } | 162 } |
| 162 | 163 |
| 163 } // namespace extensions | 164 } // namespace extensions |
| OLD | NEW |