Index: net/reporting/reporting_test_util.cc |
diff --git a/net/reporting/reporting_test_util.cc b/net/reporting/reporting_test_util.cc |
index f1bfabab703726668323bb7dc66e5eedee85fe1d..8a7dbd06f4d99d0d4714d274f2feedc927c380e0 100644 |
--- a/net/reporting/reporting_test_util.cc |
+++ b/net/reporting/reporting_test_util.cc |
@@ -14,11 +14,13 @@ |
#include "base/test/simple_test_clock.h" |
#include "base/test/simple_test_tick_clock.h" |
#include "base/timer/mock_timer.h" |
+#include "base/timer/timer.h" |
#include "net/reporting/reporting_cache.h" |
#include "net/reporting/reporting_client.h" |
#include "net/reporting/reporting_context.h" |
#include "net/reporting/reporting_delegate.h" |
#include "net/reporting/reporting_garbage_collector.h" |
+#include "net/reporting/reporting_persister.h" |
#include "net/reporting/reporting_policy.h" |
#include "net/reporting/reporting_uploader.h" |
#include "testing/gtest/include/gtest/gtest.h" |
@@ -122,14 +124,18 @@ TestReportingContext::TestReportingContext(const ReportingPolicy& policy) |
base::MakeUnique<base::SimpleTestClock>(), |
base::MakeUnique<base::SimpleTestTickClock>(), |
base::MakeUnique<TestReportingUploader>()), |
+ persistence_timer_(new base::MockTimer(/* retain_user_task= */ false, |
+ /* is_repeating= */ false)), |
garbage_collection_timer_( |
new base::MockTimer(/* retain_user_task= */ false, |
/* is_repeating= */ false)) { |
+ persister()->SetTimerForTesting(base::WrapUnique(persistence_timer_)); |
garbage_collector()->SetTimerForTesting( |
base::WrapUnique(garbage_collection_timer_)); |
} |
TestReportingContext::~TestReportingContext() { |
+ persistence_timer_ = nullptr; |
garbage_collection_timer_ = nullptr; |
} |
@@ -137,13 +143,35 @@ ReportingTestBase::ReportingTestBase() { |
// For tests, disable jitter. |
ReportingPolicy policy; |
policy.endpoint_backoff_policy.jitter_factor = 0.0; |
- UsePolicy(policy); |
+ |
+ CreateAndInitializeContext(policy, std::unique_ptr<const base::Value>(), |
+ base::Time::Now(), base::TimeTicks::Now()); |
} |
ReportingTestBase::~ReportingTestBase() {} |
-void ReportingTestBase::UsePolicy(const ReportingPolicy& policy) { |
+void ReportingTestBase::UsePolicy(const ReportingPolicy& new_policy) { |
+ CreateAndInitializeContext(new_policy, delegate()->GetPersistedData(), |
+ clock()->Now(), tick_clock()->NowTicks()); |
+} |
+ |
+void ReportingTestBase::SimulateRestart(base::TimeDelta delta, |
+ base::TimeDelta delta_ticks) { |
+ CreateAndInitializeContext(policy(), delegate()->GetPersistedData(), |
+ clock()->Now() + delta, |
+ tick_clock()->NowTicks() + delta_ticks); |
+} |
+ |
+void ReportingTestBase::CreateAndInitializeContext( |
+ const ReportingPolicy& policy, |
+ std::unique_ptr<const base::Value> persisted_data, |
+ base::Time now, |
+ base::TimeTicks now_ticks) { |
context_ = base::MakeUnique<TestReportingContext>(policy); |
+ delegate()->PersistData(std::move(persisted_data)); |
+ clock()->SetNow(now); |
+ tick_clock()->SetNowTicks(now_ticks); |
+ context_->Initialize(); |
} |
base::TimeTicks ReportingTestBase::yesterday() { |