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

Unified Diff: components/reading_list/ios/reading_list_model_unittest.mm

Issue 2525663002: Refactor Reading List Model to use URL as key. (Closed)
Patch Set: fix Created 4 years 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: components/reading_list/ios/reading_list_model_unittest.mm
diff --git a/components/reading_list/ios/reading_list_model_unittest.mm b/components/reading_list/ios/reading_list_model_unittest.mm
index d56e3248ae5aebe0c3ab62ec7a849eb60d465ce6..970bcc46f3e379e30647b06cb71f6857beeaf679 100644
--- a/components/reading_list/ios/reading_list_model_unittest.mm
+++ b/components/reading_list/ios/reading_list_model_unittest.mm
@@ -9,6 +9,7 @@
#import "base/test/ios/wait_util.h"
#include "components/reading_list/ios/reading_list_model_impl.h"
#include "components/reading_list/ios/reading_list_model_storage.h"
+#include "components/reading_list/ios/reading_list_store_delegate.h"
#include "testing/gtest/include/gtest/gtest.h"
namespace {
@@ -25,47 +26,61 @@ class TestReadingListStorageObserver {
class TestReadingListStorage : public ReadingListModelStorage {
public:
TestReadingListStorage(TestReadingListStorageObserver* observer)
- : read_(new std::vector<ReadingListEntry>()),
- unread_(new std::vector<ReadingListEntry>()),
+ : entries_(new ReadingListStoreDelegate::ReadingListEntries()),
observer_(observer) {}
void AddSampleEntries() {
// Adds timer and interlace read/unread entry creation to avoid having two
// entries with the same creation timestamp.
ReadingListEntry unread_a(GURL("http://unread_a.com"), "unread_a");
+ entries_->insert(
+ std::make_pair(GURL("http://unread_a.com"), std::move(unread_a)));
base::test::ios::SpinRunLoopWithMinDelay(
base::TimeDelta::FromMilliseconds(5));
+
ReadingListEntry read_a(GURL("http://read_a.com"), "read_a");
+ read_a.SetRead(true);
+ entries_->insert(
+ std::make_pair(GURL("http://read_a.com"), std::move(read_a)));
base::test::ios::SpinRunLoopWithMinDelay(
base::TimeDelta::FromMilliseconds(5));
+
ReadingListEntry unread_b(GURL("http://unread_b.com"), "unread_b");
+ entries_->insert(
+ std::make_pair(GURL("http://unread_b.com"), std::move(unread_b)));
base::test::ios::SpinRunLoopWithMinDelay(
base::TimeDelta::FromMilliseconds(5));
+
ReadingListEntry read_b(GURL("http://read_b.com"), "read_b");
+ read_b.SetRead(true);
+ entries_->insert(
+ std::make_pair(GURL("http://read_b.com"), std::move(read_b)));
base::test::ios::SpinRunLoopWithMinDelay(
base::TimeDelta::FromMilliseconds(5));
+
ReadingListEntry unread_c(GURL("http://unread_c.com"), "unread_c");
+ entries_->insert(
+ std::make_pair(GURL("http://unread_c.com"), std::move(unread_c)));
base::test::ios::SpinRunLoopWithMinDelay(
base::TimeDelta::FromMilliseconds(5));
+
ReadingListEntry read_c(GURL("http://read_c.com"), "read_c");
+ read_c.SetRead(true);
+ entries_->insert(
+ std::make_pair(GURL("http://read_c.com"), std::move(read_c)));
base::test::ios::SpinRunLoopWithMinDelay(
base::TimeDelta::FromMilliseconds(5));
+
ReadingListEntry unread_d(GURL("http://unread_d.com"), "unread_d");
+ entries_->insert(
+ std::make_pair(GURL("http://unread_d.com"), std::move(unread_d)));
base::test::ios::SpinRunLoopWithMinDelay(
base::TimeDelta::FromMilliseconds(5));
- read_->push_back(std::move(read_c));
- read_->push_back(std::move(read_a));
- read_->push_back(std::move(read_b));
-
- unread_->push_back(std::move(unread_a));
- unread_->push_back(std::move(unread_d));
- unread_->push_back(std::move(unread_c));
- unread_->push_back(std::move(unread_b));
}
void SetReadingListModel(ReadingListModel* model,
- ReadingListStoreDelegate* delegate_) override {
- delegate_->StoreLoaded(std::move(unread_), std::move(read_));
+ ReadingListStoreDelegate* delegate) override {
+ delegate->StoreLoaded(std::move(entries_));
}
syncer::ModelTypeSyncBridge* GetModelTypeSyncBridge() override {
@@ -78,7 +93,7 @@ class TestReadingListStorage : public ReadingListModelStorage {
// Saves or updates an entry. If the entry is not yet in the database, it is
// created.
- void SaveEntry(const ReadingListEntry& entry, bool read) override {
+ void SaveEntry(const ReadingListEntry& entry) override {
observer_->ReadingListDidSaveEntry();
}
@@ -88,8 +103,7 @@ class TestReadingListStorage : public ReadingListModelStorage {
}
private:
- std::unique_ptr<std::vector<ReadingListEntry>> read_;
- std::unique_ptr<std::vector<ReadingListEntry>> unread_;
+ std::unique_ptr<ReadingListStoreDelegate::ReadingListEntries> entries_;
TestReadingListStorageObserver* observer_;
};
@@ -114,37 +128,31 @@ class ReadingListModelTest : public ReadingListModelObserver,
void ClearCounts() {
observer_loaded_ = observer_started_batch_update_ =
observer_completed_batch_update_ = observer_deleted_ =
- observer_remove_unread_ = observer_remove_read_ = observer_move_ =
- observer_add_unread_ = observer_add_read_ =
- observer_update_unread_ = observer_update_read_ =
- observer_did_apply_ = storage_saved_ =
- storage_removed_ = 0;
+ observer_remove_ = observer_move_ = observer_add_ =
+ observer_did_add_ = observer_update_ = observer_did_apply_ =
+ storage_saved_ = storage_removed_ = 0;
}
void AssertObserverCount(int observer_loaded,
int observer_started_batch_update,
int observer_completed_batch_update,
int observer_deleted,
- int observer_remove_unread,
- int observer_remove_read,
+ int observer_remove,
int observer_move,
- int observer_add_unread,
- int observer_add_read,
- int observer_update_unread,
- int observer_update_read,
+ int observer_add,
+ int observer_update,
int observer_did_apply) {
ASSERT_EQ(observer_loaded, observer_loaded_);
ASSERT_EQ(observer_started_batch_update, observer_started_batch_update_);
ASSERT_EQ(observer_completed_batch_update,
observer_completed_batch_update_);
ASSERT_EQ(observer_deleted, observer_deleted_);
- ASSERT_EQ(observer_remove_unread, observer_remove_unread_);
- ASSERT_EQ(observer_remove_read, observer_remove_read_);
+ ASSERT_EQ(observer_remove, observer_remove_);
ASSERT_EQ(observer_move, observer_move_);
- ASSERT_EQ(observer_add_unread, observer_add_unread_);
- ASSERT_EQ(observer_add_read, observer_add_read_);
- ASSERT_EQ(observer_update_unread, observer_update_unread_);
- ASSERT_EQ(observer_update_read, observer_update_read_);
+ // Add and did_add should be the same.
+ ASSERT_EQ(observer_add, observer_add_);
+ ASSERT_EQ(observer_add, observer_did_add_);
+ ASSERT_EQ(observer_update, observer_update_);
ASSERT_EQ(observer_did_apply, observer_did_apply_);
}
@@ -168,34 +176,25 @@ class ReadingListModelTest : public ReadingListModelObserver,
void ReadingListModelBeingDeleted(const ReadingListModel* model) override {
observer_deleted_ += 1;
}
- void ReadingListWillRemoveUnreadEntry(const ReadingListModel* model,
- size_t index) override {
- observer_remove_unread_ += 1;
+ void ReadingListWillRemoveEntry(const ReadingListModel* model,
+ const GURL& url) override {
+ observer_remove_ += 1;
}
void ReadingListWillMoveEntry(const ReadingListModel* model,
- size_t index,
- bool read) override {
+ const GURL& url) override {
observer_move_ += 1;
}
- void ReadingListWillRemoveReadEntry(const ReadingListModel* model,
- size_t index) override {
- observer_remove_read_ += 1;
- }
- void ReadingListWillAddUnreadEntry(const ReadingListModel* model,
- const ReadingListEntry& entry) override {
- observer_add_unread_ += 1;
+ void ReadingListWillAddEntry(const ReadingListModel* model,
+ const ReadingListEntry& entry) override {
+ observer_add_ += 1;
}
- void ReadingListWillAddReadEntry(const ReadingListModel* model,
- const ReadingListEntry& entry) override {
- observer_add_read_ += 1;
+ void ReadingListDidAddEntry(const ReadingListModel* model,
+ const GURL& url) override {
+ observer_did_add_ += 1;
}
- void ReadingListWillUpdateUnreadEntry(const ReadingListModel* model,
- size_t index) override {
- observer_update_unread_ += 1;
- }
- void ReadingListWillUpdateReadEntry(const ReadingListModel* model,
- size_t index) override {
- observer_update_read_ += 1;
+ void ReadingListWillUpdateEntry(const ReadingListModel* model,
+ const GURL& url) override {
+ observer_update_ += 1;
}
void ReadingListDidApplyChanges(ReadingListModel* model) override {
observer_did_apply_ += 1;
@@ -204,6 +203,29 @@ class ReadingListModelTest : public ReadingListModelObserver,
void ReadingListDidSaveEntry() override { storage_saved_ += 1; }
void ReadingListDidRemoveEntry() override { storage_removed_ += 1; }
+ size_t UnreadSize() {
+ size_t size = 0;
+ for (const auto& url : model_->Keys()) {
+ const ReadingListEntry* entry = model_->GetEntryByURL(url);
+ if (!entry->IsRead()) {
+ size++;
+ }
+ }
+ DCHECK_EQ(size, model_->unread_size());
+ return size;
+ }
+
+ size_t ReadSize() {
+ size_t size = 0;
+ for (const auto& url : model_->Keys()) {
+ const ReadingListEntry* entry = model_->GetEntryByURL(url);
+ if (entry->IsRead()) {
+ size++;
+ }
+ }
+ return size;
+ }
+
void Callback(const ReadingListEntry& entry) {
EXPECT_EQ(callback_url, entry.URL());
EXPECT_EQ(callback_title, entry.Title());
@@ -217,13 +239,11 @@ class ReadingListModelTest : public ReadingListModelObserver,
int observer_started_batch_update_;
int observer_completed_batch_update_;
int observer_deleted_;
- int observer_remove_unread_;
- int observer_remove_read_;
+ int observer_remove_;
int observer_move_;
- int observer_add_unread_;
- int observer_add_read_;
- int observer_update_unread_;
- int observer_update_read_;
+ int observer_add_;
+ int observer_did_add_;
+ int observer_update_;
int observer_did_apply_;
int storage_saved_;
int storage_removed_;
@@ -234,12 +254,12 @@ class ReadingListModelTest : public ReadingListModelObserver,
TEST_F(ReadingListModelTest, EmptyLoaded) {
EXPECT_TRUE(model_->loaded());
- AssertObserverCount(1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0);
- EXPECT_EQ(0ul, model_->unread_size());
- EXPECT_EQ(0ul, model_->read_size());
+ AssertObserverCount(1, 0, 0, 0, 0, 0, 0, 0, 0);
+ EXPECT_EQ(0ul, UnreadSize());
+ EXPECT_EQ(0ul, ReadSize());
model_->Shutdown();
EXPECT_FALSE(model_->loaded());
- AssertObserverCount(1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0);
+ AssertObserverCount(1, 0, 0, 1, 0, 0, 0, 0, 0);
}
TEST_F(ReadingListModelTest, ModelLoaded) {
@@ -248,17 +268,22 @@ TEST_F(ReadingListModelTest, ModelLoaded) {
storage->AddSampleEntries();
SetStorage(std::move(storage));
- AssertObserverCount(1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0);
- EXPECT_EQ(model_->read_size(), 3u);
- EXPECT_EQ(model_->GetReadEntryAtIndex(0).Title(), "read_c");
- EXPECT_EQ(model_->GetReadEntryAtIndex(1).Title(), "read_b");
- EXPECT_EQ(model_->GetReadEntryAtIndex(2).Title(), "read_a");
-
- EXPECT_EQ(model_->unread_size(), 4u);
- EXPECT_EQ(model_->GetUnreadEntryAtIndex(0).Title(), "unread_d");
- EXPECT_EQ(model_->GetUnreadEntryAtIndex(1).Title(), "unread_c");
- EXPECT_EQ(model_->GetUnreadEntryAtIndex(2).Title(), "unread_b");
- EXPECT_EQ(model_->GetUnreadEntryAtIndex(3).Title(), "unread_a");
+ AssertObserverCount(1, 0, 0, 0, 0, 0, 0, 0, 0);
+ std::map<GURL, std::string> loaded_entries;
+ int size = 0;
+ for (const auto& url : model_->Keys()) {
+ size++;
+ const ReadingListEntry* entry = model_->GetEntryByURL(url);
+ loaded_entries[url] = entry->Title();
+ }
+ EXPECT_EQ(size, 7);
+ EXPECT_EQ(loaded_entries[GURL("http://unread_a.com")], "unread_a");
+ EXPECT_EQ(loaded_entries[GURL("http://unread_b.com")], "unread_b");
+ EXPECT_EQ(loaded_entries[GURL("http://unread_c.com")], "unread_c");
+ EXPECT_EQ(loaded_entries[GURL("http://unread_d.com")], "unread_d");
+ EXPECT_EQ(loaded_entries[GURL("http://read_a.com")], "read_a");
+ EXPECT_EQ(loaded_entries[GURL("http://read_b.com")], "read_b");
+ EXPECT_EQ(loaded_entries[GURL("http://read_c.com")], "read_c");
}
TEST_F(ReadingListModelTest, AddEntry) {
@@ -271,15 +296,18 @@ TEST_F(ReadingListModelTest, AddEntry) {
EXPECT_EQ(GURL("http://example.com"), entry.URL());
EXPECT_EQ("sample Test", entry.Title());
- AssertObserverCount(0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1);
+ AssertObserverCount(0, 0, 0, 0, 0, 0, 1, 0, 1);
AssertStorageCount(1, 0);
- EXPECT_EQ(1ul, model_->unread_size());
- EXPECT_EQ(0ul, model_->read_size());
+ EXPECT_EQ(1ul, UnreadSize());
+ EXPECT_EQ(0ul, ReadSize());
EXPECT_TRUE(model_->HasUnseenEntries());
- const ReadingListEntry& other_entry = model_->GetUnreadEntryAtIndex(0);
- EXPECT_EQ(GURL("http://example.com"), other_entry.URL());
- EXPECT_EQ("sample Test", other_entry.Title());
+ const ReadingListEntry* other_entry =
+ model_->GetEntryByURL(GURL("http://example.com"));
+ EXPECT_NE(other_entry, nullptr);
+ EXPECT_FALSE(other_entry->IsRead());
+ EXPECT_EQ(GURL("http://example.com"), other_entry->URL());
+ EXPECT_EQ("sample Test", other_entry->Title());
}
TEST_F(ReadingListModelTest, SyncAddEntry) {
@@ -287,13 +315,14 @@ TEST_F(ReadingListModelTest, SyncAddEntry) {
SetStorage(std::move(storage));
auto entry =
base::MakeUnique<ReadingListEntry>(GURL("http://example.com"), "sample");
+ entry->SetRead(true);
ClearCounts();
- model_->SyncAddEntry(std::move(entry), true);
- AssertObserverCount(0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1);
+ model_->SyncAddEntry(std::move(entry));
+ AssertObserverCount(0, 0, 0, 0, 0, 0, 1, 0, 1);
AssertStorageCount(0, 0);
- ASSERT_EQ(model_->unread_size(), 0u);
- ASSERT_EQ(model_->read_size(), 1u);
+ EXPECT_EQ(0ul, UnreadSize());
+ EXPECT_EQ(1ul, ReadSize());
ClearCounts();
}
@@ -304,24 +333,25 @@ TEST_F(ReadingListModelTest, SyncMergeEntry) {
model_->SetEntryDistilledPath(GURL("http://example.com"),
base::FilePath("distilled/page.html"));
const ReadingListEntry* local_entry =
- model_->GetEntryFromURL(GURL("http://example.com"), nullptr);
+ model_->GetEntryByURL(GURL("http://example.com"));
int64_t local_update_time = local_entry->UpdateTime();
base::test::ios::SpinRunLoopWithMinDelay(
base::TimeDelta::FromMilliseconds(10));
auto sync_entry =
base::MakeUnique<ReadingListEntry>(GURL("http://example.com"), "sample");
+ sync_entry->SetRead(true);
ASSERT_GT(sync_entry->UpdateTime(), local_update_time);
int64_t sync_update_time = sync_entry->UpdateTime();
EXPECT_TRUE(sync_entry->DistilledPath().empty());
- EXPECT_EQ(model_->unread_size(), 1u);
- EXPECT_EQ(model_->read_size(), 0u);
+ EXPECT_EQ(1ul, UnreadSize());
+ EXPECT_EQ(0ul, ReadSize());
ReadingListEntry* merged_entry =
- model_->SyncMergeEntry(std::move(sync_entry), true);
- EXPECT_EQ(model_->unread_size(), 0u);
- EXPECT_EQ(model_->read_size(), 1u);
+ model_->SyncMergeEntry(std::move(sync_entry));
+ EXPECT_EQ(0ul, UnreadSize());
+ EXPECT_EQ(1ul, ReadSize());
EXPECT_EQ(merged_entry->DistilledPath(),
base::FilePath("distilled/page.html"));
EXPECT_EQ(merged_entry->UpdateTime(), sync_update_time);
@@ -332,28 +362,28 @@ TEST_F(ReadingListModelTest, RemoveEntryByUrl) {
SetStorage(std::move(storage));
model_->AddEntry(GURL("http://example.com"), "sample");
ClearCounts();
- EXPECT_NE(model_->GetEntryFromURL(GURL("http://example.com"), nullptr),
- nullptr);
- EXPECT_EQ(model_->unread_size(), 1u);
+ EXPECT_NE(model_->GetEntryByURL(GURL("http://example.com")), nullptr);
+ EXPECT_EQ(1ul, UnreadSize());
+ EXPECT_EQ(0ul, ReadSize());
model_->RemoveEntryByURL(GURL("http://example.com"));
- AssertObserverCount(0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1);
+ AssertObserverCount(0, 0, 0, 0, 1, 0, 0, 0, 1);
AssertStorageCount(0, 1);
- EXPECT_EQ(model_->unread_size(), 0u);
- EXPECT_EQ(model_->GetEntryFromURL(GURL("http://example.com"), nullptr),
- nullptr);
+ EXPECT_EQ(0ul, UnreadSize());
+ EXPECT_EQ(0ul, ReadSize());
+ EXPECT_EQ(model_->GetEntryByURL(GURL("http://example.com")), nullptr);
model_->AddEntry(GURL("http://example.com"), "sample");
- model_->MarkReadByURL(GURL("http://example.com"));
+ model_->SetReadStatus(GURL("http://example.com"), true);
ClearCounts();
- EXPECT_NE(model_->GetEntryFromURL(GURL("http://example.com"), nullptr),
- nullptr);
- EXPECT_EQ(model_->read_size(), 1u);
+ EXPECT_NE(model_->GetEntryByURL(GURL("http://example.com")), nullptr);
+ EXPECT_EQ(0ul, UnreadSize());
+ EXPECT_EQ(1ul, ReadSize());
model_->RemoveEntryByURL(GURL("http://example.com"));
- AssertObserverCount(0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1);
+ AssertObserverCount(0, 0, 0, 0, 1, 0, 0, 0, 1);
AssertStorageCount(0, 1);
- EXPECT_EQ(model_->read_size(), 0u);
- EXPECT_EQ(model_->GetEntryFromURL(GURL("http://example.com"), nullptr),
- nullptr);
+ EXPECT_EQ(0ul, UnreadSize());
+ EXPECT_EQ(0ul, ReadSize());
+ EXPECT_EQ(model_->GetEntryByURL(GURL("http://example.com")), nullptr);
}
TEST_F(ReadingListModelTest, RemoveSyncEntryByUrl) {
@@ -361,43 +391,46 @@ TEST_F(ReadingListModelTest, RemoveSyncEntryByUrl) {
SetStorage(std::move(storage));
model_->AddEntry(GURL("http://example.com"), "sample");
ClearCounts();
- EXPECT_NE(model_->GetEntryFromURL(GURL("http://example.com"), nullptr),
- nullptr);
- EXPECT_EQ(model_->unread_size(), 1u);
+ EXPECT_NE(model_->GetEntryByURL(GURL("http://example.com")), nullptr);
+ EXPECT_EQ(1ul, UnreadSize());
+ EXPECT_EQ(0ul, ReadSize());
model_->SyncRemoveEntry(GURL("http://example.com"));
- AssertObserverCount(0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1);
+ AssertObserverCount(0, 0, 0, 0, 1, 0, 0, 0, 1);
AssertStorageCount(0, 0);
- EXPECT_EQ(model_->unread_size(), 0u);
- EXPECT_EQ(model_->GetEntryFromURL(GURL("http://example.com"), nullptr),
- nullptr);
+ EXPECT_EQ(0ul, UnreadSize());
+ EXPECT_EQ(0ul, ReadSize());
+ EXPECT_EQ(model_->GetEntryByURL(GURL("http://example.com")), nullptr);
model_->AddEntry(GURL("http://example.com"), "sample");
- model_->MarkReadByURL(GURL("http://example.com"));
+ model_->SetReadStatus(GURL("http://example.com"), true);
ClearCounts();
- EXPECT_NE(model_->GetEntryFromURL(GURL("http://example.com"), nullptr),
- nullptr);
- EXPECT_EQ(model_->read_size(), 1u);
+ EXPECT_NE(model_->GetEntryByURL(GURL("http://example.com")), nullptr);
+ EXPECT_EQ(0ul, UnreadSize());
+ EXPECT_EQ(1ul, ReadSize());
model_->SyncRemoveEntry(GURL("http://example.com"));
- AssertObserverCount(0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1);
+ AssertObserverCount(0, 0, 0, 0, 1, 0, 0, 0, 1);
AssertStorageCount(0, 0);
- EXPECT_EQ(model_->read_size(), 0u);
- EXPECT_EQ(model_->GetEntryFromURL(GURL("http://example.com"), nullptr),
- nullptr);
+ EXPECT_EQ(0ul, UnreadSize());
+ EXPECT_EQ(0ul, ReadSize());
+ EXPECT_EQ(model_->GetEntryByURL(GURL("http://example.com")), nullptr);
}
TEST_F(ReadingListModelTest, ReadEntry) {
model_->AddEntry(GURL("http://example.com"), "sample");
ClearCounts();
- model_->MarkReadByURL(GURL("http://example.com"));
- AssertObserverCount(0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1);
- EXPECT_EQ(0ul, model_->unread_size());
- EXPECT_EQ(1ul, model_->read_size());
+ model_->SetReadStatus(GURL("http://example.com"), true);
+ AssertObserverCount(0, 0, 0, 0, 0, 1, 0, 0, 1);
+ EXPECT_EQ(0ul, UnreadSize());
+ EXPECT_EQ(1ul, ReadSize());
EXPECT_FALSE(model_->HasUnseenEntries());
- const ReadingListEntry& other_entry = model_->GetReadEntryAtIndex(0);
- EXPECT_EQ(GURL("http://example.com"), other_entry.URL());
- EXPECT_EQ("sample", other_entry.Title());
+ const ReadingListEntry* other_entry =
+ model_->GetEntryByURL(GURL("http://example.com"));
+ EXPECT_NE(other_entry, nullptr);
+ EXPECT_TRUE(other_entry->IsRead());
+ EXPECT_EQ(GURL("http://example.com"), other_entry->URL());
+ EXPECT_EQ("sample", other_entry->Title());
}
TEST_F(ReadingListModelTest, EntryFromURL) {
@@ -407,54 +440,56 @@ TEST_F(ReadingListModelTest, EntryFromURL) {
model_->AddEntry(url1, entry1_title);
// Check call with nullptr |read| parameter.
- const ReadingListEntry* entry1 = model_->GetEntryFromURL(url1, nullptr);
+ const ReadingListEntry* entry1 = model_->GetEntryByURL(url1);
EXPECT_NE(nullptr, entry1);
EXPECT_EQ(entry1_title, entry1->Title());
- bool read;
- entry1 = model_->GetEntryFromURL(url1, &read);
+ entry1 = model_->GetEntryByURL(url1);
EXPECT_NE(nullptr, entry1);
EXPECT_EQ(entry1_title, entry1->Title());
- EXPECT_EQ(read, false);
- model_->MarkReadByURL(url1);
- entry1 = model_->GetEntryFromURL(url1, &read);
+ EXPECT_EQ(entry1->IsRead(), false);
+ model_->SetReadStatus(url1, true);
+ entry1 = model_->GetEntryByURL(url1);
EXPECT_NE(nullptr, entry1);
EXPECT_EQ(entry1_title, entry1->Title());
- EXPECT_EQ(read, true);
+ EXPECT_EQ(entry1->IsRead(), true);
- const ReadingListEntry* entry2 = model_->GetEntryFromURL(url2, &read);
+ const ReadingListEntry* entry2 = model_->GetEntryByURL(url2);
EXPECT_EQ(nullptr, entry2);
}
TEST_F(ReadingListModelTest, UnreadEntry) {
// Setup.
model_->AddEntry(GURL("http://example.com"), "sample");
- model_->MarkReadByURL(GURL("http://example.com"));
+ model_->SetReadStatus(GURL("http://example.com"), true);
ClearCounts();
- ASSERT_EQ(0ul, model_->unread_size());
- ASSERT_EQ(1ul, model_->read_size());
+ EXPECT_EQ(0ul, UnreadSize());
+ EXPECT_EQ(1ul, ReadSize());
// Action.
- model_->MarkUnreadByURL(GURL("http://example.com"));
+ model_->SetReadStatus(GURL("http://example.com"), false);
// Tests.
- AssertObserverCount(0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1);
- EXPECT_EQ(1ul, model_->unread_size());
- EXPECT_EQ(0ul, model_->read_size());
+ AssertObserverCount(0, 0, 0, 0, 0, 1, 0, 0, 1);
+ EXPECT_EQ(1ul, UnreadSize());
+ EXPECT_EQ(0ul, ReadSize());
EXPECT_TRUE(model_->HasUnseenEntries());
- const ReadingListEntry& other_entry = model_->GetUnreadEntryAtIndex(0);
- EXPECT_EQ(GURL("http://example.com"), other_entry.URL());
- EXPECT_EQ("sample", other_entry.Title());
+ const ReadingListEntry* other_entry =
+ model_->GetEntryByURL(GURL("http://example.com"));
+ EXPECT_NE(other_entry, nullptr);
+ EXPECT_FALSE(other_entry->IsRead());
+ EXPECT_EQ(GURL("http://example.com"), other_entry->URL());
+ EXPECT_EQ("sample", other_entry->Title());
}
TEST_F(ReadingListModelTest, BatchUpdates) {
auto token = model_->BeginBatchUpdates();
- AssertObserverCount(1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0);
+ AssertObserverCount(1, 1, 0, 0, 0, 0, 0, 0, 0);
EXPECT_TRUE(model_->IsPerformingBatchUpdates());
delete token.release();
- AssertObserverCount(1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0);
+ AssertObserverCount(1, 1, 1, 0, 0, 0, 0, 0, 0);
EXPECT_FALSE(model_->IsPerformingBatchUpdates());
}
@@ -464,28 +499,28 @@ TEST_F(ReadingListModelTest, BatchUpdatesReentrant) {
EXPECT_FALSE(model_->IsPerformingBatchUpdates());
auto token = model_->BeginBatchUpdates();
- AssertObserverCount(1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0);
+ AssertObserverCount(1, 1, 0, 0, 0, 0, 0, 0, 0);
EXPECT_TRUE(model_->IsPerformingBatchUpdates());
auto second_token = model_->BeginBatchUpdates();
- AssertObserverCount(1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0);
+ AssertObserverCount(1, 1, 0, 0, 0, 0, 0, 0, 0);
EXPECT_TRUE(model_->IsPerformingBatchUpdates());
delete token.release();
- AssertObserverCount(1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0);
+ AssertObserverCount(1, 1, 0, 0, 0, 0, 0, 0, 0);
EXPECT_TRUE(model_->IsPerformingBatchUpdates());
delete second_token.release();
- AssertObserverCount(1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0);
+ AssertObserverCount(1, 1, 1, 0, 0, 0, 0, 0, 0);
EXPECT_FALSE(model_->IsPerformingBatchUpdates());
// Consequent updates send notifications.
auto third_token = model_->BeginBatchUpdates();
- AssertObserverCount(1, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0);
+ AssertObserverCount(1, 2, 1, 0, 0, 0, 0, 0, 0);
EXPECT_TRUE(model_->IsPerformingBatchUpdates());
delete third_token.release();
- AssertObserverCount(1, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0);
+ AssertObserverCount(1, 2, 2, 0, 0, 0, 0, 0, 0);
EXPECT_FALSE(model_->IsPerformingBatchUpdates());
}
@@ -495,17 +530,17 @@ TEST_F(ReadingListModelTest, UpdateEntryTitle) {
ClearCounts();
model_->SetEntryTitle(gurl, "ping");
- AssertObserverCount(0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1);
+ AssertObserverCount(0, 0, 0, 0, 0, 0, 0, 1, 1);
EXPECT_EQ("ping", entry.Title());
}
-TEST_F(ReadingListModelTest, UpdateEntryState) {
+TEST_F(ReadingListModelTest, UpdateEntryDistilledState) {
const GURL gurl("http://example.com");
const ReadingListEntry& entry = model_->AddEntry(gurl, "sample");
ClearCounts();
model_->SetEntryDistilledState(gurl, ReadingListEntry::PROCESSING);
- AssertObserverCount(0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1);
+ AssertObserverCount(0, 0, 0, 0, 0, 0, 0, 1, 1);
EXPECT_EQ(ReadingListEntry::PROCESSING, entry.DistilledState());
}
@@ -515,7 +550,7 @@ TEST_F(ReadingListModelTest, UpdateDistilledPath) {
ClearCounts();
model_->SetEntryDistilledPath(gurl, base::FilePath("distilled/page.html"));
- AssertObserverCount(0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1);
+ AssertObserverCount(0, 0, 0, 0, 0, 0, 0, 1, 1);
EXPECT_EQ(ReadingListEntry::PROCESSED, entry.DistilledState());
EXPECT_EQ(base::FilePath("distilled/page.html"), entry.DistilledPath());
}
@@ -528,7 +563,7 @@ TEST_F(ReadingListModelTest, UpdateReadEntryTitle) {
ClearCounts();
model_->SetEntryTitle(gurl, "ping");
- AssertObserverCount(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1);
+ AssertObserverCount(0, 0, 0, 0, 0, 0, 0, 1, 1);
EXPECT_EQ("ping", entry.Title());
}
@@ -540,7 +575,7 @@ TEST_F(ReadingListModelTest, UpdateReadEntryState) {
ClearCounts();
model_->SetEntryDistilledState(gurl, ReadingListEntry::PROCESSING);
- AssertObserverCount(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1);
+ AssertObserverCount(0, 0, 0, 0, 0, 0, 0, 1, 1);
EXPECT_EQ(ReadingListEntry::PROCESSING, entry.DistilledState());
}
@@ -552,70 +587,16 @@ TEST_F(ReadingListModelTest, UpdateReadDistilledPath) {
ClearCounts();
model_->SetEntryDistilledPath(gurl, base::FilePath("distilled/page.html"));
- AssertObserverCount(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1);
+ AssertObserverCount(0, 0, 0, 0, 0, 0, 0, 1, 1);
EXPECT_EQ(ReadingListEntry::PROCESSED, entry.DistilledState());
EXPECT_EQ(base::FilePath("distilled/page.html"), entry.DistilledPath());
}
-// Tests that the callback is called when the entry is unread.
-TEST_F(ReadingListModelTest, CallbackEntryURLUnread) {
- // Setup.
- model_->AddEntry(callback_url, callback_title);
-
- ASSERT_EQ(0UL, model_->read_size());
- ASSERT_EQ(1UL, model_->unread_size());
-
- // Action.
- bool result = model_->CallbackEntryURL(
- callback_url,
- base::Bind(&ReadingListModelTest::Callback, base::Unretained(this)));
-
- // Test.
- EXPECT_TRUE(result);
- EXPECT_TRUE(CallbackCalled());
-}
-
-// Tests that the callback is called when the entry is read.
-TEST_F(ReadingListModelTest, CallbackEntryURLRead) {
- // Setup.
- model_->AddEntry(callback_url, callback_title);
- model_->MarkReadByURL(callback_url);
-
- ASSERT_EQ(1UL, model_->read_size());
- ASSERT_EQ(0UL, model_->unread_size());
-
- // Action.
- bool result = model_->CallbackEntryURL(
- callback_url,
- base::Bind(&ReadingListModelTest::Callback, base::Unretained(this)));
-
- // Test.
- EXPECT_TRUE(result);
- EXPECT_TRUE(CallbackCalled());
-}
-
-// Tests that the callback is not called when the entry is not present.
-TEST_F(ReadingListModelTest, CallbackEntryURLNotPresent) {
- // Setup.
- const GURL gurl("http://foo.bar");
- ASSERT_NE(gurl, callback_url);
- model_->AddEntry(gurl, callback_title);
-
- // Action.
- bool result = model_->CallbackEntryURL(
- callback_url,
- base::Bind(&ReadingListModelTest::Callback, base::Unretained(this)));
-
- // Test.
- EXPECT_FALSE(result);
- EXPECT_FALSE(CallbackCalled());
-}
-
// Tests that ReadingListModel calls CallbackModelBeingDeleted when destroyed.
TEST_F(ReadingListModelTest, CallbackModelBeingDeleted) {
- AssertObserverCount(1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0);
+ AssertObserverCount(1, 0, 0, 0, 0, 0, 0, 0, 0);
model_.reset();
- AssertObserverCount(1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0);
+ AssertObserverCount(1, 0, 0, 1, 0, 0, 0, 0, 0);
}
} // namespace
« no previous file with comments | « components/reading_list/ios/reading_list_model_storage.h ('k') | components/reading_list/ios/reading_list_store.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698