blob: e894219b953e7bba654463c6cbaabbf9142dfb82 [file] [log] [blame]
// Copyright 2021 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_assistant/browser/ukm_test_util.h"
#include <set>
namespace autofill_assistant {
std::vector<ukm::TestUkmRecorder::HumanReadableUkmEntry>
GetUkmTriggerScriptShownToUsers(ukm::TestAutoSetUkmRecorder& ukm_recorder) {
return ukm_recorder.GetEntries(kTriggerScriptShownToUserEntry,
{kTriggerScriptShownToUser, kTriggerUiType});
}
std::vector<ukm::TestUkmRecorder::HumanReadableUkmEntry>
GetUkmTriggerScriptStarted(ukm::TestAutoSetUkmRecorder& ukm_recorder) {
return ukm_recorder.GetEntries(kTriggerScriptStartedEntry,
{kTriggerScriptStarted});
}
std::vector<ukm::TestUkmRecorder::HumanReadableUkmEntry>
GetUkmTriggerScriptFinished(ukm::TestAutoSetUkmRecorder& ukm_recorder) {
return ukm_recorder.GetEntries(kTriggerScriptFinishedEntry,
{kTriggerScriptFinished, kTriggerUiType});
}
std::vector<ukm::TestUkmRecorder::HumanReadableUkmEntry>
GetUkmTriggerScriptOnboarding(ukm::TestAutoSetUkmRecorder& ukm_recorder) {
return ukm_recorder.GetEntries(kTriggerScriptOnboardingEntry,
{kTriggerScriptOnboarding, kTriggerUiType});
}
std::vector<ukm::TestUkmRecorder::HumanReadableUkmEntry>
GetUkmInChromeTriggering(ukm::TestAutoSetUkmRecorder& ukm_recorder) {
return ukm_recorder.GetEntries(kInChromeTriggeringEntry,
{kInChromeTriggerAction});
}
std::vector<ukm::TestUkmRecorder::HumanReadableUkmEntry>
GetUkmTriggerConditionEvaluationTime(
ukm::TestAutoSetUkmRecorder& ukm_recorder) {
return ukm_recorder.GetEntries(kAutofillAssistantTimingEntry,
{kTriggerConditionTimingMs});
}
std::vector<ukm::TestUkmRecorder::HumanReadableUkmEntry>
GetUkmCompleteContactProfilesCount(ukm::TestAutoSetUkmRecorder& ukm_recorder) {
return ukm_recorder.GetEntries(kAutofillAssistantCollectContact,
{kCompleteContactProfilesCount});
}
std::vector<ukm::TestUkmRecorder::HumanReadableUkmEntry>
GetUkmIncompleteContactProfilesCount(
ukm::TestAutoSetUkmRecorder& ukm_recorder) {
return ukm_recorder.GetEntries(kAutofillAssistantCollectContact,
{kIncompleteContactProfilesCount});
}
std::vector<ukm::TestUkmRecorder::HumanReadableUkmEntry>
GetUkmInitialContactFieldsStatus(ukm::TestAutoSetUkmRecorder& ukm_recorder) {
return ukm_recorder.GetEntries(kAutofillAssistantCollectContact,
{kInitialContactFieldsStatus});
}
std::vector<ukm::TestUkmRecorder::HumanReadableUkmEntry> GetUkmContactModified(
ukm::TestAutoSetUkmRecorder& ukm_recorder) {
return ukm_recorder.GetEntries(kAutofillAssistantCollectContact,
{kContactModified});
}
std::vector<ukm::TestUkmRecorder::HumanReadableUkmEntry>
GetUkmCompleteCreditCardsCount(ukm::TestAutoSetUkmRecorder& ukm_recorder) {
return ukm_recorder.GetEntries(kAutofillAssistantCollectCreditCard,
{kCompleteCreditCardsCount});
}
std::vector<ukm::TestUkmRecorder::HumanReadableUkmEntry>
GetUkmIncompleteCreditCardsCount(ukm::TestAutoSetUkmRecorder& ukm_recorder) {
return ukm_recorder.GetEntries(kAutofillAssistantCollectCreditCard,
{kIncompleteCreditCardsCount});
}
std::vector<ukm::TestUkmRecorder::HumanReadableUkmEntry>
GetUkmInitialCreditCardFieldsStatus(ukm::TestAutoSetUkmRecorder& ukm_recorder) {
return ukm_recorder.GetEntries(kAutofillAssistantCollectCreditCard,
{kInitialCreditCardFieldsStatus});
}
std::vector<ukm::TestUkmRecorder::HumanReadableUkmEntry>
GetUkmInitialBillingAddressFieldsStatus(
ukm::TestAutoSetUkmRecorder& ukm_recorder) {
return ukm_recorder.GetEntries(kAutofillAssistantCollectCreditCard,
{kInitialBillingAddressFieldsStatus});
}
std::vector<ukm::TestUkmRecorder::HumanReadableUkmEntry>
GetUkmCreditCardModified(ukm::TestAutoSetUkmRecorder& ukm_recorder) {
return ukm_recorder.GetEntries(kAutofillAssistantCollectCreditCard,
{kCreditCardModified});
}
std::vector<ukm::TestUkmRecorder::HumanReadableUkmEntry>
GetUkmCompleteShippingProfilesCount(ukm::TestAutoSetUkmRecorder& ukm_recorder) {
return ukm_recorder.GetEntries(kAutofillAssistantCollectShippingAddress,
{kCompleteShippingProfilesCount});
}
std::vector<ukm::TestUkmRecorder::HumanReadableUkmEntry>
GetUkmIncompleteShippingProfilesCount(
ukm::TestAutoSetUkmRecorder& ukm_recorder) {
return ukm_recorder.GetEntries(kAutofillAssistantCollectShippingAddress,
{kIncompleteShippingProfilesCount});
}
std::vector<ukm::TestUkmRecorder::HumanReadableUkmEntry>
GetUkmInitialShippingFieldsStatus(ukm::TestAutoSetUkmRecorder& ukm_recorder) {
return ukm_recorder.GetEntries(kAutofillAssistantCollectShippingAddress,
{kInitialShippingFieldsStatus});
}
std::vector<ukm::TestUkmRecorder::HumanReadableUkmEntry> GetUkmShippingModified(
ukm::TestAutoSetUkmRecorder& ukm_recorder) {
return ukm_recorder.GetEntries(kAutofillAssistantCollectShippingAddress,
{kShippingModified});
}
std::vector<ukm::TestUkmRecorder::HumanReadableUkmEntry>
GetUkmCollectUserDataResult(ukm::TestAutoSetUkmRecorder& ukm_recorder) {
return ukm_recorder.GetEntries(kAutofillAssistantCollectUserDataResult,
{kResult});
}
std::vector<ukm::TestUkmRecorder::HumanReadableUkmEntry> GetUkmTimeTakenMs(
ukm::TestAutoSetUkmRecorder& ukm_recorder) {
return ukm_recorder.GetEntries(kAutofillAssistantCollectUserDataResult,
{kTimeTakenMs});
}
std::vector<ukm::TestUkmRecorder::HumanReadableUkmEntry> ToHumanReadableMetrics(
const std::vector<std::pair<ukm::SourceId, std::vector<UkmEnumVariant>>>&
input) {
std::vector<ukm::TestUkmRecorder::HumanReadableUkmEntry> output;
std::transform(
input.begin(), input.end(), std::back_inserter(output),
[&](const auto& impression) {
ukm::TestUkmRecorder::HumanReadableUkmEntry transformed_impression;
transformed_impression.source_id = impression.first;
for (const auto& metric : impression.second) {
transformed_impression.metrics.emplace(
kUkmEnumMetricNames[metric.index()],
absl::visit(GenericConvertToInt64(), metric));
}
return transformed_impression;
});
return output;
}
ukm::TestUkmRecorder::HumanReadableUkmEntry ToHumanReadableEntry(
const ukm::SourceId& id,
const std::string& metric_identifier,
int64_t entry) {
ukm::TestUkmRecorder::HumanReadableUkmEntry impression;
impression.source_id = id;
impression.metrics.emplace(metric_identifier, entry);
return impression;
}
} // namespace autofill_assistant
namespace ukm {
std::ostream& operator<<(
std::ostream& out,
const ukm::TestUkmRecorder::HumanReadableUkmEntry& input) {
out << "source-id = " << input.source_id << ", metrics = [";
std::string deliminator;
for (const auto& metric : input.metrics) {
out << deliminator << metric.first << " = " << metric.second;
deliminator = ", ";
}
out << "]";
return out;
}
} // namespace ukm