diff --git a/test/library.cpp b/test/library.cpp
index 9b3d17a95..5c55f2057 100644
--- a/test/library.cpp
+++ b/test/library.cpp
@@ -48,6 +48,48 @@ const char * sampleOpdsStream = R"(
1100172
+
+ Encyclopédie de la Tunisie
+ wikipedia_fr_tunisie
+ novid
+ urn:uuid:0c45160e-f917-760a-9159-dfe3c53cdcdd_updated1yearlater
+ 2019-10-08T00:00::00:Z
+ 8 Oct 2019
+ fra
+ Le meilleur de Wikipédia sur la Tunisie. Updated in 2019
+
+ Wikipedia
+
+
+
+
+ Encyclopédie de la Tunisie
+ wikipedia_fr_tunisie
+ other_flavour
+ urn:uuid:0c45160e-f917-760a-9159-dfe3c53cdcdd_flavour
+ 2018-10-08T00:00::00:Z
+ 8 Oct 2018
+ fra
+ Le meilleur de Wikipédia sur la Tunisie. With another flavour
+
+ Wikipedia
+
+
+
+
+ Encyclopédie de la Tunisie
+ wikipedia_fr_tunisie
+ other_flavour
+ urn:uuid:0c45160e-f917-760a-9159-dfe3c53cdcdd_updated1yearlater_flavour
+ 2019-10-08T00:00::00:Z
+ 8 Oct 2019
+ fra
+ Le meilleur de Wikipédia sur la Tunisie. Updated in 2019, and other flavour
+
+ Wikipedia
+
+
+ Tania Louisurn:uuid:0d0bcd57-d3f6-cb22-44cc-a723ccb4e1b2
@@ -260,7 +302,7 @@ TEST(LibraryOpdsImportTest, allInOne)
kiwix::Manager manager(lib);
manager.readOpds(sampleOpdsStream, "library-opds-import.unittests.dev");
- EXPECT_EQ(10U, lib->getBookCount(true, true));
+ EXPECT_EQ(13U, lib->getBookCount(true, true));
{
const kiwix::Book& book1 = lib->getBookById("0c45160e-f917-760a-9159-dfe3c53cdcdd");
@@ -458,8 +500,8 @@ TEST_F(LibraryTest, bookmarksSerializationTest)
TEST_F(LibraryTest, MigrateBookmark)
{
- auto bookId1 = "0c45160e-f917-760a-9159-dfe3c53cdcdd";
- auto bookId2 = "0189d9be-2fd0-b4b6-7300-20fab0b5cdc8";
+ std::string bookId1 = "0c45160e-f917-760a-9159-dfe3c53cdcdd";
+ std::string bookId2 = "0189d9be-2fd0-b4b6-7300-20fab0b5cdc8";
auto book1 = lib->getBookById(bookId1);
auto book2 = lib->getBookById(bookId2);
@@ -501,20 +543,30 @@ TEST_F(LibraryTest, MigrateBookmark)
ASSERT_EQ(onlyValidBookmarks.size(), 4);
EXPECT_EQ(onlyValidBookmarks[0].getBookId(), bookId1);
EXPECT_EQ(onlyValidBookmarks[1].getBookId(), bookId2);
- EXPECT_EQ(onlyValidBookmarks[2].getBookId(), bookId1);
+ EXPECT_EQ(onlyValidBookmarks[2].getBookId(), bookId1+"_updated1yearlater");
EXPECT_EQ(onlyValidBookmarks[3].getBookId(), bookId2);
ASSERT_EQ(allBookmarks.size(), 5);
EXPECT_EQ(allBookmarks[0].getBookId(), bookId1);
EXPECT_EQ(allBookmarks[1].getBookId(), "invalid-book-id");
EXPECT_EQ(allBookmarks[2].getBookId(), bookId2);
- EXPECT_EQ(allBookmarks[3].getBookId(), bookId1);
+ EXPECT_EQ(allBookmarks[3].getBookId(), bookId1+"_updated1yearlater");
EXPECT_EQ(allBookmarks[4].getBookId(), bookId2);
ASSERT_EQ(lib->migrateBookmarks(), std::make_tuple(0, 1));
- ASSERT_EQ(lib->migrateBookmarks(bookId1), 0);
- ASSERT_EQ(lib->migrateBookmarks(bookId1, bookId2), 2);
+ ASSERT_EQ(lib->migrateBookmarks(bookId1), 1);
+ allBookmarks = lib->getBookmarks(false);
+ ASSERT_EQ(allBookmarks.size(), 5);
+ EXPECT_EQ(allBookmarks[0].getBookId(), bookId1+"_updated1yearlater");
+ EXPECT_EQ(allBookmarks[1].getBookId(), "invalid-book-id");
+ EXPECT_EQ(allBookmarks[2].getBookId(), bookId2);
+ EXPECT_EQ(allBookmarks[3].getBookId(), bookId1+"_updated1yearlater");
+ EXPECT_EQ(allBookmarks[4].getBookId(), bookId2);
+
+ ASSERT_EQ(lib->migrateBookmarks(bookId1, bookId2), 0); // No more bookId1 bookmark
+
+ ASSERT_EQ(lib->migrateBookmarks(bookId1+"_updated1yearlater", bookId2), 2);
onlyValidBookmarks = lib->getBookmarks();
allBookmarks = lib->getBookmarks(false);
@@ -556,7 +608,7 @@ TEST_F(LibraryTest, MigrateBookmark)
TEST_F(LibraryTest, sanityCheck)
{
- EXPECT_EQ(lib->getBookCount(true, true), 12U);
+ EXPECT_EQ(lib->getBookCount(true, true), 15U);
EXPECT_EQ(lib->getBooksLanguages(),
std::vector({"deu", "eng", "fra", "ita", "spa"})
);
@@ -608,6 +660,9 @@ TEST_F(LibraryTest, filterLocal)
);
EXPECT_FILTER_RESULTS(kiwix::Filter().local(false),
+ "Encyclopédie de la Tunisie",
+ "Encyclopédie de la Tunisie",
+ "Encyclopédie de la Tunisie",
"Encyclopédie de la Tunisie",
"Granblue Fantasy Wiki",
"Géographie par Wikipédia",
@@ -624,6 +679,9 @@ TEST_F(LibraryTest, filterLocal)
TEST_F(LibraryTest, filterRemote)
{
EXPECT_FILTER_RESULTS(kiwix::Filter().remote(true),
+ "Encyclopédie de la Tunisie",
+ "Encyclopédie de la Tunisie",
+ "Encyclopédie de la Tunisie",
"Encyclopédie de la Tunisie",
"Granblue Fantasy Wiki",
"Géographie par Wikipédia",
@@ -785,6 +843,9 @@ TEST_F(LibraryTest, filterByQuery)
EXPECT_FILTER_RESULTS(kiwix::Filter().query("Wiki"),
"An example ZIM archive", // due to the "wikibooks" tag
"Encyclopédie de la Tunisie",
+ "Encyclopédie de la Tunisie",
+ "Encyclopédie de la Tunisie",
+ "Encyclopédie de la Tunisie",
"Granblue Fantasy Wiki",
"Géographie par Wikipédia",
"Mathématiques", // due to the "wikipedia" tag
@@ -804,6 +865,9 @@ TEST_F(LibraryTest, filteringByEmptyQueryReturnsAllEntries)
EXPECT_FILTER_RESULTS(kiwix::Filter().query(""),
"An example ZIM archive",
"Encyclopédie de la Tunisie",
+ "Encyclopédie de la Tunisie",
+ "Encyclopédie de la Tunisie",
+ "Encyclopédie de la Tunisie",
"Granblue Fantasy Wiki",
"Géographie par Wikipédia",
"Islam Stack Exchange",
@@ -820,6 +884,9 @@ TEST_F(LibraryTest, filteringByEmptyQueryReturnsAllEntries)
TEST_F(LibraryTest, filterByCreator)
{
EXPECT_FILTER_RESULTS(kiwix::Filter().creator("Wikipedia"),
+ "Encyclopédie de la Tunisie",
+ "Encyclopédie de la Tunisie",
+ "Encyclopédie de la Tunisie",
"Encyclopédie de la Tunisie",
"Géographie par Wikipédia",
"Mathématiques",
@@ -861,6 +928,9 @@ TEST_F(LibraryTest, filterByCreator)
);
EXPECT_FILTER_RESULTS(kiwix::Filter().query("creator:Wikipedia"),
+ "Encyclopédie de la Tunisie",
+ "Encyclopédie de la Tunisie",
+ "Encyclopédie de la Tunisie",
"Encyclopédie de la Tunisie",
"Géographie par Wikipédia",
"Mathématiques",
@@ -968,6 +1038,9 @@ TEST_F(LibraryTest, filterByMaxSize)
TEST_F(LibraryTest, filterByMultipleCriteria)
{
EXPECT_FILTER_RESULTS(kiwix::Filter().query("Wiki").creator("Wikipedia"),
+ "Encyclopédie de la Tunisie",
+ "Encyclopédie de la Tunisie",
+ "Encyclopédie de la Tunisie",
"Encyclopédie de la Tunisie",
"Géographie par Wikipédia",
"Mathématiques", // due to the "wikipedia" tag
@@ -975,11 +1048,17 @@ TEST_F(LibraryTest, filterByMultipleCriteria)
);
EXPECT_FILTER_RESULTS(kiwix::Filter().query("Wiki").creator("Wikipedia").maxSize(100000000UL),
+ "Encyclopédie de la Tunisie",
+ "Encyclopédie de la Tunisie",
+ "Encyclopédie de la Tunisie",
"Encyclopédie de la Tunisie",
"Ray Charles"
);
EXPECT_FILTER_RESULTS(kiwix::Filter().query("Wiki").creator("Wikipedia").maxSize(100000000UL).local(false),
+ "Encyclopédie de la Tunisie",
+ "Encyclopédie de la Tunisie",
+ "Encyclopédie de la Tunisie",
"Encyclopédie de la Tunisie"
);
}
@@ -1038,6 +1117,9 @@ TEST_F(LibraryTest, removeBooksNotUpdatedSince)
EXPECT_FILTER_RESULTS(kiwix::Filter(),
"An example ZIM archive",
"Encyclopédie de la Tunisie",
+ "Encyclopédie de la Tunisie",
+ "Encyclopédie de la Tunisie",
+ "Encyclopédie de la Tunisie",
"Granblue Fantasy Wiki",
"Géographie par Wikipédia",
"Islam Stack Exchange",
@@ -1059,7 +1141,7 @@ TEST_F(LibraryTest, removeBooksNotUpdatedSince)
const uint64_t rev2 = lib->getRevision();
- EXPECT_EQ(9u, lib->removeBooksNotUpdatedSince(rev));
+ EXPECT_EQ(12u, lib->removeBooksNotUpdatedSince(rev));
EXPECT_GT(lib->getRevision(), rev2);