Commit d32bdccc authored by Hung Vu's avatar Hung Vu Committed by Commit Bot

[Read later] Implement ReadingListDidAddEntry.

This CL keeps BookmarkNode tree in sync with ReadingListModel when adding an entry from readling list model.

Bug: 1133504
Change-Id: I0ed62fd37ad8e1b282e132b30f51350dafaf2816
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2490824
Commit-Queue: Hung Vu <vuhung@google.com>
Reviewed-by: default avatarXing Liu <xingliu@chromium.org>
Cr-Commit-Position: refs/heads/master@{#821596}
parent a24ab215
......@@ -73,6 +73,13 @@ void ReadingListManagerImpl::ReadingListModelLoaded(
observer.ReadingListLoaded();
}
void ReadingListManagerImpl::ReadingListDidAddEntry(
const ReadingListModel* model,
const GURL& url,
reading_list::EntrySource source) {
AddBookmark(model->GetEntryByURL(url));
}
void ReadingListManagerImpl::AddObserver(Observer* observer) {
observers_.AddObserver(observer);
}
......@@ -88,7 +95,9 @@ const BookmarkNode* ReadingListManagerImpl::Add(const GURL& url,
// Add or swap the reading list entry.
const auto& new_entry = reading_list_model_->AddEntry(
url, title, reading_list::ADDED_VIA_CURRENT_APP);
return AddBookmark(&new_entry);
const auto* node = FindBookmarkByURL(new_entry.URL());
DCHECK(node) << "Bookmark node should have been created.";
return node;
}
const BookmarkNode* ReadingListManagerImpl::Get(const GURL& url) const {
......
......@@ -27,6 +27,9 @@ class ReadingListManagerImpl : public ReadingListManager,
private:
// ReadingListModelObserver overrides.
void ReadingListModelLoaded(const ReadingListModel* model) override;
void ReadingListDidAddEntry(const ReadingListModel* model,
const GURL& url,
reading_list::EntrySource source) override;
// ReadingListManager implementation.
void AddObserver(Observer* observer) override;
......
......@@ -197,4 +197,16 @@ TEST_F(ReadingListManagerImplTest, ReadStatus) {
EXPECT_FALSE(manager()->GetReadStatus(manager()->GetRoot()));
}
// Verifies ReadingListDidAddEntry() API that is being called after
// ReadingListModel::AddEntry() is called.
TEST_F(ReadingListManagerImplTest, ReadingListDidAddEntry) {
GURL url(kURL);
reading_list_model()->AddEntry(url, kTitle, reading_list::ADDED_VIA_SYNC);
const auto* node = manager()->Get(url);
EXPECT_TRUE(node);
EXPECT_EQ(url, node->url());
EXPECT_EQ(1u, manager()->size());
}
} // namespace
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment