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

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: Restart test + more cleanup Created 8 years, 2 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::InSequence; 17 using ::testing::InSequence;
17 using ::testing::NotNull; 18 using ::testing::NotNull;
18 using ::testing::SaveArg; 19 using ::testing::SaveArg;
19 using ::testing::StrictMock; 20 using ::testing::StrictMock;
20 21
21 namespace extensions { 22 namespace extensions {
22 23
23 namespace { 24 namespace {
24 25
25 // TODO(dcheng): Hardcoded for now. Once the svn export is finished, use 26 // TODO(dcheng): Hardcoded for now. Once the svn export is finished, use
26 // ipc::invalidation::ObjectSource::CHROME_PUSH_MESSAGING. 27 // ipc::invalidation::ObjectSource::CHROME_PUSH_MESSAGING.
27 const int kSourceId = 1030; 28 const int kSourceId = 1030;
28 29
29 class MockInvalidationFrontend : public InvalidationFrontend { 30 class MockInvalidationFrontend : public InvalidationFrontend {
30 public: 31 public:
31 MockInvalidationFrontend(); 32 MockInvalidationFrontend();
32 ~MockInvalidationFrontend(); 33 ~MockInvalidationFrontend();
33 MOCK_METHOD1(RegisterInvalidationHandler, 34 MOCK_METHOD1(RegisterInvalidationHandler,
34 void(syncer::InvalidationHandler*)); 35 void(syncer::InvalidationHandler*));
35 MOCK_METHOD2(UpdateRegisteredInvalidationIds, 36 MOCK_METHOD2(UpdateRegisteredInvalidationIds,
36 void(syncer::InvalidationHandler*, const syncer::ObjectIdSet&)); 37 void(syncer::InvalidationHandler*, const syncer::ObjectIdSet&));
37 MOCK_METHOD1(UnregisterInvalidationHandler, 38 MOCK_METHOD1(UnregisterInvalidationHandler,
38 void(syncer::InvalidationHandler*)); 39 void(syncer::InvalidationHandler*));
40 MOCK_METHOD2(AcknowledgeInvalidation, void(const invalidation::ObjectId&,
41 const syncer::AckHandle&));
39 MOCK_CONST_METHOD0(GetInvalidatorState, syncer::InvalidatorState()); 42 MOCK_CONST_METHOD0(GetInvalidatorState, syncer::InvalidatorState());
40 43
41 private: 44 private:
42 DISALLOW_COPY_AND_ASSIGN(MockInvalidationFrontend); 45 DISALLOW_COPY_AND_ASSIGN(MockInvalidationFrontend);
43 }; 46 };
44 47
45 MockInvalidationFrontend::MockInvalidationFrontend() {} 48 MockInvalidationFrontend::MockInvalidationFrontend() {}
46 MockInvalidationFrontend::~MockInvalidationFrontend() {} 49 MockInvalidationFrontend::~MockInvalidationFrontend() {}
47 50
48 class MockInvalidationHandlerDelegate 51 class MockInvalidationHandlerDelegate
(...skipping 108 matching lines...) Expand 10 before | Expand all | Expand 10 after
157 ids.insert(invalidation::ObjectId( 160 ids.insert(invalidation::ObjectId(
158 kSourceId, 161 kSourceId,
159 "U/dddddddddddddddddddddddddddddddd/0")); 162 "U/dddddddddddddddddddddddddddddddd/0"));
160 ids.insert(invalidation::ObjectId( 163 ids.insert(invalidation::ObjectId(
161 kSourceId, 164 kSourceId,
162 "U/dddddddddddddddddddddddddddddddd/3")); 165 "U/dddddddddddddddddddddddddddddddd/3"));
163 EXPECT_CALL(delegate_, 166 EXPECT_CALL(delegate_,
164 OnMessage("dddddddddddddddddddddddddddddddd", 0, "payload")); 167 OnMessage("dddddddddddddddddddddddddddddddd", 0, "payload"));
165 EXPECT_CALL(delegate_, 168 EXPECT_CALL(delegate_,
166 OnMessage("dddddddddddddddddddddddddddddddd", 3, "payload")); 169 OnMessage("dddddddddddddddddddddddddddddddd", 3, "payload"));
170 for (syncer::ObjectIdSet::const_iterator it = ids.begin(); it != ids.end();
171 ++it) {
172 EXPECT_CALL(service_, AcknowledgeInvalidation(
173 *it, syncer::AckHandle::InvalidAckHandle()));
174 }
167 handler_->OnIncomingInvalidation(ObjectIdSetToInvalidationMap(ids, "payload"), 175 handler_->OnIncomingInvalidation(ObjectIdSetToInvalidationMap(ids, "payload"),
168 syncer::REMOTE_INVALIDATION); 176 syncer::REMOTE_INVALIDATION);
169 } 177 }
170 178
171 // Tests that malformed object IDs don't trigger spurious callbacks. 179 // Tests that malformed object IDs don't trigger spurious callbacks.
172 TEST_F(PushMessagingInvalidationHandlerTest, DispatchInvalidObjectIds) { 180 TEST_F(PushMessagingInvalidationHandlerTest, DispatchInvalidObjectIds) {
173 syncer::ObjectIdSet ids; 181 syncer::ObjectIdSet ids;
174 // Completely incorrect format. 182 // Completely incorrect format.
175 ids.insert(invalidation::ObjectId( 183 ids.insert(invalidation::ObjectId(
176 ipc::invalidation::ObjectSource::TEST, 184 ipc::invalidation::ObjectSource::TEST,
(...skipping 11 matching lines...) Expand all
188 kSourceId, 196 kSourceId,
189 "U/ddddddddddddddddddddddddddddddddd/3")); 197 "U/ddddddddddddddddddddddddddddddddd/3"));
190 // Non-numeric subchannel. 198 // Non-numeric subchannel.
191 ids.insert(invalidation::ObjectId( 199 ids.insert(invalidation::ObjectId(
192 kSourceId, 200 kSourceId,
193 "U/dddddddddddddddddddddddddddddddd/z")); 201 "U/dddddddddddddddddddddddddddddddd/z"));
194 // Subchannel out of range. 202 // Subchannel out of range.
195 ids.insert(invalidation::ObjectId( 203 ids.insert(invalidation::ObjectId(
196 kSourceId, 204 kSourceId,
197 "U/dddddddddddddddddddddddddddddddd/4")); 205 "U/dddddddddddddddddddddddddddddddd/4"));
206 // Invalid object IDs should still be acknowledged though.
207 for (syncer::ObjectIdSet::const_iterator it = ids.begin(); it != ids.end();
208 ++it) {
209 EXPECT_CALL(service_, AcknowledgeInvalidation(
210 *it, syncer::AckHandle::InvalidAckHandle()));
211 }
198 handler_->OnIncomingInvalidation(ObjectIdSetToInvalidationMap(ids, "payload"), 212 handler_->OnIncomingInvalidation(ObjectIdSetToInvalidationMap(ids, "payload"),
199 syncer::REMOTE_INVALIDATION); 213 syncer::REMOTE_INVALIDATION);
200 } 214 }
201 215
202 } // namespace extensions 216 } // namespace extensions
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698