diff options
Diffstat (limited to 'google_apis')
-rw-r--r-- | google_apis/gcm/engine/gcm_store_impl.cc | 3 | ||||
-rw-r--r-- | google_apis/gcm/engine/gcm_store_impl_unittest.cc | 19 |
2 files changed, 21 insertions, 1 deletions
diff --git a/google_apis/gcm/engine/gcm_store_impl.cc b/google_apis/gcm/engine/gcm_store_impl.cc index 3088ab3..f1f46ee 100644 --- a/google_apis/gcm/engine/gcm_store_impl.cc +++ b/google_apis/gcm/engine/gcm_store_impl.cc @@ -358,7 +358,8 @@ void GCMStoreImpl::Backend::RemoveRegistration(const std::string& app_id, leveldb::WriteOptions write_options; write_options.sync = true; - leveldb::Status status = db_->Delete(write_options, MakeSlice(app_id)); + leveldb::Status status = + db_->Delete(write_options, MakeSlice(MakeRegistrationKey(app_id))); if (status.ok()) { foreground_task_runner_->PostTask(FROM_HERE, base::Bind(callback, true)); return; diff --git a/google_apis/gcm/engine/gcm_store_impl_unittest.cc b/google_apis/gcm/engine/gcm_store_impl_unittest.cc index de22946..bbe408f 100644 --- a/google_apis/gcm/engine/gcm_store_impl_unittest.cc +++ b/google_apis/gcm/engine/gcm_store_impl_unittest.cc @@ -260,6 +260,25 @@ TEST_F(GCMStoreImplTest, Registrations) { load_result->registrations["app2"]->sender_ids[0]); EXPECT_EQ(registration2->sender_ids[1], load_result->registrations["app2"]->sender_ids[1]); + + gcm_store->RemoveRegistration( + "app2", + 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->registrations.size()); + ASSERT_TRUE(load_result->registrations.find("app1") != + load_result->registrations.end()); + EXPECT_EQ(registration1->registration_id, + load_result->registrations["app1"]->registration_id); + ASSERT_EQ(1u, load_result->registrations["app1"]->sender_ids.size()); + EXPECT_EQ(registration1->sender_ids[0], + load_result->registrations["app1"]->sender_ids[0]); } // Verify saving some incoming messages, reopening the directory, and then |