| 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 2fe64b429884d10021c03a35eafa246bb8694f6b..4d9cef43af4d7ef5a45b8a1fb943230c288fbaa5 100644
|
| --- a/google_apis/gcm/engine/gcm_store_impl_unittest.cc
|
| +++ b/google_apis/gcm/engine/gcm_store_impl_unittest.cc
|
| @@ -47,6 +47,8 @@ class GCMStoreImplTest : public testing::Test {
|
| ~GCMStoreImplTest() override;
|
|
|
| scoped_ptr<GCMStoreImpl> BuildGCMStore();
|
| + void LoadGCMStore(
|
| + GCMStoreImpl* gcm_store, scoped_ptr<GCMStore::LoadResult>* result_dst);
|
|
|
| std::string GetNextPersistentId();
|
|
|
| @@ -54,6 +56,8 @@ class GCMStoreImplTest : public testing::Test {
|
|
|
| void LoadCallback(scoped_ptr<GCMStore::LoadResult>* result_dst,
|
| scoped_ptr<GCMStore::LoadResult> result);
|
| + void LoadWithoutCheckCallback(scoped_ptr<GCMStore::LoadResult>* result_dst,
|
| + scoped_ptr<GCMStore::LoadResult> result);
|
| void UpdateCallback(bool success);
|
|
|
| protected:
|
| @@ -75,11 +79,24 @@ GCMStoreImplTest::~GCMStoreImplTest() {}
|
|
|
| scoped_ptr<GCMStoreImpl> GCMStoreImplTest::BuildGCMStore() {
|
| return scoped_ptr<GCMStoreImpl>(new GCMStoreImpl(
|
| - temp_directory_.path(),
|
| + // Pass an non-existent directory as store path to match the exact
|
| + // behavior in the production code. Currently GCMStoreImpl checks if
|
| + // the directory exist or not to determine the store existence.
|
| + temp_directory_.path().Append(FILE_PATH_LITERAL("GCM Store")),
|
| message_loop_.message_loop_proxy(),
|
| make_scoped_ptr<Encryptor>(new FakeEncryptor)));
|
| }
|
|
|
| +void GCMStoreImplTest::LoadGCMStore(
|
| + GCMStoreImpl* gcm_store, scoped_ptr<GCMStore::LoadResult>* result_dst) {
|
| + gcm_store->Load(
|
| + GCMStore::CREATE_NEW_STORE_IF_NOT_EXISTS,
|
| + base::Bind(&GCMStoreImplTest::LoadCallback,
|
| + base::Unretained(this),
|
| + result_dst));
|
| + PumpLoop();
|
| +}
|
| +
|
| std::string GCMStoreImplTest::GetNextPersistentId() {
|
| return base::Uint64ToString(next_persistent_id_++);
|
| }
|
| @@ -90,6 +107,12 @@ void GCMStoreImplTest::LoadCallback(
|
| scoped_ptr<GCMStore::LoadResult>* result_dst,
|
| scoped_ptr<GCMStore::LoadResult> result) {
|
| ASSERT_TRUE(result->success);
|
| + LoadWithoutCheckCallback(result_dst, result.Pass());
|
| +}
|
| +
|
| +void GCMStoreImplTest::LoadWithoutCheckCallback(
|
| + scoped_ptr<GCMStore::LoadResult>* result_dst,
|
| + scoped_ptr<GCMStore::LoadResult> result) {
|
| *result_dst = result.Pass();
|
| run_loop_->Quit();
|
| run_loop_.reset(new base::RunLoop());
|
| @@ -101,11 +124,9 @@ void GCMStoreImplTest::UpdateCallback(bool success) {
|
|
|
| // Verify creating a new database and loading it.
|
| TEST_F(GCMStoreImplTest, LoadNew) {
|
| - scoped_ptr<GCMStore> gcm_store(BuildGCMStore());
|
| + scoped_ptr<GCMStoreImpl> gcm_store(BuildGCMStore());
|
| scoped_ptr<GCMStore::LoadResult> load_result;
|
| - gcm_store->Load(base::Bind(
|
| - &GCMStoreImplTest::LoadCallback, base::Unretained(this), &load_result));
|
| - PumpLoop();
|
| + LoadGCMStore(gcm_store.get(), &load_result);
|
|
|
| EXPECT_EQ(0U, load_result->device_android_id);
|
| EXPECT_EQ(0U, load_result->device_security_token);
|
| @@ -115,13 +136,26 @@ TEST_F(GCMStoreImplTest, LoadNew) {
|
| EXPECT_EQ(base::Time::FromInternalValue(0LL), load_result->last_checkin_time);
|
| }
|
|
|
| -TEST_F(GCMStoreImplTest, DeviceCredentials) {
|
| - scoped_ptr<GCMStore> gcm_store(BuildGCMStore());
|
| +// Verify new database is not created when DO_NOT_CREATE_NEW_STORE is passed.
|
| +TEST_F(GCMStoreImplTest, LoadWithoutCreatingNewStore) {
|
| + scoped_ptr<GCMStoreImpl> gcm_store(BuildGCMStore());
|
| scoped_ptr<GCMStore::LoadResult> load_result;
|
| - gcm_store->Load(base::Bind(
|
| - &GCMStoreImplTest::LoadCallback, base::Unretained(this), &load_result));
|
| + gcm_store->Load(
|
| + GCMStore::DO_NOT_CREATE_NEW_STORE,
|
| + base::Bind(&GCMStoreImplTest::LoadWithoutCheckCallback,
|
| + base::Unretained(this),
|
| + &load_result));
|
| PumpLoop();
|
|
|
| + EXPECT_FALSE(load_result->success);
|
| + EXPECT_TRUE(load_result->store_does_not_exist);
|
| +}
|
| +
|
| +TEST_F(GCMStoreImplTest, DeviceCredentials) {
|
| + scoped_ptr<GCMStoreImpl> gcm_store(BuildGCMStore());
|
| + scoped_ptr<GCMStore::LoadResult> load_result;
|
| + LoadGCMStore(gcm_store.get(), &load_result);
|
| +
|
| gcm_store->SetDeviceCredentials(
|
| kDeviceId,
|
| kDeviceToken,
|
| @@ -129,9 +163,7 @@ TEST_F(GCMStoreImplTest, DeviceCredentials) {
|
| PumpLoop();
|
|
|
| gcm_store = BuildGCMStore().Pass();
|
| - gcm_store->Load(base::Bind(
|
| - &GCMStoreImplTest::LoadCallback, base::Unretained(this), &load_result));
|
| - PumpLoop();
|
| + LoadGCMStore(gcm_store.get(), &load_result);
|
|
|
| ASSERT_EQ(kDeviceId, load_result->device_android_id);
|
| ASSERT_EQ(kDeviceToken, load_result->device_security_token);
|
| @@ -140,9 +172,7 @@ TEST_F(GCMStoreImplTest, DeviceCredentials) {
|
| TEST_F(GCMStoreImplTest, LastCheckinInfo) {
|
| scoped_ptr<GCMStoreImpl> gcm_store(BuildGCMStore());
|
| scoped_ptr<GCMStore::LoadResult> load_result;
|
| - gcm_store->Load(base::Bind(
|
| - &GCMStoreImplTest::LoadCallback, base::Unretained(this), &load_result));
|
| - PumpLoop();
|
| + LoadGCMStore(gcm_store.get(), &load_result);
|
|
|
| base::Time last_checkin_time = base::Time::Now();
|
| std::set<std::string> accounts;
|
| @@ -156,9 +186,7 @@ TEST_F(GCMStoreImplTest, LastCheckinInfo) {
|
| PumpLoop();
|
|
|
| gcm_store = BuildGCMStore().Pass();
|
| - gcm_store->Load(base::Bind(
|
| - &GCMStoreImplTest::LoadCallback, base::Unretained(this), &load_result));
|
| - PumpLoop();
|
| + LoadGCMStore(gcm_store.get(), &load_result);
|
| ASSERT_EQ(last_checkin_time, load_result->last_checkin_time);
|
| ASSERT_EQ(accounts, load_result->last_checkin_accounts);
|
|
|
| @@ -170,18 +198,14 @@ TEST_F(GCMStoreImplTest, LastCheckinInfo) {
|
| PumpLoop();
|
|
|
| gcm_store = BuildGCMStore().Pass();
|
| - gcm_store->Load(base::Bind(
|
| - &GCMStoreImplTest::LoadCallback, base::Unretained(this), &load_result));
|
| - PumpLoop();
|
| + LoadGCMStore(gcm_store.get(), &load_result);
|
| EXPECT_EQ(base::Time(), load_result->last_checkin_time);
|
| }
|
|
|
| TEST_F(GCMStoreImplTest, GServicesSettings_ProtocolV2) {
|
| - scoped_ptr<GCMStore> gcm_store(BuildGCMStore());
|
| + scoped_ptr<GCMStoreImpl> gcm_store(BuildGCMStore());
|
| scoped_ptr<GCMStore::LoadResult> load_result;
|
| - gcm_store->Load(base::Bind(
|
| - &GCMStoreImplTest::LoadCallback, base::Unretained(this), &load_result));
|
| - PumpLoop();
|
| + LoadGCMStore(gcm_store.get(), &load_result);
|
|
|
| std::map<std::string, std::string> settings;
|
| settings["checkin_interval"] = "12345";
|
| @@ -196,9 +220,7 @@ TEST_F(GCMStoreImplTest, GServicesSettings_ProtocolV2) {
|
| PumpLoop();
|
|
|
| gcm_store = BuildGCMStore().Pass();
|
| - gcm_store->Load(base::Bind(
|
| - &GCMStoreImplTest::LoadCallback, base::Unretained(this), &load_result));
|
| - PumpLoop();
|
| + LoadGCMStore(gcm_store.get(), &load_result);
|
|
|
| ASSERT_EQ(settings, load_result->gservices_settings);
|
| ASSERT_EQ(digest, load_result->gservices_digest);
|
| @@ -216,20 +238,16 @@ TEST_F(GCMStoreImplTest, GServicesSettings_ProtocolV2) {
|
| PumpLoop();
|
|
|
| gcm_store = BuildGCMStore().Pass();
|
| - gcm_store->Load(base::Bind(
|
| - &GCMStoreImplTest::LoadCallback, base::Unretained(this), &load_result));
|
| - PumpLoop();
|
| + LoadGCMStore(gcm_store.get(), &load_result);
|
|
|
| ASSERT_EQ(settings, load_result->gservices_settings);
|
| ASSERT_EQ(digest, load_result->gservices_digest);
|
| }
|
|
|
| TEST_F(GCMStoreImplTest, Registrations) {
|
| - scoped_ptr<GCMStore> gcm_store(BuildGCMStore());
|
| + scoped_ptr<GCMStoreImpl> gcm_store(BuildGCMStore());
|
| scoped_ptr<GCMStore::LoadResult> load_result;
|
| - gcm_store->Load(base::Bind(
|
| - &GCMStoreImplTest::LoadCallback, base::Unretained(this), &load_result));
|
| - PumpLoop();
|
| + LoadGCMStore(gcm_store.get(), &load_result);
|
|
|
| // Add one registration with one sender.
|
| std::string registration = "sender1=registration1";
|
| @@ -248,9 +266,7 @@ TEST_F(GCMStoreImplTest, Registrations) {
|
| PumpLoop();
|
|
|
| gcm_store = BuildGCMStore().Pass();
|
| - gcm_store->Load(base::Bind(
|
| - &GCMStoreImplTest::LoadCallback, base::Unretained(this), &load_result));
|
| - PumpLoop();
|
| + LoadGCMStore(gcm_store.get(), &load_result);
|
|
|
| ASSERT_EQ(2u, load_result->registrations.size());
|
| ASSERT_TRUE(load_result->registrations.find(kAppName) !=
|
| @@ -266,9 +282,7 @@ TEST_F(GCMStoreImplTest, Registrations) {
|
| PumpLoop();
|
|
|
| gcm_store = BuildGCMStore().Pass();
|
| - gcm_store->Load(base::Bind(
|
| - &GCMStoreImplTest::LoadCallback, base::Unretained(this), &load_result));
|
| - PumpLoop();
|
| + LoadGCMStore(gcm_store.get(), &load_result);
|
|
|
| ASSERT_EQ(1u, load_result->registrations.size());
|
| ASSERT_TRUE(load_result->registrations.find(kAppName) !=
|
| @@ -279,11 +293,9 @@ TEST_F(GCMStoreImplTest, Registrations) {
|
| // Verify saving some incoming messages, reopening the directory, and then
|
| // removing those incoming messages.
|
| TEST_F(GCMStoreImplTest, IncomingMessages) {
|
| - scoped_ptr<GCMStore> gcm_store(BuildGCMStore());
|
| + scoped_ptr<GCMStoreImpl> gcm_store(BuildGCMStore());
|
| scoped_ptr<GCMStore::LoadResult> load_result;
|
| - gcm_store->Load(base::Bind(
|
| - &GCMStoreImplTest::LoadCallback, base::Unretained(this), &load_result));
|
| - PumpLoop();
|
| + LoadGCMStore(gcm_store.get(), &load_result);
|
|
|
| std::vector<std::string> persistent_ids;
|
| for (int i = 0; i < kNumPersistentIds; ++i) {
|
| @@ -295,9 +307,7 @@ TEST_F(GCMStoreImplTest, IncomingMessages) {
|
| }
|
|
|
| gcm_store = BuildGCMStore().Pass();
|
| - gcm_store->Load(base::Bind(
|
| - &GCMStoreImplTest::LoadCallback, base::Unretained(this), &load_result));
|
| - PumpLoop();
|
| + LoadGCMStore(gcm_store.get(), &load_result);
|
|
|
| ASSERT_EQ(persistent_ids, load_result->incoming_messages);
|
| ASSERT_TRUE(load_result->outgoing_messages.empty());
|
| @@ -309,9 +319,7 @@ TEST_F(GCMStoreImplTest, IncomingMessages) {
|
|
|
| gcm_store = BuildGCMStore().Pass();
|
| load_result->incoming_messages.clear();
|
| - gcm_store->Load(base::Bind(
|
| - &GCMStoreImplTest::LoadCallback, base::Unretained(this), &load_result));
|
| - PumpLoop();
|
| + LoadGCMStore(gcm_store.get(), &load_result);
|
|
|
| ASSERT_TRUE(load_result->incoming_messages.empty());
|
| ASSERT_TRUE(load_result->outgoing_messages.empty());
|
| @@ -320,11 +328,9 @@ TEST_F(GCMStoreImplTest, IncomingMessages) {
|
| // Verify saving some outgoing messages, reopening the directory, and then
|
| // removing those outgoing messages.
|
| TEST_F(GCMStoreImplTest, OutgoingMessages) {
|
| - scoped_ptr<GCMStore> gcm_store(BuildGCMStore());
|
| + scoped_ptr<GCMStoreImpl> gcm_store(BuildGCMStore());
|
| scoped_ptr<GCMStore::LoadResult> load_result;
|
| - gcm_store->Load(base::Bind(
|
| - &GCMStoreImplTest::LoadCallback, base::Unretained(this), &load_result));
|
| - PumpLoop();
|
| + LoadGCMStore(gcm_store.get(), &load_result);
|
|
|
| std::vector<std::string> persistent_ids;
|
| const int kNumPersistentIds = 10;
|
| @@ -341,9 +347,7 @@ TEST_F(GCMStoreImplTest, OutgoingMessages) {
|
| }
|
|
|
| gcm_store = BuildGCMStore().Pass();
|
| - gcm_store->Load(base::Bind(
|
| - &GCMStoreImplTest::LoadCallback, base::Unretained(this), &load_result));
|
| - PumpLoop();
|
| + LoadGCMStore(gcm_store.get(), &load_result);
|
|
|
| ASSERT_TRUE(load_result->incoming_messages.empty());
|
| ASSERT_EQ(load_result->outgoing_messages.size(), persistent_ids.size());
|
| @@ -364,9 +368,7 @@ TEST_F(GCMStoreImplTest, OutgoingMessages) {
|
|
|
| gcm_store = BuildGCMStore().Pass();
|
| load_result->outgoing_messages.clear();
|
| - gcm_store->Load(base::Bind(
|
| - &GCMStoreImplTest::LoadCallback, base::Unretained(this), &load_result));
|
| - PumpLoop();
|
| + LoadGCMStore(gcm_store.get(), &load_result);
|
|
|
| ASSERT_TRUE(load_result->incoming_messages.empty());
|
| ASSERT_TRUE(load_result->outgoing_messages.empty());
|
| @@ -374,11 +376,9 @@ TEST_F(GCMStoreImplTest, OutgoingMessages) {
|
|
|
| // Verify incoming and outgoing messages don't conflict.
|
| TEST_F(GCMStoreImplTest, IncomingAndOutgoingMessages) {
|
| - scoped_ptr<GCMStore> gcm_store(BuildGCMStore());
|
| + scoped_ptr<GCMStoreImpl> gcm_store(BuildGCMStore());
|
| scoped_ptr<GCMStore::LoadResult> load_result;
|
| - gcm_store->Load(base::Bind(
|
| - &GCMStoreImplTest::LoadCallback, base::Unretained(this), &load_result));
|
| - PumpLoop();
|
| + LoadGCMStore(gcm_store.get(), &load_result);
|
|
|
| std::vector<std::string> persistent_ids;
|
| const int kNumPersistentIds = 10;
|
| @@ -400,9 +400,7 @@ TEST_F(GCMStoreImplTest, IncomingAndOutgoingMessages) {
|
| }
|
|
|
| gcm_store = BuildGCMStore().Pass();
|
| - gcm_store->Load(base::Bind(
|
| - &GCMStoreImplTest::LoadCallback, base::Unretained(this), &load_result));
|
| - PumpLoop();
|
| + LoadGCMStore(gcm_store.get(), &load_result);
|
|
|
| ASSERT_EQ(persistent_ids, load_result->incoming_messages);
|
| ASSERT_EQ(load_result->outgoing_messages.size(), persistent_ids.size());
|
| @@ -428,9 +426,7 @@ TEST_F(GCMStoreImplTest, IncomingAndOutgoingMessages) {
|
| gcm_store = BuildGCMStore().Pass();
|
| load_result->incoming_messages.clear();
|
| load_result->outgoing_messages.clear();
|
| - gcm_store->Load(base::Bind(
|
| - &GCMStoreImplTest::LoadCallback, base::Unretained(this), &load_result));
|
| - PumpLoop();
|
| + LoadGCMStore(gcm_store.get(), &load_result);
|
|
|
| ASSERT_TRUE(load_result->incoming_messages.empty());
|
| ASSERT_TRUE(load_result->outgoing_messages.empty());
|
| @@ -439,11 +435,9 @@ TEST_F(GCMStoreImplTest, IncomingAndOutgoingMessages) {
|
| // Test that per-app message limits are enforced, persisted across restarts,
|
| // and updated as messages are removed.
|
| TEST_F(GCMStoreImplTest, PerAppMessageLimits) {
|
| - scoped_ptr<GCMStore> gcm_store(BuildGCMStore());
|
| + scoped_ptr<GCMStoreImpl> gcm_store(BuildGCMStore());
|
| scoped_ptr<GCMStore::LoadResult> load_result;
|
| - gcm_store->Load(base::Bind(&GCMStoreImplTest::LoadCallback,
|
| - base::Unretained(this),
|
| - &load_result));
|
| + LoadGCMStore(gcm_store.get(), &load_result);
|
|
|
| // Add the initial (below app limit) messages.
|
| for (int i = 0; i < kNumMessagesPerApp; ++i) {
|
| @@ -473,10 +467,7 @@ TEST_F(GCMStoreImplTest, PerAppMessageLimits) {
|
|
|
| // Tear down and restore the database.
|
| gcm_store = BuildGCMStore().Pass();
|
| - gcm_store->Load(base::Bind(&GCMStoreImplTest::LoadCallback,
|
| - base::Unretained(this),
|
| - &load_result));
|
| - PumpLoop();
|
| + LoadGCMStore(gcm_store.get(), &load_result);
|
|
|
| // Adding more messages should still fail.
|
| for (int i = 0; i < kNumMessagesPerApp; ++i) {
|
| @@ -515,10 +506,9 @@ TEST_F(GCMStoreImplTest, PerAppMessageLimits) {
|
| }
|
|
|
| TEST_F(GCMStoreImplTest, AccountMapping) {
|
| - scoped_ptr<GCMStore> gcm_store(BuildGCMStore());
|
| + scoped_ptr<GCMStoreImpl> gcm_store(BuildGCMStore());
|
| scoped_ptr<GCMStore::LoadResult> load_result;
|
| - gcm_store->Load(base::Bind(
|
| - &GCMStoreImplTest::LoadCallback, base::Unretained(this), &load_result));
|
| + LoadGCMStore(gcm_store.get(), &load_result);
|
|
|
| // Add account mappings.
|
| AccountMapping account_mapping1;
|
| @@ -548,9 +538,7 @@ TEST_F(GCMStoreImplTest, AccountMapping) {
|
| PumpLoop();
|
|
|
| gcm_store = BuildGCMStore().Pass();
|
| - gcm_store->Load(base::Bind(
|
| - &GCMStoreImplTest::LoadCallback, base::Unretained(this), &load_result));
|
| - PumpLoop();
|
| + LoadGCMStore(gcm_store.get(), &load_result);
|
|
|
| EXPECT_EQ(2UL, load_result->account_mappings.size());
|
| GCMStore::AccountMappings::iterator iter =
|
| @@ -577,9 +565,7 @@ TEST_F(GCMStoreImplTest, AccountMapping) {
|
| PumpLoop();
|
|
|
| gcm_store = BuildGCMStore().Pass();
|
| - gcm_store->Load(base::Bind(
|
| - &GCMStoreImplTest::LoadCallback, base::Unretained(this), &load_result));
|
| - PumpLoop();
|
| + LoadGCMStore(gcm_store.get(), &load_result);
|
|
|
| EXPECT_EQ(1UL, load_result->account_mappings.size());
|
| iter = load_result->account_mappings.begin();
|
| @@ -593,10 +579,9 @@ TEST_F(GCMStoreImplTest, AccountMapping) {
|
| }
|
|
|
| TEST_F(GCMStoreImplTest, HeartbeatInterval) {
|
| - scoped_ptr<GCMStore> gcm_store(BuildGCMStore());
|
| + scoped_ptr<GCMStoreImpl> gcm_store(BuildGCMStore());
|
| scoped_ptr<GCMStore::LoadResult> load_result;
|
| - gcm_store->Load(base::Bind(
|
| - &GCMStoreImplTest::LoadCallback, base::Unretained(this), &load_result));
|
| + LoadGCMStore(gcm_store.get(), &load_result);
|
|
|
| std::string scope1 = "scope1";
|
| std::string scope2 = "scope2";
|
| @@ -615,9 +600,7 @@ TEST_F(GCMStoreImplTest, HeartbeatInterval) {
|
| PumpLoop();
|
|
|
| gcm_store = BuildGCMStore().Pass();
|
| - gcm_store->Load(base::Bind(
|
| - &GCMStoreImplTest::LoadCallback, base::Unretained(this), &load_result));
|
| - PumpLoop();
|
| + LoadGCMStore(gcm_store.get(), &load_result);
|
|
|
| EXPECT_EQ(2UL, load_result->heartbeat_intervals.size());
|
| ASSERT_TRUE(load_result->heartbeat_intervals.find(scope1) !=
|
| @@ -633,9 +616,7 @@ TEST_F(GCMStoreImplTest, HeartbeatInterval) {
|
| PumpLoop();
|
|
|
| gcm_store = BuildGCMStore().Pass();
|
| - gcm_store->Load(base::Bind(
|
| - &GCMStoreImplTest::LoadCallback, base::Unretained(this), &load_result));
|
| - PumpLoop();
|
| + LoadGCMStore(gcm_store.get(), &load_result);
|
|
|
| EXPECT_EQ(1UL, load_result->heartbeat_intervals.size());
|
| ASSERT_TRUE(load_result->heartbeat_intervals.find(scope1) !=
|
| @@ -647,12 +628,9 @@ TEST_F(GCMStoreImplTest, HeartbeatInterval) {
|
| // same time, they per-app message counts should not go up, as failures should
|
| // result in decrementing the counts.
|
| TEST_F(GCMStoreImplTest, AddMessageAfterDestroy) {
|
| - scoped_ptr<GCMStore> gcm_store(BuildGCMStore());
|
| + scoped_ptr<GCMStoreImpl> gcm_store(BuildGCMStore());
|
| scoped_ptr<GCMStore::LoadResult> load_result;
|
| - gcm_store->Load(base::Bind(&GCMStoreImplTest::LoadCallback,
|
| - base::Unretained(this),
|
| - &load_result));
|
| - PumpLoop();
|
| + LoadGCMStore(gcm_store.get(), &load_result);
|
| gcm_store->Destroy(base::Bind(&GCMStoreImplTest::UpdateCallback,
|
| base::Unretained(this)));
|
| PumpLoop();
|
| @@ -673,28 +651,20 @@ TEST_F(GCMStoreImplTest, AddMessageAfterDestroy) {
|
| }
|
|
|
| TEST_F(GCMStoreImplTest, ReloadAfterClose) {
|
| - scoped_ptr<GCMStore> gcm_store(BuildGCMStore());
|
| + scoped_ptr<GCMStoreImpl> gcm_store(BuildGCMStore());
|
| scoped_ptr<GCMStore::LoadResult> load_result;
|
| - gcm_store->Load(base::Bind(&GCMStoreImplTest::LoadCallback,
|
| - base::Unretained(this),
|
| - &load_result));
|
| - PumpLoop();
|
| + LoadGCMStore(gcm_store.get(), &load_result);
|
|
|
| gcm_store->Close();
|
| PumpLoop();
|
|
|
| - gcm_store->Load(base::Bind(&GCMStoreImplTest::LoadCallback,
|
| - base::Unretained(this),
|
| - &load_result));
|
| - PumpLoop();
|
| + LoadGCMStore(gcm_store.get(), &load_result);
|
| }
|
|
|
| TEST_F(GCMStoreImplTest, LastTokenFetchTime) {
|
| scoped_ptr<GCMStoreImpl> gcm_store(BuildGCMStore());
|
| scoped_ptr<GCMStore::LoadResult> load_result;
|
| - gcm_store->Load(base::Bind(
|
| - &GCMStoreImplTest::LoadCallback, base::Unretained(this), &load_result));
|
| - PumpLoop();
|
| + LoadGCMStore(gcm_store.get(), &load_result);
|
| EXPECT_EQ(base::Time(), load_result->last_token_fetch_time);
|
|
|
| base::Time last_token_fetch_time = base::Time::Now();
|
| @@ -704,9 +674,7 @@ TEST_F(GCMStoreImplTest, LastTokenFetchTime) {
|
| PumpLoop();
|
|
|
| gcm_store = BuildGCMStore().Pass();
|
| - gcm_store->Load(base::Bind(
|
| - &GCMStoreImplTest::LoadCallback, base::Unretained(this), &load_result));
|
| - PumpLoop();
|
| + LoadGCMStore(gcm_store.get(), &load_result);
|
| EXPECT_EQ(last_token_fetch_time, load_result->last_token_fetch_time);
|
|
|
| // Negative cases, where the value read is gibberish.
|
| @@ -717,18 +685,14 @@ TEST_F(GCMStoreImplTest, LastTokenFetchTime) {
|
| PumpLoop();
|
|
|
| gcm_store = BuildGCMStore().Pass();
|
| - gcm_store->Load(base::Bind(
|
| - &GCMStoreImplTest::LoadCallback, base::Unretained(this), &load_result));
|
| - PumpLoop();
|
| + LoadGCMStore(gcm_store.get(), &load_result);
|
| EXPECT_EQ(base::Time(), load_result->last_token_fetch_time);
|
| }
|
|
|
| TEST_F(GCMStoreImplTest, InstanceIDData) {
|
| - scoped_ptr<GCMStore> gcm_store(BuildGCMStore());
|
| + scoped_ptr<GCMStoreImpl> gcm_store(BuildGCMStore());
|
| scoped_ptr<GCMStore::LoadResult> load_result;
|
| - gcm_store->Load(base::Bind(
|
| - &GCMStoreImplTest::LoadCallback, base::Unretained(this), &load_result));
|
| - PumpLoop();
|
| + LoadGCMStore(gcm_store.get(), &load_result);
|
|
|
| std::string instance_id_data("Foo");
|
| gcm_store->AddInstanceIDData(
|
| @@ -745,9 +709,7 @@ TEST_F(GCMStoreImplTest, InstanceIDData) {
|
| PumpLoop();
|
|
|
| gcm_store = BuildGCMStore().Pass();
|
| - gcm_store->Load(base::Bind(
|
| - &GCMStoreImplTest::LoadCallback, base::Unretained(this), &load_result));
|
| - PumpLoop();
|
| + LoadGCMStore(gcm_store.get(), &load_result);
|
|
|
| ASSERT_EQ(2u, load_result->instance_id_data.size());
|
| ASSERT_TRUE(load_result->instance_id_data.find(kAppName) !=
|
| @@ -763,9 +725,7 @@ TEST_F(GCMStoreImplTest, InstanceIDData) {
|
| PumpLoop();
|
|
|
| gcm_store = BuildGCMStore().Pass();
|
| - gcm_store->Load(base::Bind(
|
| - &GCMStoreImplTest::LoadCallback, base::Unretained(this), &load_result));
|
| - PumpLoop();
|
| + LoadGCMStore(gcm_store.get(), &load_result);
|
|
|
| ASSERT_EQ(1u, load_result->instance_id_data.size());
|
| ASSERT_TRUE(load_result->instance_id_data.find(kAppName2) !=
|
|
|