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 { |
akalin
2013/06/04 19:23:54
might be better to use a FakeInvalidationService,
rlarocque
2013/06/04 22:38:16
I agree that a FakeInvalidationService would be be
| |
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 |