mirror of https://github.com/kiwix/libkiwix.git
New unit-test ServerTest.404WithBodyTesting
The `ServerTest.RandomOnNonExistentBook` unit test was replaced with a more general one testing multiple 404 scenarios where the content of the body is checked too.
This commit is contained in:
parent
5f4256b900
commit
0ba452aece
|
@ -364,18 +364,59 @@ std::string makeExpected404Response(const std::string& body)
|
||||||
return removeEOLWhitespaceMarkers(preBody + body + postBody);
|
return removeEOLWhitespaceMarkers(preBody + body + postBody);
|
||||||
}
|
}
|
||||||
|
|
||||||
TEST_F(ServerTest, RandomOnNonExistentBook)
|
TEST_F(ServerTest, 404WithBodyTesting)
|
||||||
{
|
{
|
||||||
const auto r = zfs1_->GET("/ROOT/random?content=non-existent-book");
|
typedef std::pair<std::string, std::string> UrlAndExpectedBody;
|
||||||
const std::string expectedResponse = makeExpected404Response(R"(
|
const std::vector<UrlAndExpectedBody> testData{
|
||||||
|
{ /* url */ "/ROOT/random?content=non-existent-book",
|
||||||
|
/* expected body */ R"(
|
||||||
<h1>Not Found</h1>
|
<h1>Not Found</h1>
|
||||||
//EOLWHITESPACEMARKER
|
//EOLWHITESPACEMARKER
|
||||||
<p>
|
<p>
|
||||||
No such book: non-existent-book
|
No such book: non-existent-book
|
||||||
</p>
|
</p>
|
||||||
)");
|
)" },
|
||||||
|
|
||||||
EXPECT_EQ(r->body, expectedResponse);
|
{ /* url */ "/ROOT/suggest?content=no-such-book&term=whatever",
|
||||||
|
/* expected body */ R"(
|
||||||
|
<h1>Not Found</h1>
|
||||||
|
//EOLWHITESPACEMARKER
|
||||||
|
<p>
|
||||||
|
No such book: no-such-book
|
||||||
|
</p>
|
||||||
|
)" },
|
||||||
|
|
||||||
|
{ /* url */ "/ROOT/raw/no-such-book/meta/Title",
|
||||||
|
/* expected body */ R"(
|
||||||
|
<h1>Not Found</h1>
|
||||||
|
<p>
|
||||||
|
The requested URL "/ROOT/raw/no-such-book/meta/Title" was not found on this server.
|
||||||
|
</p>
|
||||||
|
<p>
|
||||||
|
No such book: no-such-book
|
||||||
|
</p>
|
||||||
|
)" },
|
||||||
|
|
||||||
|
{ /* url */ "/ROOT/raw/zimfile/XYZ",
|
||||||
|
/* expected body */ R"(
|
||||||
|
<h1>Not Found</h1>
|
||||||
|
<p>
|
||||||
|
The requested URL "/ROOT/raw/zimfile/XYZ" was not found on this server.
|
||||||
|
</p>
|
||||||
|
<p>
|
||||||
|
XYZ is not a valid request for raw content.
|
||||||
|
</p>
|
||||||
|
)" }
|
||||||
|
};
|
||||||
|
|
||||||
|
for ( const auto& urlAndExpectedBody : testData ) {
|
||||||
|
const std::string url = urlAndExpectedBody.first;
|
||||||
|
const std::string expectedBody = urlAndExpectedBody.second;
|
||||||
|
const TestContext ctx{ {"url", url} };
|
||||||
|
const auto r = zfs1_->GET(url.c_str());
|
||||||
|
EXPECT_EQ(r->status, 404) << ctx;
|
||||||
|
EXPECT_EQ(r->body, makeExpected404Response(expectedBody)) << ctx;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
TEST_F(ServerTest, RandomPageRedirectsToAnExistingArticle)
|
TEST_F(ServerTest, RandomPageRedirectsToAnExistingArticle)
|
||||||
|
|
Loading…
Reference in New Issue