| 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);
|
| + 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]);
|
| +
|
| + 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.
|
| + 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
|
|
|