mirror of https://github.com/kiwix/libkiwix.git
New unit-test LibraryOpdsImportTest.allInOne
This commit is contained in:
parent
afb556bf64
commit
42ee14c8f5
|
@ -26,6 +26,8 @@ const char * sampleOpdsStream = R"(
|
||||||
<id>00000000-0000-0000-0000-000000000000</id>
|
<id>00000000-0000-0000-0000-000000000000</id>
|
||||||
<entry>
|
<entry>
|
||||||
<title>Encyclopédie de la Tunisie</title>
|
<title>Encyclopédie de la Tunisie</title>
|
||||||
|
<name>wikipedia_fr_tunisie_novid_2018-10</name>
|
||||||
|
<flavour>unforgettable</flavour>
|
||||||
<id>urn:uuid:0c45160e-f917-760a-9159-dfe3c53cdcdd</id>
|
<id>urn:uuid:0c45160e-f917-760a-9159-dfe3c53cdcdd</id>
|
||||||
<icon>/meta?name=favicon&content=wikipedia_fr_tunisie_novid_2018-10</icon>
|
<icon>/meta?name=favicon&content=wikipedia_fr_tunisie_novid_2018-10</icon>
|
||||||
<updated>2018-10-08T00:00::00:Z</updated>
|
<updated>2018-10-08T00:00::00:Z</updated>
|
||||||
|
@ -36,8 +38,13 @@ const char * sampleOpdsStream = R"(
|
||||||
<author>
|
<author>
|
||||||
<name>Wikipedia</name>
|
<name>Wikipedia</name>
|
||||||
</author>
|
</author>
|
||||||
|
<publisher>
|
||||||
|
<name>Wikipedia Publishing House</name>
|
||||||
|
</publisher>
|
||||||
<link rel="http://opds-spec.org/acquisition/open-access" type="application/x-zim" href="http://download.kiwix.org/zim/wikipedia/wikipedia_fr_tunisie_novid_2018-10.zim.meta4" length="90030080" />
|
<link rel="http://opds-spec.org/acquisition/open-access" type="application/x-zim" href="http://download.kiwix.org/zim/wikipedia/wikipedia_fr_tunisie_novid_2018-10.zim.meta4" length="90030080" />
|
||||||
<link rel="http://opds-spec.org/image/thumbnail" type="image/png" href="/meta?name=favicon&content=wikipedia_fr_tunisie_novid_2018-10" />
|
<link rel="http://opds-spec.org/image/thumbnail" type="image/png" href="/meta?name=favicon&content=wikipedia_fr_tunisie_novid_2018-10" />
|
||||||
|
<mediaCount>1100</mediaCount>
|
||||||
|
<articleCount>172</articleCount>
|
||||||
</entry>
|
</entry>
|
||||||
<entry>
|
<entry>
|
||||||
<title>Tania Louis</title>
|
<title>Tania Louis</title>
|
||||||
|
@ -224,6 +231,64 @@ const char sampleLibraryXML[] = R"(
|
||||||
namespace
|
namespace
|
||||||
{
|
{
|
||||||
|
|
||||||
|
TEST(LibraryOpdsImportTest, allInOne)
|
||||||
|
{
|
||||||
|
kiwix::Library lib;
|
||||||
|
kiwix::Manager manager(&lib);
|
||||||
|
manager.readOpds(sampleOpdsStream, "library-opds-import.unittests.dev");
|
||||||
|
|
||||||
|
EXPECT_EQ(10U, lib.getBookCount(true, true));
|
||||||
|
|
||||||
|
{
|
||||||
|
const kiwix::Book& book1 = lib.getBookById("0c45160e-f917-760a-9159-dfe3c53cdcdd");
|
||||||
|
|
||||||
|
EXPECT_EQ(book1.getTitle(), "Encyclopédie de la Tunisie");
|
||||||
|
EXPECT_EQ(book1.getName(), "wikipedia_fr_tunisie_novid_2018-10");
|
||||||
|
EXPECT_EQ(book1.getFlavour(), "unforgettable");
|
||||||
|
EXPECT_EQ(book1.getLanguage(), "fra");
|
||||||
|
EXPECT_EQ(book1.getDate(), "2018-10-08");
|
||||||
|
EXPECT_EQ(book1.getDescription(), "Le meilleur de Wikipédia sur la Tunisie");
|
||||||
|
EXPECT_EQ(book1.getCreator(), "Wikipedia");
|
||||||
|
EXPECT_EQ(book1.getPublisher(), "Wikipedia Publishing House");
|
||||||
|
EXPECT_EQ(book1.getTags(), "wikipedia;novid;_ftindex");
|
||||||
|
EXPECT_EQ(book1.getCategory(), "");
|
||||||
|
EXPECT_EQ(book1.getUrl(), "http://download.kiwix.org/zim/wikipedia/wikipedia_fr_tunisie_novid_2018-10.zim.meta4");
|
||||||
|
EXPECT_EQ(book1.getSize(), 90030080UL);
|
||||||
|
EXPECT_EQ(book1.getMediaCount(), 1100U); // Roman MC (MediaCount) is 1100
|
||||||
|
EXPECT_EQ(book1.getArticleCount(), 172U); // Hex AC (ArticleCount) is 172
|
||||||
|
|
||||||
|
const auto illustration = book1.getIllustration(48);
|
||||||
|
EXPECT_EQ(illustration->width, 48U);
|
||||||
|
EXPECT_EQ(illustration->height, 48U);
|
||||||
|
EXPECT_EQ(illustration->mimeType, "image/png");
|
||||||
|
EXPECT_EQ(illustration->url, "library-opds-import.unittests.dev/meta?name=favicon&content=wikipedia_fr_tunisie_novid_2018-10");
|
||||||
|
}
|
||||||
|
|
||||||
|
{
|
||||||
|
const kiwix::Book& book2 = lib.getBookById("0189d9be-2fd0-b4b6-7300-20fab0b5cdc8");
|
||||||
|
EXPECT_EQ(book2.getTitle(), "TED talks - Business");
|
||||||
|
EXPECT_EQ(book2.getName(), "");
|
||||||
|
EXPECT_EQ(book2.getFlavour(), "");
|
||||||
|
EXPECT_EQ(book2.getLanguage(), "eng");
|
||||||
|
EXPECT_EQ(book2.getDate(), "2018-07-23");
|
||||||
|
EXPECT_EQ(book2.getDescription(), "Ideas worth spreading");
|
||||||
|
EXPECT_EQ(book2.getCreator(), "TED");
|
||||||
|
EXPECT_EQ(book2.getPublisher(), "");
|
||||||
|
EXPECT_EQ(book2.getTags(), "");
|
||||||
|
EXPECT_EQ(book2.getCategory(), "");
|
||||||
|
EXPECT_EQ(book2.getUrl(), "http://download.kiwix.org/zim/ted/ted_en_business_2018-07.zim.meta4");
|
||||||
|
EXPECT_EQ(book2.getSize(), 8855827456UL);
|
||||||
|
EXPECT_EQ(book2.getMediaCount(), 0U);
|
||||||
|
EXPECT_EQ(book2.getArticleCount(), 0U);
|
||||||
|
|
||||||
|
const auto illustration = book2.getIllustration(48);
|
||||||
|
EXPECT_EQ(illustration->width, 48U);
|
||||||
|
EXPECT_EQ(illustration->height, 48U);
|
||||||
|
EXPECT_EQ(illustration->mimeType, "image/png");
|
||||||
|
EXPECT_EQ(illustration->url, "library-opds-import.unittests.dev/meta?name=favicon&content=ted_en_business_2018-07");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
class LibraryTest : public ::testing::Test {
|
class LibraryTest : public ::testing::Test {
|
||||||
protected:
|
protected:
|
||||||
typedef kiwix::Library::BookIdCollection BookIdCollection;
|
typedef kiwix::Library::BookIdCollection BookIdCollection;
|
||||||
|
@ -292,7 +357,8 @@ TEST_F(LibraryTest, sanityCheck)
|
||||||
EXPECT_EQ(lib.getBooksPublishers(), std::vector<std::string>({
|
EXPECT_EQ(lib.getBooksPublishers(), std::vector<std::string>({
|
||||||
"",
|
"",
|
||||||
"Kiwix",
|
"Kiwix",
|
||||||
"Kiwix & Some Enthusiasts"
|
"Kiwix & Some Enthusiasts",
|
||||||
|
"Wikipedia Publishing House"
|
||||||
}));
|
}));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue