From 5a0644d32b5e22b4367da7c16211f06259c1ec2c Mon Sep 17 00:00:00 2001 From: Matthieu Gautier Date: Tue, 16 Jan 2024 17:22:01 +0100 Subject: [PATCH] Also store book's name in bookmark. --- include/bookmark.h | 3 +++ src/bookmark.cpp | 1 + src/libxml_dumper.cpp | 2 ++ test/library.cpp | 3 +++ 4 files changed, 9 insertions(+) diff --git a/include/bookmark.h b/include/bookmark.h index 7861fee31..815e728d7 100644 --- a/include/bookmark.h +++ b/include/bookmark.h @@ -42,6 +42,7 @@ class Bookmark const std::string& getBookId() const { return m_bookId; } const std::string& getBookTitle() const { return m_bookTitle; } + const std::string& getBookName() const { return m_bookName; } const std::string& getUrl() const { return m_url; } const std::string& getTitle() const { return m_title; } const std::string& getLanguage() const { return m_language; } @@ -49,6 +50,7 @@ class Bookmark void setBookId(const std::string& bookId) { m_bookId = bookId; } void setBookTitle(const std::string& bookTitle) { m_bookTitle = bookTitle; } + void setBookName(const std::string& bookName) { m_bookName = bookName; } void setUrl(const std::string& url) { m_url = url; } void setTitle(const std::string& title) { m_title = title; } void setLanguage(const std::string& language) { m_language = language; } @@ -57,6 +59,7 @@ class Bookmark protected: std::string m_bookId; std::string m_bookTitle; + std::string m_bookName; std::string m_url; std::string m_title; std::string m_language; diff --git a/src/bookmark.cpp b/src/bookmark.cpp index 2ca1b623f..54a65deb9 100644 --- a/src/bookmark.cpp +++ b/src/bookmark.cpp @@ -38,6 +38,7 @@ void Bookmark::updateFromXml(const pugi::xml_node& node) auto bookNode = node.child("book"); m_bookId = bookNode.child("id").child_value(); m_bookTitle = bookNode.child("title").child_value(); + m_bookName = bookNode.child("name").child_value(); m_language = bookNode.child("language").child_value(); m_date = bookNode.child("date").child_value(); m_title = node.child("title").child_value(); diff --git a/src/libxml_dumper.cpp b/src/libxml_dumper.cpp index 125694d11..1e22b5b41 100644 --- a/src/libxml_dumper.cpp +++ b/src/libxml_dumper.cpp @@ -97,11 +97,13 @@ void LibXMLDumper::handleBookmark(Bookmark bookmark, pugi::xml_node root_node) { auto book = library->getBookByIdThreadSafe(bookmark.getBookId()); ADD_TEXT_ENTRY(book_node, "id", book.getId()); ADD_TEXT_ENTRY(book_node, "title", book.getTitle()); + ADD_TEXT_ENTRY(book_node, "name", book.getName()); ADD_TEXT_ENTRY(book_node, "language", book.getCommaSeparatedLanguages()); ADD_TEXT_ENTRY(book_node, "date", book.getDate()); } catch (...) { ADD_TEXT_ENTRY(book_node, "id", bookmark.getBookId()); ADD_TEXT_ENTRY(book_node, "title", bookmark.getBookTitle()); + ADD_TEXT_ENTRY(book_node, "name", bookmark.getBookName()); ADD_TEXT_ENTRY(book_node, "language", bookmark.getLanguage()); ADD_TEXT_ENTRY(book_node, "date", bookmark.getDate()); } diff --git a/test/library.cpp b/test/library.cpp index 5fcde072b..21733209c 100644 --- a/test/library.cpp +++ b/test/library.cpp @@ -401,6 +401,7 @@ TEST_F(LibraryTest, bookmarksSerializationTest) auto bookmark1 = allBookmarks[0]; EXPECT_EQ(bookmark1.getBookId(), bookId1); EXPECT_EQ(bookmark1.getBookTitle(), book1.getTitle()); + EXPECT_EQ(bookmark1.getBookName(), book1.getName()); EXPECT_EQ(bookmark1.getUrl(), "a/url"); EXPECT_EQ(bookmark1.getTitle(), "Article title1"); EXPECT_EQ(bookmark1.getLanguage(), book1.getCommaSeparatedLanguages()); @@ -409,6 +410,7 @@ TEST_F(LibraryTest, bookmarksSerializationTest) auto bookmark2 = allBookmarks[1]; EXPECT_EQ(bookmark2.getBookId(), "invalid-book-id"); EXPECT_EQ(bookmark2.getBookTitle(), ""); + EXPECT_EQ(bookmark2.getBookName(), ""); EXPECT_EQ(bookmark2.getUrl(), "another/url"); EXPECT_EQ(bookmark2.getTitle(), "Unknown title"); EXPECT_EQ(bookmark2.getLanguage(), ""); @@ -417,6 +419,7 @@ TEST_F(LibraryTest, bookmarksSerializationTest) auto bookmark3 = allBookmarks[2]; EXPECT_EQ(bookmark3.getBookId(), bookId2); EXPECT_EQ(bookmark3.getBookTitle(), book2.getTitle()); + EXPECT_EQ(bookmark3.getBookName(), book2.getName()); EXPECT_EQ(bookmark3.getUrl(), "a/url/2"); EXPECT_EQ(bookmark3.getTitle(), "Article title2"); EXPECT_EQ(bookmark3.getLanguage(), book2.getCommaSeparatedLanguages());