Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(216)

Side by Side Diff: chrome/browser/extensions/api/push_messaging/push_messaging_invalidation_handler_unittest.cc

Issue 10911084: Implement Invalidator::Acknowledge (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Adapt patch to new TickClock interface Created 7 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
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/sync/invalidation_frontend.h" 10 #include "chrome/browser/sync/invalidation_frontend.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 "testing/gmock/include/gmock/gmock.h" 13 #include "testing/gmock/include/gmock/gmock.h"
13 #include "testing/gtest/include/gtest/gtest.h" 14 #include "testing/gtest/include/gtest/gtest.h"
14 15
15 using ::testing::_; 16 using ::testing::_;
16 using ::testing::NotNull; 17 using ::testing::NotNull;
17 using ::testing::SaveArg; 18 using ::testing::SaveArg;
18 using ::testing::StrictMock; 19 using ::testing::StrictMock;
19 20
20 namespace extensions { 21 namespace extensions {
21 22
22 namespace { 23 namespace {
23 24
24 class MockInvalidationFrontend : public InvalidationFrontend { 25 class MockInvalidationFrontend : public InvalidationFrontend {
25 public: 26 public:
26 MockInvalidationFrontend(); 27 MockInvalidationFrontend();
27 ~MockInvalidationFrontend(); 28 ~MockInvalidationFrontend();
28 MOCK_METHOD1(RegisterInvalidationHandler, 29 MOCK_METHOD1(RegisterInvalidationHandler,
29 void(syncer::InvalidationHandler*)); 30 void(syncer::InvalidationHandler*));
30 MOCK_METHOD2(UpdateRegisteredInvalidationIds, 31 MOCK_METHOD2(UpdateRegisteredInvalidationIds,
31 void(syncer::InvalidationHandler*, const syncer::ObjectIdSet&)); 32 void(syncer::InvalidationHandler*, const syncer::ObjectIdSet&));
32 MOCK_METHOD1(UnregisterInvalidationHandler, 33 MOCK_METHOD1(UnregisterInvalidationHandler,
33 void(syncer::InvalidationHandler*)); 34 void(syncer::InvalidationHandler*));
35 MOCK_METHOD2(AcknowledgeInvalidation, void(const invalidation::ObjectId&,
36 const syncer::AckHandle&));
34 MOCK_CONST_METHOD0(GetInvalidatorState, syncer::InvalidatorState()); 37 MOCK_CONST_METHOD0(GetInvalidatorState, syncer::InvalidatorState());
35 38
36 private: 39 private:
37 DISALLOW_COPY_AND_ASSIGN(MockInvalidationFrontend); 40 DISALLOW_COPY_AND_ASSIGN(MockInvalidationFrontend);
38 }; 41 };
39 42
40 MockInvalidationFrontend::MockInvalidationFrontend() {} 43 MockInvalidationFrontend::MockInvalidationFrontend() {}
41 MockInvalidationFrontend::~MockInvalidationFrontend() {} 44 MockInvalidationFrontend::~MockInvalidationFrontend() {}
42 45
43 class MockInvalidationHandlerDelegate 46 class MockInvalidationHandlerDelegate
(...skipping 60 matching lines...) Expand 10 before | Expand all | Expand 10 after
104 ids.insert(invalidation::ObjectId( 107 ids.insert(invalidation::ObjectId(
105 ipc::invalidation::ObjectSource::CHROME_PUSH_MESSAGING, 108 ipc::invalidation::ObjectSource::CHROME_PUSH_MESSAGING,
106 "U/dddddddddddddddddddddddddddddddd/0")); 109 "U/dddddddddddddddddddddddddddddddd/0"));
107 ids.insert(invalidation::ObjectId( 110 ids.insert(invalidation::ObjectId(
108 ipc::invalidation::ObjectSource::CHROME_PUSH_MESSAGING, 111 ipc::invalidation::ObjectSource::CHROME_PUSH_MESSAGING,
109 "U/dddddddddddddddddddddddddddddddd/3")); 112 "U/dddddddddddddddddddddddddddddddd/3"));
110 EXPECT_CALL(delegate_, 113 EXPECT_CALL(delegate_,
111 OnMessage("dddddddddddddddddddddddddddddddd", 0, "payload")); 114 OnMessage("dddddddddddddddddddddddddddddddd", 0, "payload"));
112 EXPECT_CALL(delegate_, 115 EXPECT_CALL(delegate_,
113 OnMessage("dddddddddddddddddddddddddddddddd", 3, "payload")); 116 OnMessage("dddddddddddddddddddddddddddddddd", 3, "payload"));
117 for (syncer::ObjectIdSet::const_iterator it = ids.begin(); it != ids.end();
118 ++it) {
119 EXPECT_CALL(service_, AcknowledgeInvalidation(
120 *it, syncer::AckHandle::InvalidAckHandle()));
121 }
114 handler_->OnIncomingInvalidation( 122 handler_->OnIncomingInvalidation(
115 ObjectIdSetToInvalidationMap(ids, "payload")); 123 ObjectIdSetToInvalidationMap(ids, "payload"));
116 } 124 }
117 125
118 // Tests that malformed object IDs don't trigger spurious callbacks. 126 // Tests that malformed object IDs don't trigger spurious callbacks.
119 TEST_F(PushMessagingInvalidationHandlerTest, DispatchInvalidObjectIds) { 127 TEST_F(PushMessagingInvalidationHandlerTest, DispatchInvalidObjectIds) {
120 syncer::ObjectIdSet ids; 128 syncer::ObjectIdSet ids;
121 // Completely incorrect format. 129 // Completely incorrect format.
122 ids.insert(invalidation::ObjectId( 130 ids.insert(invalidation::ObjectId(
123 ipc::invalidation::ObjectSource::TEST, 131 ipc::invalidation::ObjectSource::TEST,
(...skipping 11 matching lines...) Expand all
135 ipc::invalidation::ObjectSource::CHROME_PUSH_MESSAGING, 143 ipc::invalidation::ObjectSource::CHROME_PUSH_MESSAGING,
136 "U/ddddddddddddddddddddddddddddddddd/3")); 144 "U/ddddddddddddddddddddddddddddddddd/3"));
137 // Non-numeric subchannel. 145 // Non-numeric subchannel.
138 ids.insert(invalidation::ObjectId( 146 ids.insert(invalidation::ObjectId(
139 ipc::invalidation::ObjectSource::CHROME_PUSH_MESSAGING, 147 ipc::invalidation::ObjectSource::CHROME_PUSH_MESSAGING,
140 "U/dddddddddddddddddddddddddddddddd/z")); 148 "U/dddddddddddddddddddddddddddddddd/z"));
141 // Subchannel out of range. 149 // Subchannel out of range.
142 ids.insert(invalidation::ObjectId( 150 ids.insert(invalidation::ObjectId(
143 ipc::invalidation::ObjectSource::CHROME_PUSH_MESSAGING, 151 ipc::invalidation::ObjectSource::CHROME_PUSH_MESSAGING,
144 "U/dddddddddddddddddddddddddddddddd/4")); 152 "U/dddddddddddddddddddddddddddddddd/4"));
153 // Invalid object IDs should still be acknowledged.
154 for (syncer::ObjectIdSet::const_iterator it = ids.begin(); it != ids.end();
155 ++it) {
156 EXPECT_CALL(service_, AcknowledgeInvalidation(
157 *it, syncer::AckHandle::InvalidAckHandle()));
158 }
145 handler_->OnIncomingInvalidation( 159 handler_->OnIncomingInvalidation(
146 ObjectIdSetToInvalidationMap(ids, "payload")); 160 ObjectIdSetToInvalidationMap(ids, "payload"));
147 } 161 }
148 162
149 } // namespace extensions 163 } // namespace extensions
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698