From 3296a020a1d93e5e8a40fbbcb3c211fb5f3c225e Mon Sep 17 00:00:00 2001 From: Veloman Yunkan Date: Mon, 22 Nov 2021 17:38:33 +0400 Subject: [PATCH] Testing of Book::getHumanReadableIdFromPath() New unit test BookTest.getHumanReadableIdFromPath revealed a bug in `Book::getHumanReadableIdFromPath()`. --- test/book.cpp | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) diff --git a/test/book.cpp b/test/book.cpp index f477b6765..2de31cfe5 100644 --- a/test/book.cpp +++ b/test/book.cpp @@ -178,3 +178,32 @@ TEST(BookTest, updateTest) EXPECT_EQ(newBook.getFavicon(), book.getFavicon()); EXPECT_EQ(newBook.getFaviconMimeType(), book.getFaviconMimeType()); } + +namespace +{ + +std::string path2HumanReadableId(const std::string& path) +{ + const XMLDoc xml(""); + + kiwix::Book book; + book.updateFromXml(xml.child("book"), "/data/zim"); + return book.getHumanReadableIdFromPath(); +} + +} // unnamed namespace + +TEST(BookTest, getHumanReadableIdFromPath) +{ + EXPECT_EQ("abc", path2HumanReadableId("abc.zim")); + EXPECT_EQ("abc", path2HumanReadableId("ABC.zim")); + EXPECT_EQ("abc", path2HumanReadableId("âbç.zim")); + EXPECT_EQ("ancient", path2HumanReadableId("ancient.zimbabwe")); + EXPECT_EQ("ab_cd", path2HumanReadableId("ab cd.zim")); +#ifdef _WIN32 + EXPECT_EQ("abc", path2HumanReadableId("C:\\Data\\ZIM\\abc.zim")); +#else + EXPECT_EQ("abc", path2HumanReadableId("/Data/ZIM/abc.zim")); +#endif + EXPECT_EQ("3plus2", path2HumanReadableId("3+2.zim")); +}