Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(412)

Unified Diff: components/ukm/ukm_service_unittest.cc

Issue 2736683003: Handle the case where Purge is called while upload is in progress. (Closed)
Patch Set: Created 3 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: components/ukm/ukm_service_unittest.cc
diff --git a/components/ukm/ukm_service_unittest.cc b/components/ukm/ukm_service_unittest.cc
index be8090c2724d565c99244ac3a32f7e02d4cc14bd..120657fa74d1081106e1ea880b3802b936c84f89 100644
--- a/components/ukm/ukm_service_unittest.cc
+++ b/components/ukm/ukm_service_unittest.cc
@@ -188,4 +188,23 @@ TEST_F(UkmServiceTest, LogsUploadedWithSourcesOnly) {
EXPECT_EQ(GetPersistedLogCount(), 1);
}
+TEST_F(UkmServiceTest, PurgeMidUpload) {
+ UkmService service(&prefs_, &client_);
+ 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());
+ // Purge should delete all logs, including the one being sent.
+ service.Purge();
+ // Upload succeeds after logs was deleted.
+ client_.uploader()->CompleteUpload(200);
+ EXPECT_EQ(GetPersistedLogCount(), 0);
+ EXPECT_FALSE(client_.uploader()->is_uploading());
+}
+
} // namespace ukm

Powered by Google App Engine
This is Rietveld 408576698