diff options
Diffstat (limited to 'google_apis/gcm/engine/gcm_store_impl_unittest.cc')
-rw-r--r-- | google_apis/gcm/engine/gcm_store_impl_unittest.cc | 51 |
1 files changed, 51 insertions, 0 deletions
diff --git a/google_apis/gcm/engine/gcm_store_impl_unittest.cc b/google_apis/gcm/engine/gcm_store_impl_unittest.cc index 1a6c4bb..b7bf75d 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 |