1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66
|
// Copyright 2023 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#include "chrome/browser/sync/test/integration/contact_info_helper.h"
#include "chrome/browser/autofill/personal_data_manager_factory.h"
#include "components/autofill/core/browser/data_manager/addresses/address_data_manager.h"
#include "components/autofill/core/browser/data_manager/personal_data_manager.h"
#include "components/autofill/core/browser/data_model/addresses/autofill_profile_test_api.h"
#include "components/autofill/core/browser/test_utils/autofill_test_utils.h"
#include "testing/gmock/include/gmock/gmock.h"
namespace contact_info_helper {
namespace {
using autofill::AutofillProfile;
} // namespace
AutofillProfile BuildTestAccountProfile() {
AutofillProfile profile = autofill::test::GetFullProfile();
// The CONTACT_INFO data type is only concerned with kAccount profiles.
// kLocalOrSyncable profiles are handled by the AUTOFILL_PROFILE type.
test_api(profile).set_record_type(AutofillProfile::RecordType::kAccount);
return profile;
}
autofill::AddressDataManager* GetAddressDataManager(Profile* profile) {
autofill::PersonalDataManager* pdm = GetPersonalDataManager(profile);
return pdm ? &pdm->address_data_manager() : nullptr;
}
autofill::PersonalDataManager* GetPersonalDataManager(Profile* profile) {
return autofill::PersonalDataManagerFactory::GetForBrowserContext(profile);
}
AddressDataManagerProfileChecker::AddressDataManagerProfileChecker(
autofill::AddressDataManager* adm,
const testing::Matcher<std::vector<AutofillProfile>>& matcher)
: adm_(adm), matcher_(matcher) {
adm_->AddObserver(this);
}
AddressDataManagerProfileChecker::~AddressDataManagerProfileChecker() {
adm_->RemoveObserver(this);
}
bool AddressDataManagerProfileChecker::IsExitConditionSatisfied(
std::ostream* os) {
std::vector<AutofillProfile> profiles;
for (const AutofillProfile* profile : adm_->GetProfiles()) {
profiles.push_back(*profile);
}
testing::StringMatchResultListener listener;
bool matches = testing::ExplainMatchResult(matcher_, profiles, &listener);
*os << listener.str();
return matches;
}
void AddressDataManagerProfileChecker::OnAddressDataChanged() {
CheckExitCondition();
}
} // namespace contact_info_helper
|