Index: components/ukm/ukm_service_unittest.cc |
diff --git a/components/ukm/ukm_service_unittest.cc b/components/ukm/ukm_service_unittest.cc |
index cc694e1edfef27f0b622d2cdc820abacfe3bc327..f6b91c0dd1c76961cebb82d29ce4dadb27afcff1 100644 |
--- a/components/ukm/ukm_service_unittest.cc |
+++ b/components/ukm/ukm_service_unittest.cc |
@@ -41,6 +41,7 @@ class UkmServiceTest : public testing::Test { |
} |
Report GetPersistedReport() { |
+ EXPECT_GE(GetPersistedLogCount(), 1); |
metrics::PersistedLogs result_persisted_logs( |
base::MakeUnique<ukm::PersistedLogsMetricsImpl>(), &prefs_, |
prefs::kUkmPersistedLogs, |
@@ -60,6 +61,14 @@ class UkmServiceTest : public testing::Test { |
return report; |
} |
+ std::unique_ptr<UkmSource> MakeSource(std::string url, int paint_msec) { |
+ auto source = base::MakeUnique<UkmSource>(); |
+ source->set_committed_url(GURL(url)); |
+ source->set_first_contentful_paint( |
+ base::TimeDelta::FromMilliseconds(paint_msec)); |
+ return source; |
+ } |
+ |
protected: |
TestingPrefServiceSimple prefs_; |
metrics::TestMetricsServiceClient client_; |
@@ -80,6 +89,7 @@ TEST_F(UkmServiceTest, EnableDisableSchedule) { |
EXPECT_TRUE(task_runner_->HasPendingTask()); |
// Allow initialization to complete. |
task_runner_->RunUntilIdle(); |
+ service.EnableRecording(); |
service.EnableReporting(); |
EXPECT_TRUE(task_runner_->HasPendingTask()); |
service.DisableReporting(); |
@@ -92,11 +102,14 @@ TEST_F(UkmServiceTest, PersistAndPurge) { |
EXPECT_EQ(GetPersistedLogCount(), 0); |
service.Initialize(); |
task_runner_->RunUntilIdle(); |
+ service.EnableRecording(); |
service.EnableReporting(); |
+ service.RecordSource(MakeSource("https://google.com", 300)); |
// Should init, generate a log, and start an upload. |
task_runner_->RunPendingTasks(); |
EXPECT_TRUE(client_.uploader()->is_uploading()); |
// Flushes the generated log to disk and generates a new one. |
+ service.RecordSource(MakeSource("https://google.com", 300)); |
service.Flush(); |
EXPECT_EQ(GetPersistedLogCount(), 2); |
service.Purge(); |
@@ -108,13 +121,10 @@ TEST_F(UkmServiceTest, SourceSerialization) { |
EXPECT_EQ(GetPersistedLogCount(), 0); |
service.Initialize(); |
task_runner_->RunUntilIdle(); |
+ service.EnableRecording(); |
service.EnableReporting(); |
- std::unique_ptr<UkmSource> source = base::WrapUnique(new UkmSource()); |
- source->set_committed_url(GURL("https://google.com")); |
- source->set_first_contentful_paint(base::TimeDelta::FromMilliseconds(300)); |
- |
- service.RecordSource(std::move(source)); |
+ service.RecordSource(MakeSource("https://google.com", 300)); |
service.Flush(); |
EXPECT_EQ(GetPersistedLogCount(), 1); |
@@ -140,9 +150,10 @@ TEST_F(UkmServiceTest, MetricsProviderTest) { |
EXPECT_FALSE(provider->provide_system_profile_metrics_called()); |
task_runner_->RunUntilIdle(); |
+ service.EnableRecording(); |
service.EnableReporting(); |
- service.RecordSource(base::WrapUnique(new UkmSource())); |
+ service.RecordSource(MakeSource("https://google.com", 300)); |
service.Flush(); |
EXPECT_EQ(GetPersistedLogCount(), 1); |
@@ -153,4 +164,28 @@ TEST_F(UkmServiceTest, MetricsProviderTest) { |
EXPECT_TRUE(provider->provide_system_profile_metrics_called()); |
} |
+TEST_F(UkmServiceTest, LogsUploadedWithSourcesOnly) { |
+ UkmService service(&prefs_, &client_); |
+ EXPECT_EQ(GetPersistedLogCount(), 0); |
+ service.Initialize(); |
+ task_runner_->RunUntilIdle(); |
+ service.EnableRecording(); |
+ service.EnableReporting(); |
+ |
+ EXPECT_TRUE(task_runner_->HasPendingTask()); |
+ // Neither rotation or Flush should generate logs |
+ task_runner_->RunPendingTasks(); |
+ service.Flush(); |
+ EXPECT_EQ(GetPersistedLogCount(), 0); |
+ |
+ service.RecordSource(MakeSource("https://google.com", 300)); |
+ // Includes a Source, so will persist. |
+ service.Flush(); |
+ EXPECT_EQ(GetPersistedLogCount(), 1); |
+ |
+ // Current log has no Sources. |
+ service.Flush(); |
+ EXPECT_EQ(GetPersistedLogCount(), 1); |
+} |
+ |
} // namespace ukm |