| Index: components/autofill/core/browser/address_combobox_model_unittest.cc
|
| diff --git a/components/autofill/core/browser/address_combobox_model_unittest.cc b/components/autofill/core/browser/address_combobox_model_unittest.cc
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..2543a9b3648ce26508ff9287e9213837b6a003a0
|
| --- /dev/null
|
| +++ b/components/autofill/core/browser/address_combobox_model_unittest.cc
|
| @@ -0,0 +1,89 @@
|
| +// Copyright 2017 The Chromium Authors. All rights reserved.
|
| +// Use of this source code is governed by a BSD-style license that can be
|
| +// found in the LICENSE file.
|
| +
|
| +#include "components/autofill/core/browser/address_combobox_model.h"
|
| +
|
| +#include "components/autofill/core/browser/autofill_test_utils.h"
|
| +#include "components/autofill/core/browser/test_personal_data_manager.h"
|
| +#include "testing/gtest/include/gtest/gtest.h"
|
| +#include "third_party/libaddressinput/src/cpp/include/libaddressinput/region_data.h"
|
| +
|
| +namespace autofill {
|
| +
|
| +namespace {
|
| +const char kAppLocale[] = "fr-CA";
|
| +}
|
| +
|
| +TEST(AddressComboboxModelTest, Empty) {
|
| + TestPersonalDataManager test_personal_data_manager;
|
| +
|
| + AddressComboboxModel model(test_personal_data_manager, kAppLocale);
|
| + EXPECT_EQ(1, model.GetItemCount());
|
| + EXPECT_FALSE(model.IsItemSeparatorAt(0));
|
| + EXPECT_TRUE(model.GetItemIdentifierAt(0).empty());
|
| + EXPECT_EQ(-1, model.GetIndexOfIdentifier("Anything"));
|
| +}
|
| +
|
| +TEST(AddressComboboxModelTest, OneAddress) {
|
| + TestPersonalDataManager test_personal_data_manager;
|
| + AutofillProfile profile1(test::GetFullProfile());
|
| + test_personal_data_manager.AddTestingProfile(&profile1);
|
| +
|
| + AddressComboboxModel model(test_personal_data_manager, kAppLocale);
|
| + EXPECT_EQ(3, model.GetItemCount());
|
| + EXPECT_FALSE(model.IsItemSeparatorAt(0));
|
| + EXPECT_TRUE(model.IsItemSeparatorAt(1));
|
| + EXPECT_TRUE(model.GetItemIdentifierAt(0).empty());
|
| + EXPECT_TRUE(model.GetItemIdentifierAt(1).empty());
|
| + EXPECT_EQ(-1, model.GetIndexOfIdentifier("Anything"));
|
| + EXPECT_EQ(profile1.guid(), model.GetItemIdentifierAt(2));
|
| + EXPECT_EQ(2, model.GetIndexOfIdentifier(profile1.guid()));
|
| +}
|
| +
|
| +TEST(AddressComboboxModelTest, TwoAddresses) {
|
| + TestPersonalDataManager test_personal_data_manager;
|
| + AutofillProfile profile1(test::GetFullProfile());
|
| + AutofillProfile profile2(test::GetFullProfile2());
|
| +
|
| + // Force |profile1| to be shown first in the combobox.
|
| + profile1.set_use_count(100);
|
| + test_personal_data_manager.AddTestingProfile(&profile1);
|
| + test_personal_data_manager.AddTestingProfile(&profile2);
|
| +
|
| + AddressComboboxModel model(test_personal_data_manager, kAppLocale);
|
| + EXPECT_EQ(4, model.GetItemCount());
|
| + EXPECT_FALSE(model.IsItemSeparatorAt(0));
|
| + EXPECT_TRUE(model.IsItemSeparatorAt(1));
|
| + EXPECT_TRUE(model.GetItemIdentifierAt(0).empty());
|
| + EXPECT_TRUE(model.GetItemIdentifierAt(1).empty());
|
| + EXPECT_EQ(-1, model.GetIndexOfIdentifier("Anything"));
|
| + EXPECT_EQ(profile1.guid(), model.GetItemIdentifierAt(2));
|
| + EXPECT_EQ(profile2.guid(), model.GetItemIdentifierAt(3));
|
| + EXPECT_EQ(2, model.GetIndexOfIdentifier(profile1.guid()));
|
| + EXPECT_EQ(3, model.GetIndexOfIdentifier(profile2.guid()));
|
| +}
|
| +
|
| +TEST(AddressComboboxModelTest, AddAnAddress) {
|
| + TestPersonalDataManager test_personal_data_manager;
|
| + AutofillProfile profile1(test::GetFullProfile());
|
| + test_personal_data_manager.AddTestingProfile(&profile1);
|
| +
|
| + AddressComboboxModel model(test_personal_data_manager, kAppLocale);
|
| + EXPECT_EQ(3, model.GetItemCount());
|
| + EXPECT_EQ(profile1.guid(), model.GetItemIdentifierAt(2));
|
| + EXPECT_EQ(2, model.GetIndexOfIdentifier(profile1.guid()));
|
| +
|
| + AutofillProfile profile2(test::GetFullProfile2());
|
| + int new_profile_index = model.AddNewProfile(profile2);
|
| + EXPECT_EQ(3, new_profile_index);
|
| + EXPECT_EQ(4, model.GetItemCount());
|
| + EXPECT_EQ(profile2.guid(), model.GetItemIdentifierAt(3));
|
| + EXPECT_EQ(3, model.GetIndexOfIdentifier(profile2.guid()));
|
| +
|
| + // First profile shouldn't have changed, here the order is guaranteed.
|
| + EXPECT_EQ(profile1.guid(), model.GetItemIdentifierAt(2));
|
| + EXPECT_EQ(2, model.GetIndexOfIdentifier(profile1.guid()));
|
| +}
|
| +
|
| +} // namespace autofill
|
|
|