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 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144
|
// Copyright 2020 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#include "content/browser/attribution_reporting/test/mock_attribution_manager.h"
#include <stdint.h>
#include <memory>
#include <optional>
#include <utility>
#include <vector>
#include "base/check.h"
#include "base/observer_list.h"
#include "base/time/time.h"
#include "base/values.h"
#include "components/attribution_reporting/os_registration.h"
#include "content/browser/attribution_reporting/attribution_data_host_manager.h"
#include "content/browser/attribution_reporting/attribution_observer.h"
#include "content/browser/attribution_reporting/attribution_reporting.mojom-forward.h"
#include "content/browser/attribution_reporting/os_registration.h"
#include "content/browser/attribution_reporting/storable_source.h"
namespace content {
MockAttributionManager::MockAttributionManager() = default;
MockAttributionManager::~MockAttributionManager() = default;
void MockAttributionManager::AddObserver(AttributionObserver* observer) {
observers_.AddObserver(observer);
if (on_observer_registered_) {
std::move(on_observer_registered_).Run();
}
observer->OnDebugModeChanged(/*debug_mode=*/false);
}
void MockAttributionManager::RemoveObserver(AttributionObserver* observer) {
observers_.RemoveObserver(observer);
}
AttributionDataHostManager* MockAttributionManager::GetDataHostManager() {
DCHECK(data_host_manager_);
return data_host_manager_.get();
}
void MockAttributionManager::NotifySourcesChanged() {
for (auto& observer : observers_) {
observer.OnSourcesChanged();
}
}
void MockAttributionManager::NotifyReportsChanged() {
for (auto& observer : observers_) {
observer.OnReportsChanged();
}
}
void MockAttributionManager::NotifySourceHandled(
const StorableSource& source,
StorableSource::Result result,
std::optional<uint64_t> cleared_debug_key) {
base::Time now = base::Time::Now();
for (auto& observer : observers_) {
observer.OnSourceHandled(source, now, cleared_debug_key, result);
}
}
void MockAttributionManager::NotifyReportSent(const AttributionReport& report,
bool is_debug_report,
const SendResult& info) {
for (auto& observer : observers_) {
observer.OnReportSent(report, is_debug_report, info);
}
}
void MockAttributionManager::NotifyTriggerHandled(
const CreateReportResult& result,
std::optional<uint64_t> cleared_debug_key) {
for (auto& observer : observers_) {
observer.OnTriggerHandled(cleared_debug_key, result);
}
}
void MockAttributionManager::NotifyDebugReportSent(
const AttributionDebugReport& report,
const int status,
const base::Time time) {
for (auto& observer : observers_) {
observer.OnDebugReportSent(report, status, time);
}
}
void MockAttributionManager::NotifyAggregatableDebugReportSent(
const AggregatableDebugReport& report,
base::ValueView report_body,
attribution_reporting::mojom::ProcessAggregatableDebugReportResult
process_result,
const SendAggregatableDebugReportResult& send_result) {
for (auto& observer : observers_) {
observer.OnAggregatableDebugReportSent(report, report_body, process_result,
send_result);
}
}
void MockAttributionManager::NotifyOsRegistration(
const OsRegistration& registration,
bool is_debug_key_allowed,
attribution_reporting::mojom::OsRegistrationResult result) {
base::Time now = base::Time::Now();
for (const attribution_reporting::OsRegistrationItem& item :
registration.registration_items) {
for (auto& observer : observers_) {
observer.OnOsRegistration(now, item, registration.top_level_origin,
registration.GetType(), is_debug_key_allowed,
result);
}
}
}
void MockAttributionManager::NotifyDebugModeChanged(bool debug_mode) {
for (auto& observer : observers_) {
observer.OnDebugModeChanged(debug_mode);
}
}
void MockAttributionManager::SetDataHostManager(
std::unique_ptr<AttributionDataHostManager> manager) {
DCHECK(manager);
data_host_manager_ = std::move(manager);
}
void MockAttributionManager::SetOnObserverRegistered(base::OnceClosure done) {
CHECK(!on_observer_registered_);
if (!observers_.empty()) {
std::move(done).Run();
return;
}
on_observer_registered_ = std::move(done);
}
} // namespace content
|