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"( 1100 172 + + 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 Louis urn: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);