| OLD | NEW |
| 1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include "google_apis/gcm/engine/gcm_store_impl.h" | 5 #include "google_apis/gcm/engine/gcm_store_impl.h" |
| 6 | 6 |
| 7 #include <string> | 7 #include <string> |
| 8 #include <vector> | 8 #include <vector> |
| 9 | 9 |
| 10 #include "base/bind.h" | 10 #include "base/bind.h" |
| (...skipping 514 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 525 gcm_store->Load(base::Bind( | 525 gcm_store->Load(base::Bind( |
| 526 &GCMStoreImplTest::LoadCallback, base::Unretained(this), &load_result)); | 526 &GCMStoreImplTest::LoadCallback, base::Unretained(this), &load_result)); |
| 527 | 527 |
| 528 // Add account mappings. | 528 // Add account mappings. |
| 529 AccountMapping account_mapping1; | 529 AccountMapping account_mapping1; |
| 530 account_mapping1.account_id = "account_id_1"; | 530 account_mapping1.account_id = "account_id_1"; |
| 531 account_mapping1.email = "account_id_1@gmail.com"; | 531 account_mapping1.email = "account_id_1@gmail.com"; |
| 532 account_mapping1.access_token = "account_token1"; | 532 account_mapping1.access_token = "account_token1"; |
| 533 account_mapping1.status = AccountMapping::ADDING; | 533 account_mapping1.status = AccountMapping::ADDING; |
| 534 account_mapping1.status_change_timestamp = base::Time(); | 534 account_mapping1.status_change_timestamp = base::Time(); |
| 535 account_mapping1.last_message_type = AccountMapping::MSG_ADD; | |
| 536 account_mapping1.last_message_id = "message_1"; | 535 account_mapping1.last_message_id = "message_1"; |
| 537 | 536 |
| 538 AccountMapping account_mapping2; | 537 AccountMapping account_mapping2; |
| 539 account_mapping2.account_id = "account_id_2"; | 538 account_mapping2.account_id = "account_id_2"; |
| 540 account_mapping2.email = "account_id_2@gmail.com"; | 539 account_mapping2.email = "account_id_2@gmail.com"; |
| 541 account_mapping2.access_token = "account_token1"; | 540 account_mapping2.access_token = "account_token1"; |
| 542 account_mapping2.status = AccountMapping::REMOVING; | 541 account_mapping2.status = AccountMapping::REMOVING; |
| 543 account_mapping2.status_change_timestamp = | 542 account_mapping2.status_change_timestamp = |
| 544 base::Time::FromInternalValue(1305734521259935LL); | 543 base::Time::FromInternalValue(1305734521259935LL); |
| 545 account_mapping2.last_message_type = AccountMapping::MSG_REMOVE; | |
| 546 account_mapping2.last_message_id = "message_2"; | 544 account_mapping2.last_message_id = "message_2"; |
| 547 | 545 |
| 548 gcm_store->AddAccountMapping( | 546 gcm_store->AddAccountMapping( |
| 549 account_mapping1, | 547 account_mapping1, |
| 550 base::Bind(&GCMStoreImplTest::UpdateCallback, base::Unretained(this))); | 548 base::Bind(&GCMStoreImplTest::UpdateCallback, base::Unretained(this))); |
| 551 PumpLoop(); | 549 PumpLoop(); |
| 552 gcm_store->AddAccountMapping( | 550 gcm_store->AddAccountMapping( |
| 553 account_mapping2, | 551 account_mapping2, |
| 554 base::Bind(&GCMStoreImplTest::UpdateCallback, base::Unretained(this))); | 552 base::Bind(&GCMStoreImplTest::UpdateCallback, base::Unretained(this))); |
| 555 PumpLoop(); | 553 PumpLoop(); |
| 556 | 554 |
| 557 gcm_store = BuildGCMStore().Pass(); | 555 gcm_store = BuildGCMStore().Pass(); |
| 558 gcm_store->Load(base::Bind( | 556 gcm_store->Load(base::Bind( |
| 559 &GCMStoreImplTest::LoadCallback, base::Unretained(this), &load_result)); | 557 &GCMStoreImplTest::LoadCallback, base::Unretained(this), &load_result)); |
| 560 PumpLoop(); | 558 PumpLoop(); |
| 561 | 559 |
| 562 EXPECT_EQ(2UL, load_result->account_mappings.size()); | 560 EXPECT_EQ(2UL, load_result->account_mappings.size()); |
| 563 GCMStore::AccountMappingMap::iterator iter = | 561 GCMStore::AccountMappingMap::iterator iter = |
| 564 load_result->account_mappings.begin(); | 562 load_result->account_mappings.begin(); |
| 565 EXPECT_EQ("account_id_1", iter->first); | 563 EXPECT_EQ("account_id_1", iter->first); |
| 566 EXPECT_EQ(account_mapping1.account_id, iter->second.account_id); | 564 EXPECT_EQ(account_mapping1.account_id, iter->second.account_id); |
| 567 EXPECT_EQ(account_mapping1.email, iter->second.email); | 565 EXPECT_EQ(account_mapping1.email, iter->second.email); |
| 568 EXPECT_TRUE(iter->second.access_token.empty()); | 566 EXPECT_TRUE(iter->second.access_token.empty()); |
| 569 EXPECT_EQ(AccountMapping::ADDING, iter->second.status); | 567 EXPECT_EQ(AccountMapping::ADDING, iter->second.status); |
| 570 EXPECT_EQ(account_mapping1.status_change_timestamp, | 568 EXPECT_EQ(account_mapping1.status_change_timestamp, |
| 571 iter->second.status_change_timestamp); | 569 iter->second.status_change_timestamp); |
| 572 EXPECT_EQ(account_mapping1.last_message_type, iter->second.last_message_type); | |
| 573 EXPECT_EQ(account_mapping1.last_message_id, iter->second.last_message_id); | 570 EXPECT_EQ(account_mapping1.last_message_id, iter->second.last_message_id); |
| 574 ++iter; | 571 ++iter; |
| 575 EXPECT_EQ("account_id_2", iter->first); | 572 EXPECT_EQ("account_id_2", iter->first); |
| 576 EXPECT_EQ(account_mapping2.account_id, iter->second.account_id); | 573 EXPECT_EQ(account_mapping2.account_id, iter->second.account_id); |
| 577 EXPECT_EQ(account_mapping2.email, iter->second.email); | 574 EXPECT_EQ(account_mapping2.email, iter->second.email); |
| 578 EXPECT_TRUE(iter->second.access_token.empty()); | 575 EXPECT_TRUE(iter->second.access_token.empty()); |
| 579 EXPECT_EQ(AccountMapping::REMOVING, iter->second.status); | 576 EXPECT_EQ(AccountMapping::REMOVING, iter->second.status); |
| 580 EXPECT_EQ(account_mapping2.status_change_timestamp, | 577 EXPECT_EQ(account_mapping2.status_change_timestamp, |
| 581 iter->second.status_change_timestamp); | 578 iter->second.status_change_timestamp); |
| 582 EXPECT_EQ(account_mapping2.last_message_type, iter->second.last_message_type); | |
| 583 EXPECT_EQ(account_mapping2.last_message_id, iter->second.last_message_id); | 579 EXPECT_EQ(account_mapping2.last_message_id, iter->second.last_message_id); |
| 584 | 580 |
| 585 gcm_store->RemoveAccountMapping( | 581 gcm_store->RemoveAccountMapping( |
| 586 account_mapping1.account_id, | 582 account_mapping1.account_id, |
| 587 base::Bind(&GCMStoreImplTest::UpdateCallback, base::Unretained(this))); | 583 base::Bind(&GCMStoreImplTest::UpdateCallback, base::Unretained(this))); |
| 588 PumpLoop(); | 584 PumpLoop(); |
| 589 | 585 |
| 590 gcm_store = BuildGCMStore().Pass(); | 586 gcm_store = BuildGCMStore().Pass(); |
| 591 gcm_store->Load(base::Bind( | 587 gcm_store->Load(base::Bind( |
| 592 &GCMStoreImplTest::LoadCallback, base::Unretained(this), &load_result)); | 588 &GCMStoreImplTest::LoadCallback, base::Unretained(this), &load_result)); |
| 593 PumpLoop(); | 589 PumpLoop(); |
| 594 | 590 |
| 595 EXPECT_EQ(1UL, load_result->account_mappings.size()); | 591 EXPECT_EQ(1UL, load_result->account_mappings.size()); |
| 596 iter = load_result->account_mappings.begin(); | 592 iter = load_result->account_mappings.begin(); |
| 597 EXPECT_EQ("account_id_2", iter->first); | 593 EXPECT_EQ("account_id_2", iter->first); |
| 598 EXPECT_EQ(account_mapping2.account_id, iter->second.account_id); | 594 EXPECT_EQ(account_mapping2.account_id, iter->second.account_id); |
| 599 EXPECT_EQ(account_mapping2.email, iter->second.email); | 595 EXPECT_EQ(account_mapping2.email, iter->second.email); |
| 600 EXPECT_TRUE(iter->second.access_token.empty()); | 596 EXPECT_TRUE(iter->second.access_token.empty()); |
| 601 EXPECT_EQ(AccountMapping::REMOVING, iter->second.status); | 597 EXPECT_EQ(AccountMapping::REMOVING, iter->second.status); |
| 602 EXPECT_EQ(account_mapping2.status_change_timestamp, | 598 EXPECT_EQ(account_mapping2.status_change_timestamp, |
| 603 iter->second.status_change_timestamp); | 599 iter->second.status_change_timestamp); |
| 604 EXPECT_EQ(account_mapping2.last_message_type, iter->second.last_message_type); | |
| 605 EXPECT_EQ(account_mapping2.last_message_id, iter->second.last_message_id); | 600 EXPECT_EQ(account_mapping2.last_message_id, iter->second.last_message_id); |
| 606 } | 601 } |
| 607 | 602 |
| 608 // When the database is destroyed, all database updates should fail. At the | 603 // When the database is destroyed, all database updates should fail. At the |
| 609 // same time, they per-app message counts should not go up, as failures should | 604 // same time, they per-app message counts should not go up, as failures should |
| 610 // result in decrementing the counts. | 605 // result in decrementing the counts. |
| 611 TEST_F(GCMStoreImplTest, AddMessageAfterDestroy) { | 606 TEST_F(GCMStoreImplTest, AddMessageAfterDestroy) { |
| 612 scoped_ptr<GCMStore> gcm_store(BuildGCMStore()); | 607 scoped_ptr<GCMStore> gcm_store(BuildGCMStore()); |
| 613 scoped_ptr<GCMStore::LoadResult> load_result; | 608 scoped_ptr<GCMStore::LoadResult> load_result; |
| 614 gcm_store->Load(base::Bind(&GCMStoreImplTest::LoadCallback, | 609 gcm_store->Load(base::Bind(&GCMStoreImplTest::LoadCallback, |
| (...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 647 | 642 |
| 648 gcm_store->Load(base::Bind(&GCMStoreImplTest::LoadCallback, | 643 gcm_store->Load(base::Bind(&GCMStoreImplTest::LoadCallback, |
| 649 base::Unretained(this), | 644 base::Unretained(this), |
| 650 &load_result)); | 645 &load_result)); |
| 651 PumpLoop(); | 646 PumpLoop(); |
| 652 } | 647 } |
| 653 | 648 |
| 654 } // namespace | 649 } // namespace |
| 655 | 650 |
| 656 } // namespace gcm | 651 } // namespace gcm |
| OLD | NEW |