| OLD | NEW |
| 1 // Copyright 2016 The Chromium Authors. All rights reserved. | 1 // Copyright 2016 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include "base/bind.h" | 5 #include "base/bind.h" |
| 6 #include "base/memory/ptr_util.h" | 6 #include "base/memory/ptr_util.h" |
| 7 #import "base/test/ios/wait_util.h" | 7 #import "base/test/ios/wait_util.h" |
| 8 #include "ios/chrome/browser/reading_list/reading_list_model_impl.h" | 8 #include "components/reading_list/reading_list_model_impl.h" |
| 9 #include "ios/chrome/browser/reading_list/reading_list_model_storage.h" | 9 #include "components/reading_list/reading_list_model_storage.h" |
| 10 #include "testing/gtest/include/gtest/gtest.h" | 10 #include "testing/gtest/include/gtest/gtest.h" |
| 11 | 11 |
| 12 namespace { | 12 namespace { |
| 13 | 13 |
| 14 const GURL callback_url("http://example.com"); | 14 const GURL callback_url("http://example.com"); |
| 15 const std::string callback_title("test title"); | 15 const std::string callback_title("test title"); |
| 16 | 16 |
| 17 class TestReadingListStorageObserver { | 17 class TestReadingListStorageObserver { |
| 18 public: | 18 public: |
| 19 virtual void ReadingListDidSaveEntry() = 0; | 19 virtual void ReadingListDidSaveEntry() = 0; |
| (...skipping 284 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 304 const ReadingListEntry* local_entry = | 304 const ReadingListEntry* local_entry = |
| 305 model_->GetEntryFromURL(GURL("http://example.com"), nullptr); | 305 model_->GetEntryFromURL(GURL("http://example.com"), nullptr); |
| 306 int64_t local_update_time = local_entry->UpdateTime(); | 306 int64_t local_update_time = local_entry->UpdateTime(); |
| 307 | 307 |
| 308 base::test::ios::SpinRunLoopWithMinDelay( | 308 base::test::ios::SpinRunLoopWithMinDelay( |
| 309 base::TimeDelta::FromMilliseconds(10)); | 309 base::TimeDelta::FromMilliseconds(10)); |
| 310 auto sync_entry = | 310 auto sync_entry = |
| 311 base::MakeUnique<ReadingListEntry>(GURL("http://example.com"), "sample"); | 311 base::MakeUnique<ReadingListEntry>(GURL("http://example.com"), "sample"); |
| 312 ASSERT_GT(sync_entry->UpdateTime(), local_update_time); | 312 ASSERT_GT(sync_entry->UpdateTime(), local_update_time); |
| 313 int64_t sync_update_time = sync_entry->UpdateTime(); | 313 int64_t sync_update_time = sync_entry->UpdateTime(); |
| 314 EXPECT_FALSE(sync_entry->DistilledURL().is_valid()); | 314 EXPECT_TRUE(sync_entry->DistilledPath().empty()); |
| 315 | 315 |
| 316 EXPECT_EQ(model_->unread_size(), 1u); | 316 EXPECT_EQ(model_->unread_size(), 1u); |
| 317 EXPECT_EQ(model_->read_size(), 0u); | 317 EXPECT_EQ(model_->read_size(), 0u); |
| 318 | 318 |
| 319 ReadingListEntry* merged_entry = | 319 ReadingListEntry* merged_entry = |
| 320 model_->SyncMergeEntry(std::move(sync_entry), true); | 320 model_->SyncMergeEntry(std::move(sync_entry), true); |
| 321 EXPECT_EQ(model_->unread_size(), 0u); | 321 EXPECT_EQ(model_->unread_size(), 0u); |
| 322 EXPECT_EQ(model_->read_size(), 1u); | 322 EXPECT_EQ(model_->read_size(), 1u); |
| 323 EXPECT_EQ(merged_entry->DistilledPath(), | 323 EXPECT_EQ(merged_entry->DistilledPath(), |
| 324 base::FilePath("distilled/page.html")); | 324 base::FilePath("distilled/page.html")); |
| (...skipping 220 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 545 TEST_F(ReadingListModelTest, UpdateReadDistilledPath) { | 545 TEST_F(ReadingListModelTest, UpdateReadDistilledPath) { |
| 546 const GURL gurl("http://example.com"); | 546 const GURL gurl("http://example.com"); |
| 547 model_->AddEntry(gurl, "sample"); | 547 model_->AddEntry(gurl, "sample"); |
| 548 model_->MarkReadByURL(gurl); | 548 model_->MarkReadByURL(gurl); |
| 549 const ReadingListEntry& entry = model_->GetReadEntryAtIndex(0); | 549 const ReadingListEntry& entry = model_->GetReadEntryAtIndex(0); |
| 550 ClearCounts(); | 550 ClearCounts(); |
| 551 | 551 |
| 552 model_->SetEntryDistilledPath(gurl, base::FilePath("distilled/page.html")); | 552 model_->SetEntryDistilledPath(gurl, base::FilePath("distilled/page.html")); |
| 553 AssertObserverCount(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1); | 553 AssertObserverCount(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1); |
| 554 EXPECT_EQ(ReadingListEntry::PROCESSED, entry.DistilledState()); | 554 EXPECT_EQ(ReadingListEntry::PROCESSED, entry.DistilledState()); |
| 555 EXPECT_EQ(GURL("chrome://offline/distilled/page.html"), entry.DistilledURL()); | 555 EXPECT_EQ(base::FilePath("distilled/page.html"), entry.DistilledPath()); |
| 556 } | 556 } |
| 557 | 557 |
| 558 // Tests that the callback is called when the entry is unread. | 558 // Tests that the callback is called when the entry is unread. |
| 559 TEST_F(ReadingListModelTest, CallbackEntryURLUnread) { | 559 TEST_F(ReadingListModelTest, CallbackEntryURLUnread) { |
| 560 // Setup. | 560 // Setup. |
| 561 model_->AddEntry(callback_url, callback_title); | 561 model_->AddEntry(callback_url, callback_title); |
| 562 | 562 |
| 563 ASSERT_EQ(0UL, model_->read_size()); | 563 ASSERT_EQ(0UL, model_->read_size()); |
| 564 ASSERT_EQ(1UL, model_->unread_size()); | 564 ASSERT_EQ(1UL, model_->unread_size()); |
| 565 | 565 |
| (...skipping 44 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 610 } | 610 } |
| 611 | 611 |
| 612 // Tests that ReadingListModel calls CallbackModelBeingDeleted when destroyed. | 612 // Tests that ReadingListModel calls CallbackModelBeingDeleted when destroyed. |
| 613 TEST_F(ReadingListModelTest, CallbackModelBeingDeleted) { | 613 TEST_F(ReadingListModelTest, CallbackModelBeingDeleted) { |
| 614 AssertObserverCount(1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); | 614 AssertObserverCount(1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); |
| 615 model_.reset(); | 615 model_.reset(); |
| 616 AssertObserverCount(1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0); | 616 AssertObserverCount(1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0); |
| 617 } | 617 } |
| 618 | 618 |
| 619 } // namespace | 619 } // namespace |
| OLD | NEW |