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 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91
|
// Copyright 2024 The Chromium Authors
// 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/suggestions/suggestion_test_helpers.h"
namespace autofill {
using ::testing::AllOf;
using ::testing::Field;
using ::testing::Matcher;
namespace {
Matcher<Suggestion::Text> EqualsTextPrimary(const bool is_primary) {
return Field(&Suggestion::Text::is_primary,
Suggestion::Text::IsPrimary(is_primary));
}
} // namespace
Matcher<Suggestion> EqualsSuggestion(SuggestionType id) {
return Field(&Suggestion::type, id);
}
Matcher<Suggestion> EqualsSuggestion(SuggestionType id,
const std::u16string& main_text) {
return AllOf(
Field(&Suggestion::type, id),
Field(&Suggestion::main_text,
Suggestion::Text(main_text, Suggestion::Text::IsPrimary(true))));
}
Matcher<Suggestion> EqualsSuggestion(SuggestionType id,
const Suggestion::Payload& payload) {
return AllOf(EqualsSuggestion(id), Field(&Suggestion::payload, payload));
}
Matcher<Suggestion> EqualsSuggestion(SuggestionType id,
const std::u16string& main_text,
Suggestion::Icon icon) {
return AllOf(EqualsSuggestion(id, main_text), Field(&Suggestion::icon, icon));
}
Matcher<Suggestion> EqualsSuggestion(
SuggestionType type,
const std::u16string& main_text,
Suggestion::Icon icon,
const std::vector<std::vector<Suggestion::Text>>& labels) {
return AllOf(EqualsSuggestion(type, main_text, icon),
Field(&Suggestion::labels, labels));
}
Matcher<Suggestion> EqualsSuggestion(SuggestionType id,
const std::u16string& main_text,
Suggestion::Icon icon,
const Suggestion::Payload& payload) {
return AllOf(EqualsSuggestion(id, main_text, icon),
Field(&Suggestion::payload, payload));
}
Matcher<Suggestion> EqualsSuggestion(
SuggestionType type,
const std::u16string& main_text,
const bool is_main_text_primary,
Suggestion::Icon icon,
const std::vector<std::vector<Suggestion::Text>>& labels,
const Suggestion::Payload& payload) {
return AllOf(
EqualsSuggestion(type, main_text, icon),
Field(&Suggestion::labels, labels), Field(&Suggestion::payload, payload),
Field(&Suggestion::main_text, EqualsTextPrimary(is_main_text_primary)));
}
Matcher<Suggestion> HasIcon(Suggestion::Icon icon) {
return Field(&Suggestion::icon, icon);
}
Matcher<Suggestion> HasTrailingIcon(Suggestion::Icon icon) {
return Field(&Suggestion::trailing_icon, icon);
}
Matcher<Suggestion> HasIphFeature(
raw_ptr<const base::Feature> feature_for_iph) {
return Field(&Suggestion::iph_metadata,
Field(&Suggestion::IPHMetadata::feature, feature_for_iph));
}
Matcher<Suggestion> HasNoIphFeature() {
return Field(&Suggestion::iph_metadata,
Field(&Suggestion::IPHMetadata::feature, nullptr));
}
} // namespace autofill
|