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

Unified Diff: content/browser/download/parallel_download_utils_unittest.cc

Issue 2737033002: Update the received slices vector when stream is written to disk (Closed)
Patch Set: fix unit test 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: content/browser/download/parallel_download_utils_unittest.cc
diff --git a/content/browser/download/parallel_download_utils_unittest.cc b/content/browser/download/parallel_download_utils_unittest.cc
index f6c52a9e38aa4fcf5b5af50000ad280e2efa3472..e978a5725614175408aeb1a66ebf15a96b2410a0 100644
--- a/content/browser/download/parallel_download_utils_unittest.cc
+++ b/content/browser/download/parallel_download_utils_unittest.cc
@@ -55,4 +55,39 @@ TEST(ParallelDownloadUtilsTest, FindSlicesToDownload) {
slices_to_download[1].received_bytes);
}
+TEST(ParallelDownloadUtilsTest, AddOrMergeReceivedSliceIntoSortedArray) {
+ std::vector<DownloadItem::ReceivedSlice> slices;
+ DownloadItem::ReceivedSlice slice1(500, 500);
+ EXPECT_EQ(0u, AddOrMergeReceivedSliceIntoSortedArray(slice1, slices));
+ EXPECT_EQ(1u, slices.size());
+ EXPECT_EQ(slice1, slices[0]);
+
+ // Adding a slice that can be merged with existing slice.
+ DownloadItem::ReceivedSlice slice2(1000, 400);
+ EXPECT_EQ(0u, AddOrMergeReceivedSliceIntoSortedArray(slice2, slices));
+ EXPECT_EQ(1u, slices.size());
+ EXPECT_EQ(500, slices[0].offset);
David Trainor- moved to gerrit 2017/03/09 17:44:03 EXPECT_EQ(slice1, slices[0])?
qinmin 2017/03/09 21:44:58 No, they are not equal. slice1 is (500, 1000), sli
David Trainor- moved to gerrit 2017/03/14 15:07:31 Ah yeah thanks! I forgot the merge somehow :D.
+ EXPECT_EQ(900, slices[0].received_bytes);
+
+ DownloadItem::ReceivedSlice slice3(0, 50);
+ EXPECT_EQ(0u, AddOrMergeReceivedSliceIntoSortedArray(slice3, slices));
+ EXPECT_EQ(2u, slices.size());
+ EXPECT_EQ(slice3, slices[0]);
David Trainor- moved to gerrit 2017/03/09 17:44:02 EXPECT_EQ(slice1, slices[1])?
qinmin 2017/03/09 21:44:58 same as above
+
+ DownloadItem::ReceivedSlice slice4(100, 50);
+ EXPECT_EQ(1u, AddOrMergeReceivedSliceIntoSortedArray(slice4, slices));
+ EXPECT_EQ(3u, slices.size());
+ EXPECT_EQ(slice3, slices[0]);
+ EXPECT_EQ(slice4, slices[1]);
+
+ // A new slice can only merge with a slice in front of it, not behind it.
David Trainor- moved to gerrit 2017/03/09 17:44:02 Is the comment flipped?
qinmin 2017/03/09 21:44:58 no, this is correct. A new slice (50, 100) can on
David Trainor- moved to gerrit 2017/03/14 15:07:31 I think the wording regarding in front of and behi
qinmin 2017/03/14 18:32:39 Done.
+ DownloadItem::ReceivedSlice slice5(50, 50);
+ EXPECT_EQ(0u, AddOrMergeReceivedSliceIntoSortedArray(slice5, slices));
+ EXPECT_EQ(3u, slices.size());
+ EXPECT_EQ(0, slices[0].offset);
+ EXPECT_EQ(100, slices[0].received_bytes);
+ EXPECT_EQ(slice4, slices[1]);
+
+}
+
} // namespace content

Powered by Google App Engine
This is Rietveld 408576698