Index: chrome/browser/android/offline_pages/background_loader_offliner_unittest.cc |
diff --git a/chrome/browser/android/offline_pages/background_loader_offliner_unittest.cc b/chrome/browser/android/offline_pages/background_loader_offliner_unittest.cc |
index b526e2160c67a21ee8c2c875e8504b88050a04a5..96b8a7c4b52296230e63a93efe372df99e953147 100644 |
--- a/chrome/browser/android/offline_pages/background_loader_offliner_unittest.cc |
+++ b/chrome/browser/android/offline_pages/background_loader_offliner_unittest.cc |
@@ -368,4 +368,23 @@ TEST_F(BackgroundLoaderOfflinerTest, FailsOnErrorPage) { |
EXPECT_EQ(Offliner::RequestStatus::LOADING_FAILED_NO_RETRY, request_status()); |
} |
+TEST_F(BackgroundLoaderOfflinerTest, OnlySavesOnceOnMultipleLoads) { |
+ base::Time creation_time = base::Time::Now(); |
+ SavePageRequest request(kRequestId, kHttpUrl, kClientId, creation_time, |
+ kUserRequested); |
+ EXPECT_TRUE(offliner()->LoadAndSave(request, callback())); |
+ // First load |
+ CompleteLoading(); |
+ // Second load |
+ offliner()->DidStopLoading(); |
+ PumpLoop(); |
+ model()->CompleteSavingAsSuccess(); |
+ PumpLoop(); |
+ |
+ EXPECT_TRUE(completion_callback_called()); |
+ EXPECT_EQ(Offliner::RequestStatus::SAVED, request_status()); |
+ EXPECT_FALSE(offliner()->is_loading()); |
+ EXPECT_FALSE(SaveInProgress()); |
+} |
+ |
} // namespace offline_pages |