| 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 489 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 500 } | 500 } |
| 501 } | 501 } |
| 502 | 502 |
| 503 TEST_F(GCMStoreImplTest, AccountMapping) { | 503 TEST_F(GCMStoreImplTest, AccountMapping) { |
| 504 scoped_ptr<GCMStore> gcm_store(BuildGCMStore()); | 504 scoped_ptr<GCMStore> gcm_store(BuildGCMStore()); |
| 505 scoped_ptr<GCMStore::LoadResult> load_result; | 505 scoped_ptr<GCMStore::LoadResult> load_result; |
| 506 gcm_store->Load(base::Bind( | 506 gcm_store->Load(base::Bind( |
| 507 &GCMStoreImplTest::LoadCallback, base::Unretained(this), &load_result)); | 507 &GCMStoreImplTest::LoadCallback, base::Unretained(this), &load_result)); |
| 508 | 508 |
| 509 // Add account mappings. | 509 // Add account mappings. |
| 510 AccountInfo account_info1; | 510 AccountMapping account_mapping1; |
| 511 account_info1.account_id = "account_id_1"; | 511 account_mapping1.account_id = "account_id_1"; |
| 512 account_info1.email = "account_id_1@gmail.com"; | 512 account_mapping1.email = "account_id_1@gmail.com"; |
| 513 account_info1.last_message_type = AccountInfo::MSG_ADD; | 513 account_mapping1.access_token = "account_token1"; |
| 514 account_info1.last_message_id = "message_1"; | 514 account_mapping1.status = AccountMapping::ADDING; |
| 515 account_info1.last_message_timestamp = | 515 account_mapping1.status_change_timestamp = base::Time(); |
| 516 base::Time::FromInternalValue(1305797421259935LL); | 516 account_mapping1.last_message_type = AccountMapping::MSG_ADD; |
| 517 AccountInfo account_info2; | 517 account_mapping1.last_message_id = "message_1"; |
| 518 account_info2.account_id = "account_id_2"; | 518 |
| 519 account_info2.email = "account_id_2@gmail.com"; | 519 AccountMapping account_mapping2; |
| 520 account_info2.last_message_type = AccountInfo::MSG_REMOVE; | 520 account_mapping2.account_id = "account_id_2"; |
| 521 account_info2.last_message_id = "message_2"; | 521 account_mapping2.email = "account_id_2@gmail.com"; |
| 522 account_info2.last_message_timestamp = | 522 account_mapping2.access_token = "account_token1"; |
| 523 account_mapping2.status = AccountMapping::REMOVING; |
| 524 account_mapping2.status_change_timestamp = |
| 523 base::Time::FromInternalValue(1305734521259935LL); | 525 base::Time::FromInternalValue(1305734521259935LL); |
| 526 account_mapping2.last_message_type = AccountMapping::MSG_REMOVE; |
| 527 account_mapping2.last_message_id = "message_2"; |
| 524 | 528 |
| 525 gcm_store->AddAccountMapping( | 529 gcm_store->AddAccountMapping( |
| 526 account_info1, | 530 account_mapping1, |
| 527 base::Bind(&GCMStoreImplTest::UpdateCallback, base::Unretained(this))); | 531 base::Bind(&GCMStoreImplTest::UpdateCallback, base::Unretained(this))); |
| 528 PumpLoop(); | 532 PumpLoop(); |
| 529 gcm_store->AddAccountMapping( | 533 gcm_store->AddAccountMapping( |
| 530 account_info2, | 534 account_mapping2, |
| 531 base::Bind(&GCMStoreImplTest::UpdateCallback, base::Unretained(this))); | 535 base::Bind(&GCMStoreImplTest::UpdateCallback, base::Unretained(this))); |
| 532 PumpLoop(); | 536 PumpLoop(); |
| 533 | 537 |
| 534 gcm_store = BuildGCMStore().Pass(); | 538 gcm_store = BuildGCMStore().Pass(); |
| 535 gcm_store->Load(base::Bind( | 539 gcm_store->Load(base::Bind( |
| 536 &GCMStoreImplTest::LoadCallback, base::Unretained(this), &load_result)); | 540 &GCMStoreImplTest::LoadCallback, base::Unretained(this), &load_result)); |
| 537 PumpLoop(); | 541 PumpLoop(); |
| 538 | 542 |
| 539 EXPECT_EQ(2UL, load_result->account_infos.size()); | 543 EXPECT_EQ(2UL, load_result->account_mappings.size()); |
| 540 GCMStore::AccountInfoMap::iterator iter = load_result->account_infos.begin(); | 544 GCMStore::AccountMappingMap::iterator iter = |
| 545 load_result->account_mappings.begin(); |
| 541 EXPECT_EQ("account_id_1", iter->first); | 546 EXPECT_EQ("account_id_1", iter->first); |
| 542 EXPECT_EQ(account_info1.account_id, iter->second.account_id); | 547 EXPECT_EQ(account_mapping1.account_id, iter->second.account_id); |
| 543 EXPECT_EQ(account_info1.email, iter->second.email); | 548 EXPECT_EQ(account_mapping1.email, iter->second.email); |
| 544 EXPECT_EQ(account_info1.last_message_type, iter->second.last_message_type); | 549 EXPECT_TRUE(iter->second.access_token.empty()); |
| 545 EXPECT_EQ(account_info1.last_message_id, iter->second.last_message_id); | 550 EXPECT_EQ(AccountMapping::ADDING, iter->second.status); |
| 546 EXPECT_EQ(account_info1.last_message_timestamp, | 551 EXPECT_EQ(account_mapping1.status_change_timestamp, |
| 547 iter->second.last_message_timestamp); | 552 iter->second.status_change_timestamp); |
| 553 EXPECT_EQ(account_mapping1.last_message_type, iter->second.last_message_type); |
| 554 EXPECT_EQ(account_mapping1.last_message_id, iter->second.last_message_id); |
| 548 ++iter; | 555 ++iter; |
| 549 EXPECT_EQ("account_id_2", iter->first); | 556 EXPECT_EQ("account_id_2", iter->first); |
| 550 EXPECT_EQ(account_info2.account_id, iter->second.account_id); | 557 EXPECT_EQ(account_mapping2.account_id, iter->second.account_id); |
| 551 EXPECT_EQ(account_info2.email, iter->second.email); | 558 EXPECT_EQ(account_mapping2.email, iter->second.email); |
| 552 EXPECT_EQ(account_info2.last_message_type, iter->second.last_message_type); | 559 EXPECT_TRUE(iter->second.access_token.empty()); |
| 553 EXPECT_EQ(account_info2.last_message_id, iter->second.last_message_id); | 560 EXPECT_EQ(AccountMapping::REMOVING, iter->second.status); |
| 554 EXPECT_EQ(account_info2.last_message_timestamp, | 561 EXPECT_EQ(account_mapping2.status_change_timestamp, |
| 555 iter->second.last_message_timestamp); | 562 iter->second.status_change_timestamp); |
| 563 EXPECT_EQ(account_mapping2.last_message_type, iter->second.last_message_type); |
| 564 EXPECT_EQ(account_mapping2.last_message_id, iter->second.last_message_id); |
| 556 | 565 |
| 557 gcm_store->RemoveAccountMapping( | 566 gcm_store->RemoveAccountMapping( |
| 558 account_info1.account_id, | 567 account_mapping1.account_id, |
| 559 base::Bind(&GCMStoreImplTest::UpdateCallback, base::Unretained(this))); | 568 base::Bind(&GCMStoreImplTest::UpdateCallback, base::Unretained(this))); |
| 560 PumpLoop(); | 569 PumpLoop(); |
| 561 | 570 |
| 562 gcm_store = BuildGCMStore().Pass(); | 571 gcm_store = BuildGCMStore().Pass(); |
| 563 gcm_store->Load(base::Bind( | 572 gcm_store->Load(base::Bind( |
| 564 &GCMStoreImplTest::LoadCallback, base::Unretained(this), &load_result)); | 573 &GCMStoreImplTest::LoadCallback, base::Unretained(this), &load_result)); |
| 565 PumpLoop(); | 574 PumpLoop(); |
| 566 | 575 |
| 567 EXPECT_EQ(1UL, load_result->account_infos.size()); | 576 EXPECT_EQ(1UL, load_result->account_mappings.size()); |
| 568 iter = load_result->account_infos.begin(); | 577 iter = load_result->account_mappings.begin(); |
| 569 EXPECT_EQ("account_id_2", iter->first); | 578 EXPECT_EQ("account_id_2", iter->first); |
| 570 EXPECT_EQ(account_info2.account_id, iter->second.account_id); | 579 EXPECT_EQ(account_mapping2.account_id, iter->second.account_id); |
| 571 EXPECT_EQ(account_info2.email, iter->second.email); | 580 EXPECT_EQ(account_mapping2.email, iter->second.email); |
| 572 EXPECT_EQ(account_info2.last_message_type, iter->second.last_message_type); | 581 EXPECT_TRUE(iter->second.access_token.empty()); |
| 573 EXPECT_EQ(account_info2.last_message_id, iter->second.last_message_id); | 582 EXPECT_EQ(AccountMapping::REMOVING, iter->second.status); |
| 574 EXPECT_EQ(account_info2.last_message_timestamp, | 583 EXPECT_EQ(account_mapping2.status_change_timestamp, |
| 575 iter->second.last_message_timestamp); | 584 iter->second.status_change_timestamp); |
| 585 EXPECT_EQ(account_mapping2.last_message_type, iter->second.last_message_type); |
| 586 EXPECT_EQ(account_mapping2.last_message_id, iter->second.last_message_id); |
| 576 } | 587 } |
| 577 | 588 |
| 578 // When the database is destroyed, all database updates should fail. At the | 589 // When the database is destroyed, all database updates should fail. At the |
| 579 // same time, they per-app message counts should not go up, as failures should | 590 // same time, they per-app message counts should not go up, as failures should |
| 580 // result in decrementing the counts. | 591 // result in decrementing the counts. |
| 581 TEST_F(GCMStoreImplTest, AddMessageAfterDestroy) { | 592 TEST_F(GCMStoreImplTest, AddMessageAfterDestroy) { |
| 582 scoped_ptr<GCMStore> gcm_store(BuildGCMStore()); | 593 scoped_ptr<GCMStore> gcm_store(BuildGCMStore()); |
| 583 scoped_ptr<GCMStore::LoadResult> load_result; | 594 scoped_ptr<GCMStore::LoadResult> load_result; |
| 584 gcm_store->Load(base::Bind(&GCMStoreImplTest::LoadCallback, | 595 gcm_store->Load(base::Bind(&GCMStoreImplTest::LoadCallback, |
| 585 base::Unretained(this), | 596 base::Unretained(this), |
| (...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 617 | 628 |
| 618 gcm_store->Load(base::Bind(&GCMStoreImplTest::LoadCallback, | 629 gcm_store->Load(base::Bind(&GCMStoreImplTest::LoadCallback, |
| 619 base::Unretained(this), | 630 base::Unretained(this), |
| 620 &load_result)); | 631 &load_result)); |
| 621 PumpLoop(); | 632 PumpLoop(); |
| 622 } | 633 } |
| 623 | 634 |
| 624 } // namespace | 635 } // namespace |
| 625 | 636 |
| 626 } // namespace gcm | 637 } // namespace gcm |
| OLD | NEW |