| Index: components/offline_pages/offline_page_model_unittest.cc
|
| diff --git a/components/offline_pages/offline_page_model_unittest.cc b/components/offline_pages/offline_page_model_unittest.cc
|
| index f794a176529534efc906a7ba894ccaa8e375a5ab..a329dea59cc7b6aa22acc6ddb48b01aeab95b4ad 100644
|
| --- a/components/offline_pages/offline_page_model_unittest.cc
|
| +++ b/components/offline_pages/offline_page_model_unittest.cc
|
| @@ -51,6 +51,11 @@ const ClientId kTestPageBookmarkId2(BOOKMARK_NAMESPACE, "5678");
|
| const ClientId kTestPageBookmarkId3(BOOKMARK_NAMESPACE, "42");
|
| const int64_t kTestFileSize = 876543LL;
|
|
|
| +bool URLSpecContains(std::string contains_value, const GURL& url) {
|
| + std::string spec = url.spec();
|
| + return spec.find(contains_value) != std::string::npos;
|
| +}
|
| +
|
| } // namespace
|
|
|
| class OfflinePageModelTest
|
| @@ -584,10 +589,64 @@ TEST_F(OfflinePageModelTest, DeletePageSuccessful) {
|
| EXPECT_EQ(0u, store->GetAllPages().size());
|
| }
|
|
|
| +TEST_F(OfflinePageModelTest, DeletePageByPredicate) {
|
| + OfflinePageTestStore* store = GetStore();
|
| +
|
| + // Save one page.
|
| + SavePage(kTestUrl, kTestPageBookmarkId1);
|
| + int64_t offline1 = last_save_offline_id();
|
| + EXPECT_EQ(SavePageResult::SUCCESS, last_save_result());
|
| + EXPECT_EQ(1u, store->GetAllPages().size());
|
| +
|
| + ResetResults();
|
| +
|
| + // Save another page.
|
| + SavePage(kTestUrl2, kTestPageBookmarkId2);
|
| + int64_t offline2 = last_save_offline_id();
|
| + EXPECT_EQ(SavePageResult::SUCCESS, last_save_result());
|
| + EXPECT_EQ(2u, store->GetAllPages().size());
|
| +
|
| + ResetResults();
|
| +
|
| + // Delete the second page.
|
| + model()->DeletePagesByURLPredicate(
|
| + base::Bind(&URLSpecContains, "page.com"),
|
| + base::Bind(&OfflinePageModelTest::OnDeletePageDone, AsWeakPtr()));
|
| +
|
| + PumpLoop();
|
| +
|
| + EXPECT_EQ(last_deleted_offline_id(), offline2);
|
| + EXPECT_EQ(last_deleted_client_id(), kTestPageBookmarkId2);
|
| + EXPECT_EQ(DeletePageResult::SUCCESS, last_delete_result());
|
| + ASSERT_EQ(1u, store->GetAllPages().size());
|
| + EXPECT_EQ(kTestUrl, store->GetAllPages()[0].url);
|
| +
|
| + ResetResults();
|
| +
|
| + // Delete the first page.
|
| + model()->DeletePagesByURLPredicate(
|
| + base::Bind(&URLSpecContains, "example.com"),
|
| + base::Bind(&OfflinePageModelTest::OnDeletePageDone, AsWeakPtr()));
|
| +
|
| + PumpLoop();
|
| +
|
| + EXPECT_EQ(last_deleted_offline_id(), offline1);
|
| + EXPECT_EQ(last_deleted_client_id(), kTestPageBookmarkId1);
|
| + EXPECT_EQ(DeletePageResult::SUCCESS, last_delete_result());
|
| + EXPECT_EQ(0u, store->GetAllPages().size());
|
| +}
|
| +
|
| TEST_F(OfflinePageModelTest, DeletePageNotFound) {
|
| model()->DeletePageByOfflineId(
|
| 1234LL, base::Bind(&OfflinePageModelTest::OnDeletePageDone, AsWeakPtr()));
|
| EXPECT_EQ(DeletePageResult::NOT_FOUND, last_delete_result());
|
| +
|
| + ResetResults();
|
| +
|
| + model()->DeletePagesByURLPredicate(
|
| + base::Bind(&URLSpecContains, "page.com"),
|
| + base::Bind(&OfflinePageModelTest::OnDeletePageDone, AsWeakPtr()));
|
| + EXPECT_EQ(DeletePageResult::NOT_FOUND, last_delete_result());
|
| }
|
|
|
| TEST_F(OfflinePageModelTest, DeletePageStoreFailureOnRemove) {
|
|
|