Index: google_apis/gcm/engine/gcm_store_impl_unittest.cc |
diff --git a/google_apis/gcm/engine/gcm_store_impl_unittest.cc b/google_apis/gcm/engine/gcm_store_impl_unittest.cc |
index 1a6c4bb996af57d9c9040106f73bb363cc8256dd..b7bf75d685db0ff4ea313775fd80ec461c2de8d8 100644 |
--- a/google_apis/gcm/engine/gcm_store_impl_unittest.cc |
+++ b/google_apis/gcm/engine/gcm_store_impl_unittest.cc |
@@ -33,6 +33,7 @@ const int kNumMessagesPerApp = 20; |
// App name for testing. |
const char kAppName[] = "my_app"; |
+const char kAppName2[] = "my_app_2"; |
// Category name for testing. |
const char kCategoryName[] = "my_category"; |
@@ -741,6 +742,56 @@ TEST_F(GCMStoreImplTest, LastTokenFetchTime) { |
EXPECT_EQ(base::Time(), load_result->last_token_fetch_time); |
} |
+TEST_F(GCMStoreImplTest, InstanceIDData) { |
+ scoped_ptr<GCMStore> gcm_store(BuildGCMStore()); |
+ scoped_ptr<GCMStore::LoadResult> load_result; |
+ gcm_store->Load(base::Bind( |
+ &GCMStoreImplTest::LoadCallback, base::Unretained(this), &load_result)); |
+ PumpLoop(); |
+ |
+ std::string instance_id_data("Foo"); |
+ gcm_store->AddInstanceIDData( |
+ kAppName, |
+ instance_id_data, |
+ base::Bind(&GCMStoreImplTest::UpdateCallback, base::Unretained(this))); |
+ PumpLoop(); |
+ |
+ std::string instance_id_data2("Hello Instance ID"); |
+ gcm_store->AddInstanceIDData( |
+ kAppName2, |
+ instance_id_data2, |
+ base::Bind(&GCMStoreImplTest::UpdateCallback, base::Unretained(this))); |
+ PumpLoop(); |
+ |
+ gcm_store = BuildGCMStore().Pass(); |
+ gcm_store->Load(base::Bind( |
+ &GCMStoreImplTest::LoadCallback, base::Unretained(this), &load_result)); |
+ PumpLoop(); |
+ |
+ ASSERT_EQ(2u, load_result->instance_id_data.size()); |
+ ASSERT_TRUE(load_result->instance_id_data.find(kAppName) != |
+ load_result->instance_id_data.end()); |
+ ASSERT_TRUE(load_result->instance_id_data.find(kAppName2) != |
+ load_result->instance_id_data.end()); |
+ EXPECT_EQ(instance_id_data, load_result->instance_id_data[kAppName]); |
+ EXPECT_EQ(instance_id_data2, load_result->instance_id_data[kAppName2]); |
+ |
+ gcm_store->RemoveInstanceIDData( |
+ kAppName, |
+ base::Bind(&GCMStoreImplTest::UpdateCallback, base::Unretained(this))); |
+ PumpLoop(); |
+ |
+ gcm_store = BuildGCMStore().Pass(); |
+ gcm_store->Load(base::Bind( |
+ &GCMStoreImplTest::LoadCallback, base::Unretained(this), &load_result)); |
+ PumpLoop(); |
+ |
+ ASSERT_EQ(1u, load_result->instance_id_data.size()); |
+ ASSERT_TRUE(load_result->instance_id_data.find(kAppName2) != |
+ load_result->instance_id_data.end()); |
+ EXPECT_EQ(instance_id_data2, load_result->instance_id_data[kAppName2]); |
+} |
+ |
} // namespace |
} // namespace gcm |