| 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/sync/invalidation_frontend.h" | 10 #include "chrome/browser/sync/invalidation_frontend.h" |
| (...skipping 18 matching lines...) Expand all Loading... |
| 29 class MockInvalidationFrontend : public InvalidationFrontend { | 29 class MockInvalidationFrontend : public InvalidationFrontend { |
| 30 public: | 30 public: |
| 31 MockInvalidationFrontend(); | 31 MockInvalidationFrontend(); |
| 32 ~MockInvalidationFrontend(); | 32 ~MockInvalidationFrontend(); |
| 33 MOCK_METHOD1(RegisterInvalidationHandler, | 33 MOCK_METHOD1(RegisterInvalidationHandler, |
| 34 void(syncer::InvalidationHandler*)); | 34 void(syncer::InvalidationHandler*)); |
| 35 MOCK_METHOD2(UpdateRegisteredInvalidationIds, | 35 MOCK_METHOD2(UpdateRegisteredInvalidationIds, |
| 36 void(syncer::InvalidationHandler*, const syncer::ObjectIdSet&)); | 36 void(syncer::InvalidationHandler*, const syncer::ObjectIdSet&)); |
| 37 MOCK_METHOD1(UnregisterInvalidationHandler, | 37 MOCK_METHOD1(UnregisterInvalidationHandler, |
| 38 void(syncer::InvalidationHandler*)); | 38 void(syncer::InvalidationHandler*)); |
| 39 MOCK_CONST_METHOD0(GetInvalidatorState, syncer::InvalidatorState()); |
| 39 | 40 |
| 40 private: | 41 private: |
| 41 DISALLOW_COPY_AND_ASSIGN(MockInvalidationFrontend); | 42 DISALLOW_COPY_AND_ASSIGN(MockInvalidationFrontend); |
| 42 }; | 43 }; |
| 43 | 44 |
| 44 MockInvalidationFrontend::MockInvalidationFrontend() {} | 45 MockInvalidationFrontend::MockInvalidationFrontend() {} |
| 45 MockInvalidationFrontend::~MockInvalidationFrontend() {} | 46 MockInvalidationFrontend::~MockInvalidationFrontend() {} |
| 46 | 47 |
| 47 class MockInvalidationHandlerDelegate | 48 class MockInvalidationHandlerDelegate |
| 48 : public PushMessagingInvalidationHandlerDelegate { | 49 : public PushMessagingInvalidationHandlerDelegate { |
| (...skipping 107 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 156 ids.insert(invalidation::ObjectId( | 157 ids.insert(invalidation::ObjectId( |
| 157 kSourceId, | 158 kSourceId, |
| 158 "U/dddddddddddddddddddddddddddddddd/0")); | 159 "U/dddddddddddddddddddddddddddddddd/0")); |
| 159 ids.insert(invalidation::ObjectId( | 160 ids.insert(invalidation::ObjectId( |
| 160 kSourceId, | 161 kSourceId, |
| 161 "U/dddddddddddddddddddddddddddddddd/3")); | 162 "U/dddddddddddddddddddddddddddddddd/3")); |
| 162 EXPECT_CALL(delegate_, | 163 EXPECT_CALL(delegate_, |
| 163 OnMessage("dddddddddddddddddddddddddddddddd", 0, "payload")); | 164 OnMessage("dddddddddddddddddddddddddddddddd", 0, "payload")); |
| 164 EXPECT_CALL(delegate_, | 165 EXPECT_CALL(delegate_, |
| 165 OnMessage("dddddddddddddddddddddddddddddddd", 3, "payload")); | 166 OnMessage("dddddddddddddddddddddddddddddddd", 3, "payload")); |
| 166 handler_->OnIncomingNotification(ObjectIdSetToStateMap(ids, "payload"), | 167 handler_->OnIncomingInvalidation(ObjectIdSetToStateMap(ids, "payload"), |
| 167 syncer::REMOTE_NOTIFICATION); | 168 syncer::REMOTE_INVALIDATION); |
| 168 } | 169 } |
| 169 | 170 |
| 170 // Tests that malformed object IDs don't trigger spurious callbacks. | 171 // Tests that malformed object IDs don't trigger spurious callbacks. |
| 171 TEST_F(PushMessagingInvalidationHandlerTest, DispatchInvalidObjectIds) { | 172 TEST_F(PushMessagingInvalidationHandlerTest, DispatchInvalidObjectIds) { |
| 172 syncer::ObjectIdSet ids; | 173 syncer::ObjectIdSet ids; |
| 173 // Completely incorrect format. | 174 // Completely incorrect format. |
| 174 ids.insert(invalidation::ObjectId( | 175 ids.insert(invalidation::ObjectId( |
| 175 ipc::invalidation::ObjectSource::TEST, | 176 ipc::invalidation::ObjectSource::TEST, |
| 176 "Invalid")); | 177 "Invalid")); |
| 177 // Incorrect source. | 178 // Incorrect source. |
| 178 ids.insert(invalidation::ObjectId( | 179 ids.insert(invalidation::ObjectId( |
| 179 ipc::invalidation::ObjectSource::TEST, | 180 ipc::invalidation::ObjectSource::TEST, |
| 180 "U/dddddddddddddddddddddddddddddddd/3")); | 181 "U/dddddddddddddddddddddddddddddddd/3")); |
| 181 // Incorrect format type. | 182 // Incorrect format type. |
| 182 ids.insert(invalidation::ObjectId( | 183 ids.insert(invalidation::ObjectId( |
| 183 kSourceId, | 184 kSourceId, |
| 184 "V/dddddddddddddddddddddddddddddddd/3")); | 185 "V/dddddddddddddddddddddddddddddddd/3")); |
| 185 // Invalid extension ID length. | 186 // Invalid extension ID length. |
| 186 ids.insert(invalidation::ObjectId( | 187 ids.insert(invalidation::ObjectId( |
| 187 kSourceId, | 188 kSourceId, |
| 188 "U/ddddddddddddddddddddddddddddddddd/3")); | 189 "U/ddddddddddddddddddddddddddddddddd/3")); |
| 189 // Non-numeric subchannel. | 190 // Non-numeric subchannel. |
| 190 ids.insert(invalidation::ObjectId( | 191 ids.insert(invalidation::ObjectId( |
| 191 kSourceId, | 192 kSourceId, |
| 192 "U/dddddddddddddddddddddddddddddddd/z")); | 193 "U/dddddddddddddddddddddddddddddddd/z")); |
| 193 // Subchannel out of range. | 194 // Subchannel out of range. |
| 194 ids.insert(invalidation::ObjectId( | 195 ids.insert(invalidation::ObjectId( |
| 195 kSourceId, | 196 kSourceId, |
| 196 "U/dddddddddddddddddddddddddddddddd/4")); | 197 "U/dddddddddddddddddddddddddddddddd/4")); |
| 197 handler_->OnIncomingNotification(ObjectIdSetToStateMap(ids, "payload"), | 198 handler_->OnIncomingInvalidation(ObjectIdSetToStateMap(ids, "payload"), |
| 198 syncer::REMOTE_NOTIFICATION); | 199 syncer::REMOTE_INVALIDATION); |
| 199 } | 200 } |
| 200 | 201 |
| 201 } // namespace extensions | 202 } // namespace extensions |
| OLD | NEW |