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 d504082bd99a9933a82ad061b72e4eda1290c41f..4beb0ae2501ccce6c5208af63a1ce840516daa12 100644 |
--- a/google_apis/gcm/engine/gcm_store_impl_unittest.cc |
+++ b/google_apis/gcm/engine/gcm_store_impl_unittest.cc |
@@ -49,8 +49,8 @@ class GCMStoreImplTest : public testing::Test { |
void PumpLoop(); |
- void LoadCallback(GCMStore::LoadResult* result_dst, |
- const GCMStore::LoadResult& result); |
+ void LoadCallback(scoped_ptr<GCMStore::LoadResult>* result_dst, |
+ scoped_ptr<GCMStore::LoadResult> result); |
void UpdateCallback(bool success); |
protected: |
@@ -81,10 +81,11 @@ std::string GCMStoreImplTest::GetNextPersistentId() { |
void GCMStoreImplTest::PumpLoop() { message_loop_.RunUntilIdle(); } |
-void GCMStoreImplTest::LoadCallback(GCMStore::LoadResult* result_dst, |
- const GCMStore::LoadResult& result) { |
- ASSERT_TRUE(result.success); |
- *result_dst = result; |
+void GCMStoreImplTest::LoadCallback( |
+ scoped_ptr<GCMStore::LoadResult>* result_dst, |
+ scoped_ptr<GCMStore::LoadResult> result) { |
+ ASSERT_TRUE(result->success); |
+ *result_dst = result.Pass(); |
run_loop_->Quit(); |
run_loop_.reset(new base::RunLoop()); |
} |
@@ -96,22 +97,22 @@ void GCMStoreImplTest::UpdateCallback(bool success) { |
// Verify creating a new database and loading it. |
TEST_F(GCMStoreImplTest, LoadNew) { |
scoped_ptr<GCMStore> gcm_store(BuildGCMStore()); |
- GCMStore::LoadResult load_result; |
+ scoped_ptr<GCMStore::LoadResult> load_result; |
gcm_store->Load(base::Bind( |
&GCMStoreImplTest::LoadCallback, base::Unretained(this), &load_result)); |
PumpLoop(); |
- EXPECT_EQ(0U, load_result.device_android_id); |
- EXPECT_EQ(0U, load_result.device_security_token); |
- EXPECT_TRUE(load_result.incoming_messages.empty()); |
- EXPECT_TRUE(load_result.outgoing_messages.empty()); |
- EXPECT_EQ(1LL, load_result.serial_number_mappings.next_serial_number); |
- EXPECT_TRUE(load_result.serial_number_mappings.user_serial_numbers.empty()); |
+ EXPECT_EQ(0U, load_result->device_android_id); |
+ EXPECT_EQ(0U, load_result->device_security_token); |
+ EXPECT_TRUE(load_result->incoming_messages.empty()); |
+ EXPECT_TRUE(load_result->outgoing_messages.empty()); |
+ EXPECT_EQ(1LL, load_result->serial_number_mappings.next_serial_number); |
+ EXPECT_TRUE(load_result->serial_number_mappings.user_serial_numbers.empty()); |
} |
TEST_F(GCMStoreImplTest, DeviceCredentials) { |
scoped_ptr<GCMStore> gcm_store(BuildGCMStore()); |
- GCMStore::LoadResult load_result; |
+ scoped_ptr<GCMStore::LoadResult> load_result; |
gcm_store->Load(base::Bind( |
&GCMStoreImplTest::LoadCallback, base::Unretained(this), &load_result)); |
PumpLoop(); |
@@ -127,15 +128,15 @@ TEST_F(GCMStoreImplTest, DeviceCredentials) { |
&GCMStoreImplTest::LoadCallback, base::Unretained(this), &load_result)); |
PumpLoop(); |
- ASSERT_EQ(kDeviceId, load_result.device_android_id); |
- ASSERT_EQ(kDeviceToken, load_result.device_security_token); |
+ ASSERT_EQ(kDeviceId, load_result->device_android_id); |
+ ASSERT_EQ(kDeviceToken, load_result->device_security_token); |
} |
// Verify saving some incoming messages, reopening the directory, and then |
// removing those incoming messages. |
TEST_F(GCMStoreImplTest, IncomingMessages) { |
scoped_ptr<GCMStore> gcm_store(BuildGCMStore()); |
- GCMStore::LoadResult load_result; |
+ scoped_ptr<GCMStore::LoadResult> load_result; |
gcm_store->Load(base::Bind( |
&GCMStoreImplTest::LoadCallback, base::Unretained(this), &load_result)); |
PumpLoop(); |
@@ -154,8 +155,8 @@ TEST_F(GCMStoreImplTest, IncomingMessages) { |
&GCMStoreImplTest::LoadCallback, base::Unretained(this), &load_result)); |
PumpLoop(); |
- ASSERT_EQ(persistent_ids, load_result.incoming_messages); |
- ASSERT_TRUE(load_result.outgoing_messages.empty()); |
+ ASSERT_EQ(persistent_ids, load_result->incoming_messages); |
+ ASSERT_TRUE(load_result->outgoing_messages.empty()); |
gcm_store->RemoveIncomingMessages( |
persistent_ids, |
@@ -163,26 +164,20 @@ TEST_F(GCMStoreImplTest, IncomingMessages) { |
PumpLoop(); |
gcm_store = BuildGCMStore().Pass(); |
- load_result.incoming_messages.clear(); |
+ load_result->incoming_messages.clear(); |
gcm_store->Load(base::Bind( |
&GCMStoreImplTest::LoadCallback, base::Unretained(this), &load_result)); |
PumpLoop(); |
- ASSERT_TRUE(load_result.incoming_messages.empty()); |
- ASSERT_TRUE(load_result.outgoing_messages.empty()); |
+ ASSERT_TRUE(load_result->incoming_messages.empty()); |
+ ASSERT_TRUE(load_result->outgoing_messages.empty()); |
} |
// Verify saving some outgoing messages, reopening the directory, and then |
// removing those outgoing messages. |
-// Fails on linux_asan crbug.com/337560 |
-#if !defined(OS_POSIX) |
-#define MAYBE_OutgoingMessages OutgoingMessages |
-#else |
-#define MAYBE_OutgoingMessages DISABLED_OutgoingMessages |
-#endif |
-TEST_F(GCMStoreImplTest, MAYBE_OutgoingMessages) { |
+TEST_F(GCMStoreImplTest, OutgoingMessages) { |
scoped_ptr<GCMStore> gcm_store(BuildGCMStore()); |
- GCMStore::LoadResult load_result; |
+ scoped_ptr<GCMStore::LoadResult> load_result; |
gcm_store->Load(base::Bind( |
&GCMStoreImplTest::LoadCallback, base::Unretained(this), &load_result)); |
PumpLoop(); |
@@ -206,14 +201,14 @@ TEST_F(GCMStoreImplTest, MAYBE_OutgoingMessages) { |
&GCMStoreImplTest::LoadCallback, base::Unretained(this), &load_result)); |
PumpLoop(); |
- ASSERT_TRUE(load_result.incoming_messages.empty()); |
- ASSERT_EQ(load_result.outgoing_messages.size(), persistent_ids.size()); |
+ ASSERT_TRUE(load_result->incoming_messages.empty()); |
+ ASSERT_EQ(load_result->outgoing_messages.size(), persistent_ids.size()); |
for (int i = 0; i < kNumPersistentIds; ++i) { |
std::string id = persistent_ids[i]; |
- ASSERT_TRUE(load_result.outgoing_messages[id]); |
+ ASSERT_TRUE(load_result->outgoing_messages[id].get()); |
const mcs_proto::DataMessageStanza* message = |
reinterpret_cast<mcs_proto::DataMessageStanza*>( |
- load_result.outgoing_messages[id]); |
+ load_result->outgoing_messages[id].get()); |
ASSERT_EQ(message->from(), kAppName + id); |
ASSERT_EQ(message->category(), kCategoryName + id); |
} |
@@ -224,25 +219,19 @@ TEST_F(GCMStoreImplTest, MAYBE_OutgoingMessages) { |
PumpLoop(); |
gcm_store = BuildGCMStore().Pass(); |
- load_result.outgoing_messages.clear(); |
+ load_result->outgoing_messages.clear(); |
gcm_store->Load(base::Bind( |
&GCMStoreImplTest::LoadCallback, base::Unretained(this), &load_result)); |
PumpLoop(); |
- ASSERT_TRUE(load_result.incoming_messages.empty()); |
- ASSERT_TRUE(load_result.outgoing_messages.empty()); |
+ ASSERT_TRUE(load_result->incoming_messages.empty()); |
+ ASSERT_TRUE(load_result->outgoing_messages.empty()); |
} |
// Verify incoming and outgoing messages don't conflict. |
-// Fails on linux_asan crbug.com/337560 |
-#if !defined(OS_POSIX) |
-#define MAYBE_IncomingAndOutgoingMessages IncomingAndOutgoingMessages |
-#else |
-#define MAYBE_IncomingAndOutgoingMessages DISABLED_IncomingAndOutgoingMessages |
-#endif |
-TEST_F(GCMStoreImplTest, MAYBE_IncomingAndOutgoingMessages) { |
+TEST_F(GCMStoreImplTest, IncomingAndOutgoingMessages) { |
scoped_ptr<GCMStore> gcm_store(BuildGCMStore()); |
- GCMStore::LoadResult load_result; |
+ scoped_ptr<GCMStore::LoadResult> load_result; |
gcm_store->Load(base::Bind( |
&GCMStoreImplTest::LoadCallback, base::Unretained(this), &load_result)); |
PumpLoop(); |
@@ -271,14 +260,14 @@ TEST_F(GCMStoreImplTest, MAYBE_IncomingAndOutgoingMessages) { |
&GCMStoreImplTest::LoadCallback, base::Unretained(this), &load_result)); |
PumpLoop(); |
- ASSERT_EQ(persistent_ids, load_result.incoming_messages); |
- ASSERT_EQ(load_result.outgoing_messages.size(), persistent_ids.size()); |
+ ASSERT_EQ(persistent_ids, load_result->incoming_messages); |
+ ASSERT_EQ(load_result->outgoing_messages.size(), persistent_ids.size()); |
for (int i = 0; i < kNumPersistentIds; ++i) { |
std::string id = persistent_ids[i]; |
- ASSERT_TRUE(load_result.outgoing_messages[id]); |
+ ASSERT_TRUE(load_result->outgoing_messages[id].get()); |
const mcs_proto::DataMessageStanza* message = |
reinterpret_cast<mcs_proto::DataMessageStanza*>( |
- load_result.outgoing_messages[id]); |
+ load_result->outgoing_messages[id].get()); |
ASSERT_EQ(message->from(), kAppName + id); |
ASSERT_EQ(message->category(), kCategoryName + id); |
} |
@@ -293,21 +282,21 @@ TEST_F(GCMStoreImplTest, MAYBE_IncomingAndOutgoingMessages) { |
PumpLoop(); |
gcm_store = BuildGCMStore().Pass(); |
- load_result.incoming_messages.clear(); |
- load_result.outgoing_messages.clear(); |
+ load_result->incoming_messages.clear(); |
+ load_result->outgoing_messages.clear(); |
gcm_store->Load(base::Bind( |
&GCMStoreImplTest::LoadCallback, base::Unretained(this), &load_result)); |
PumpLoop(); |
- ASSERT_TRUE(load_result.incoming_messages.empty()); |
- ASSERT_TRUE(load_result.outgoing_messages.empty()); |
+ ASSERT_TRUE(load_result->incoming_messages.empty()); |
+ ASSERT_TRUE(load_result->outgoing_messages.empty()); |
} |
// Verify that the next serial number of persisted properly. |
TEST_F(GCMStoreImplTest, NextSerialNumber) { |
const int64 kNextSerialNumber = 77LL; |
scoped_ptr<GCMStore> gcm_store(BuildGCMStore()); |
- GCMStore::LoadResult load_result; |
+ scoped_ptr<GCMStore::LoadResult> load_result; |
gcm_store->Load(base::Bind( |
&GCMStoreImplTest::LoadCallback, base::Unretained(this), &load_result)); |
PumpLoop(); |
@@ -323,13 +312,13 @@ TEST_F(GCMStoreImplTest, NextSerialNumber) { |
PumpLoop(); |
EXPECT_EQ(kNextSerialNumber, |
- load_result.serial_number_mappings.next_serial_number); |
+ load_result->serial_number_mappings.next_serial_number); |
} |
// Verify that user serial number mappings are persisted properly. |
TEST_F(GCMStoreImplTest, UserSerialNumberMappings) { |
scoped_ptr<GCMStore> gcm_store(BuildGCMStore()); |
- GCMStore::LoadResult load_result; |
+ scoped_ptr<GCMStore::LoadResult> load_result; |
gcm_store->Load(base::Bind( |
&GCMStoreImplTest::LoadCallback, base::Unretained(this), &load_result)); |
PumpLoop(); |
@@ -354,30 +343,24 @@ TEST_F(GCMStoreImplTest, UserSerialNumberMappings) { |
&GCMStoreImplTest::LoadCallback, base::Unretained(this), &load_result)); |
PumpLoop(); |
- ASSERT_EQ(2u, load_result.serial_number_mappings.user_serial_numbers.size()); |
+ ASSERT_EQ(2u, load_result->serial_number_mappings.user_serial_numbers.size()); |
ASSERT_NE( |
- load_result.serial_number_mappings.user_serial_numbers.end(), |
- load_result.serial_number_mappings.user_serial_numbers.find(username1)); |
+ load_result->serial_number_mappings.user_serial_numbers.end(), |
+ load_result->serial_number_mappings.user_serial_numbers.find(username1)); |
EXPECT_EQ(serial_number1, |
- load_result.serial_number_mappings.user_serial_numbers[username1]); |
+ load_result->serial_number_mappings.user_serial_numbers[username1]); |
ASSERT_NE( |
- load_result.serial_number_mappings.user_serial_numbers.end(), |
- load_result.serial_number_mappings.user_serial_numbers.find(username2)); |
+ load_result->serial_number_mappings.user_serial_numbers.end(), |
+ load_result->serial_number_mappings.user_serial_numbers.find(username2)); |
EXPECT_EQ(serial_number2, |
- load_result.serial_number_mappings.user_serial_numbers[username2]); |
+ load_result->serial_number_mappings.user_serial_numbers[username2]); |
} |
// Test that per-app message limits are enforced, persisted across restarts, |
// and updated as messages are removed. |
-// Fails on linux_asan crbug.com/337560 |
-#if !defined(OS_POSIX) |
-#define MAYBE_PerAppMessageLimits PerAppMessageLimits |
-#else |
-#define MAYBE_PerAppMessageLimits DISABLED_PerAppMessageLimits |
-#endif |
-TEST_F(GCMStoreImplTest, MAYBE_PerAppMessageLimits) { |
+TEST_F(GCMStoreImplTest, PerAppMessageLimits) { |
scoped_ptr<GCMStore> gcm_store(BuildGCMStore()); |
- GCMStore::LoadResult load_result; |
+ scoped_ptr<GCMStore::LoadResult> load_result; |
gcm_store->Load(base::Bind(&GCMStoreImplTest::LoadCallback, |
base::Unretained(this), |
&load_result)); |
@@ -456,7 +439,7 @@ TEST_F(GCMStoreImplTest, MAYBE_PerAppMessageLimits) { |
// result in decrementing the counts. |
TEST_F(GCMStoreImplTest, AddMessageAfterDestroy) { |
scoped_ptr<GCMStore> gcm_store(BuildGCMStore()); |
- GCMStore::LoadResult load_result; |
+ scoped_ptr<GCMStore::LoadResult> load_result; |
gcm_store->Load(base::Bind(&GCMStoreImplTest::LoadCallback, |
base::Unretained(this), |
&load_result)); |