Less verbose book creation in unit-tests

This commit is contained in:
Veloman Yunkan 2023-03-01 16:28:44 +04:00 committed by Matthieu Gautier
parent 5bda7fd45c
commit 12826a57bd
1 changed files with 37 additions and 52 deletions

View File

@ -58,60 +58,53 @@ TEST(BookTest, updateFromXMLTest)
EXPECT_EQ(defaultIllustration->url, "http://who.org/zara.fav"); EXPECT_EQ(defaultIllustration->url, "http://who.org/zara.fav");
} }
namespace
{
kiwix::Book makeBook(const std::string& attr, const std::string& baseDir="")
{
const XMLDoc xml("<book " + attr + "></book>");
kiwix::Book book;
book.updateFromXml(xml.child("book"), baseDir);
return book;
}
} // unnamed namespace
TEST(BookTest, updateFromXMLCategoryHandlingTest) TEST(BookTest, updateFromXMLCategoryHandlingTest)
{ {
{ {
const XMLDoc xml(R"( const kiwix::Book book = makeBook(R"(
<book id="abcd" id="abcd"
tags="_category:category_defined_via_tags_only" tags="_category:category_defined_via_tags_only"
>
</book>
)"); )");
kiwix::Book book;
book.updateFromXml(xml.child("book"), "");
EXPECT_EQ(book.getCategory(), "category_defined_via_tags_only"); EXPECT_EQ(book.getCategory(), "category_defined_via_tags_only");
} }
{ {
const XMLDoc xml(R"( const kiwix::Book book = makeBook(R"(
<book id="abcd" id="abcd"
category="category_defined_via_attribute_only" category="category_defined_via_attribute_only"
>
</book>
)"); )");
kiwix::Book book;
book.updateFromXml(xml.child("book"), "");
EXPECT_EQ(book.getCategory(), "category_defined_via_attribute_only"); EXPECT_EQ(book.getCategory(), "category_defined_via_attribute_only");
} }
{ {
const XMLDoc xml(R"( const kiwix::Book book = makeBook(R"(
<book id="abcd" id="abcd"
category="category_attribute_overrides_tags" category="category_attribute_overrides_tags"
tags="_category:tags_override_category_attribute" tags="_category:tags_override_category_attribute"
>
</book>
)"); )");
kiwix::Book book;
book.updateFromXml(xml.child("book"), "");
EXPECT_EQ(book.getCategory(), "category_attribute_overrides_tags"); EXPECT_EQ(book.getCategory(), "category_attribute_overrides_tags");
} }
{ {
const XMLDoc xml(R"( const kiwix::Book book = makeBook(R"(
<book id="abcd" id="abcd"
tags="_category:tags_override_category_attribute" tags="_category:tags_override_category_attribute"
category="category_attribute_overrides_tags" category="category_attribute_overrides_tags"
>
</book>
)"); )");
kiwix::Book book;
book.updateFromXml(xml.child("book"), "");
EXPECT_EQ(book.getCategory(), "category_attribute_overrides_tags"); EXPECT_EQ(book.getCategory(), "category_attribute_overrides_tags");
} }
} }
@ -126,10 +119,7 @@ TEST(BookTest, setTagsDoesntAffectCategory)
TEST(BookTest, updateCopiesCategory) TEST(BookTest, updateCopiesCategory)
{ {
const XMLDoc xml(R"(<book id="abcd" category="ted"></book>)"); const kiwix::Book book = makeBook(R"(id="abcd" category="ted")");
kiwix::Book book;
book.updateFromXml(xml.child("book"), "");
kiwix::Book newBook; kiwix::Book newBook;
newBook.setId("abcd"); newBook.setId("abcd");
@ -140,20 +130,15 @@ TEST(BookTest, updateCopiesCategory)
TEST(BookTest, updateTest) TEST(BookTest, updateTest)
{ {
const XMLDoc xml(R"( kiwix::Book book = makeBook(R"(
<book id="xyz" id="xyz"
path="/home/user/Downloads/skin-of-color-society_en_all_2019-11.zim" path="/home/user/Downloads/skin-of-color-society_en_all_2019-11.zim"
url="book-url" url="book-url"
name="skin-of-color-society_en_all" name="skin-of-color-society_en_all"
tags="youtube;_videos:yes;_ftindex:yes;_ftindex:yes;_pictures:yes;_details:yes" tags="youtube;_videos:yes;_ftindex:yes;_ftindex:yes;_pictures:yes;_details:yes"
favicon="Ym9vay1mYXZpY29u" favicon="Ym9vay1mYXZpY29u"
faviconMimeType="book-favicon-mimetype" faviconMimeType="book-favicon-mimetype"
> )", "/data/zim");
</book>
)");
kiwix::Book book;
book.updateFromXml(xml.child("book"), "/data/zim");
book.setReadOnly(false); book.setReadOnly(false);
book.setPathValid(true); book.setPathValid(true);