Index: chrome/browser/extensions/api/push_messaging/push_messaging_invalidation_handler_unittest.cc |
diff --git a/chrome/browser/extensions/api/push_messaging/push_messaging_invalidation_handler_unittest.cc b/chrome/browser/extensions/api/push_messaging/push_messaging_invalidation_handler_unittest.cc |
index 2b0fac4299435478b99d684844f825b281812bdf..5c29b50a1f90e6bb5a2d17f3d3f8c8b8e5cacfe4 100644 |
--- a/chrome/browser/extensions/api/push_messaging/push_messaging_invalidation_handler_unittest.cc |
+++ b/chrome/browser/extensions/api/push_messaging/push_messaging_invalidation_handler_unittest.cc |
@@ -10,6 +10,7 @@ |
#include "chrome/browser/invalidation/invalidation_service.h" |
#include "google/cacheinvalidation/types.pb.h" |
#include "sync/internal_api/public/base/invalidation_test_util.h" |
+#include "sync/notifier/object_id_invalidation_map.h" |
#include "testing/gmock/include/gmock/gmock.h" |
#include "testing/gtest/include/gtest/gtest.h" |
@@ -17,6 +18,7 @@ using ::testing::_; |
using ::testing::NotNull; |
using ::testing::SaveArg; |
using ::testing::StrictMock; |
+using syncer::AckHandle; |
namespace extensions { |
@@ -104,67 +106,79 @@ TEST_F(PushMessagingInvalidationHandlerTest, RegisterUnregisterExtension) { |
} |
TEST_F(PushMessagingInvalidationHandlerTest, Dispatch) { |
- syncer::ObjectIdSet ids; |
- ids.insert(invalidation::ObjectId( |
- ipc::invalidation::ObjectSource::CHROME_PUSH_MESSAGING, |
- "U/dddddddddddddddddddddddddddddddd/0")); |
- ids.insert(invalidation::ObjectId( |
- ipc::invalidation::ObjectSource::CHROME_PUSH_MESSAGING, |
- "U/dddddddddddddddddddddddddddddddd/3")); |
+ syncer::ObjectIdInvalidationMap invalidation_map; |
+ // A normal invalidation. |
+ invalidation_map.Insert( |
+ syncer::Invalidation::Init( |
+ invalidation::ObjectId( |
+ ipc::invalidation::ObjectSource::CHROME_PUSH_MESSAGING, |
+ "U/dddddddddddddddddddddddddddddddd/0"), |
+ 10, |
+ "payload")); |
+ |
+ // An unknown version invalidation. |
+ invalidation_map.Insert(syncer::Invalidation::InitUnknownVersion( |
+ invalidation::ObjectId( |
+ ipc::invalidation::ObjectSource::CHROME_PUSH_MESSAGING, |
+ "U/dddddddddddddddddddddddddddddddd/3"))); |
+ |
EXPECT_CALL(delegate_, |
OnMessage("dddddddddddddddddddddddddddddddd", 0, "payload")); |
EXPECT_CALL(delegate_, |
- OnMessage("dddddddddddddddddddddddddddddddd", 3, "payload")); |
+ OnMessage("dddddddddddddddddddddddddddddddd", 3, "")); |
+ |
+ syncer::ObjectIdSet ids = invalidation_map.GetObjectIds(); |
for (syncer::ObjectIdSet::const_iterator it = ids.begin(); it != ids.end(); |
++it) { |
- EXPECT_CALL(service_, AcknowledgeInvalidation( |
- *it, syncer::AckHandle::InvalidAckHandle())); |
+ const syncer::Invalidation& inv = invalidation_map.ForObject(*it).back(); |
+ const syncer::AckHandle& ack_handle = inv.ack_handle(); |
+ EXPECT_CALL(service_, AcknowledgeInvalidation(*it, ack_handle)); |
} |
- handler_->OnIncomingInvalidation( |
- ObjectIdSetToInvalidationMap( |
- ids, |
- syncer::Invalidation::kUnknownVersion, |
- "payload")); |
+ handler_->OnIncomingInvalidation(invalidation_map); |
} |
// Tests that malformed object IDs don't trigger spurious callbacks. |
TEST_F(PushMessagingInvalidationHandlerTest, DispatchInvalidObjectIds) { |
- syncer::ObjectIdSet ids; |
+ syncer::ObjectIdInvalidationMap invalidation_map; |
// Completely incorrect format. |
- ids.insert(invalidation::ObjectId( |
- ipc::invalidation::ObjectSource::TEST, |
- "Invalid")); |
+ invalidation_map.Insert(syncer::Invalidation::InitUnknownVersion( |
+ invalidation::ObjectId( |
+ ipc::invalidation::ObjectSource::TEST, |
+ "Invalid"))); |
// Incorrect source. |
- ids.insert(invalidation::ObjectId( |
- ipc::invalidation::ObjectSource::TEST, |
- "U/dddddddddddddddddddddddddddddddd/3")); |
+ invalidation_map.Insert(syncer::Invalidation::InitUnknownVersion( |
+ invalidation::ObjectId( |
+ ipc::invalidation::ObjectSource::TEST, |
+ "U/dddddddddddddddddddddddddddddddd/3"))); |
// Incorrect format type. |
- ids.insert(invalidation::ObjectId( |
- ipc::invalidation::ObjectSource::CHROME_PUSH_MESSAGING, |
- "V/dddddddddddddddddddddddddddddddd/3")); |
+ invalidation_map.Insert(syncer::Invalidation::InitUnknownVersion( |
+ invalidation::ObjectId( |
+ ipc::invalidation::ObjectSource::CHROME_PUSH_MESSAGING, |
+ "V/dddddddddddddddddddddddddddddddd/3"))); |
// Invalid extension ID length. |
- ids.insert(invalidation::ObjectId( |
- ipc::invalidation::ObjectSource::CHROME_PUSH_MESSAGING, |
- "U/ddddddddddddddddddddddddddddddddd/3")); |
+ invalidation_map.Insert(syncer::Invalidation::InitUnknownVersion( |
+ invalidation::ObjectId( |
+ ipc::invalidation::ObjectSource::CHROME_PUSH_MESSAGING, |
+ "U/ddddddddddddddddddddddddddddddddd/3"))); |
// Non-numeric subchannel. |
- ids.insert(invalidation::ObjectId( |
- ipc::invalidation::ObjectSource::CHROME_PUSH_MESSAGING, |
- "U/dddddddddddddddddddddddddddddddd/z")); |
+ invalidation_map.Insert(syncer::Invalidation::InitUnknownVersion( |
+ invalidation::ObjectId( |
+ ipc::invalidation::ObjectSource::CHROME_PUSH_MESSAGING, |
+ "U/dddddddddddddddddddddddddddddddd/z"))); |
// Subchannel out of range. |
- ids.insert(invalidation::ObjectId( |
- ipc::invalidation::ObjectSource::CHROME_PUSH_MESSAGING, |
- "U/dddddddddddddddddddddddddddddddd/4")); |
+ invalidation_map.Insert(syncer::Invalidation::InitUnknownVersion( |
+ invalidation::ObjectId( |
+ ipc::invalidation::ObjectSource::CHROME_PUSH_MESSAGING, |
+ "U/dddddddddddddddddddddddddddddddd/4"))); |
// Invalid object IDs should still be acknowledged. |
+ syncer::ObjectIdSet ids = invalidation_map.GetObjectIds(); |
for (syncer::ObjectIdSet::const_iterator it = ids.begin(); it != ids.end(); |
++it) { |
- EXPECT_CALL(service_, AcknowledgeInvalidation( |
- *it, syncer::AckHandle::InvalidAckHandle())); |
+ const syncer::Invalidation& inv = invalidation_map.ForObject(*it).back(); |
+ const syncer::AckHandle& ack_handle = inv.ack_handle(); |
+ EXPECT_CALL(service_, AcknowledgeInvalidation(*it, ack_handle)); |
} |
- handler_->OnIncomingInvalidation( |
- ObjectIdSetToInvalidationMap( |
- ids, |
- syncer::Invalidation::kUnknownVersion, |
- "payload")); |
+ handler_->OnIncomingInvalidation(invalidation_map); |
} |
} // namespace extensions |