diff --git a/test/library_server.cpp b/test/library_server.cpp
index 98b7f0b75..277d139a2 100644
--- a/test/library_server.cpp
+++ b/test/library_server.cpp
@@ -18,6 +18,11 @@ protected:
const int PORT = 8002;
protected:
+ void resetServer(ZimFileServer::Options options) {
+ zfs1_.reset();
+ zfs1_.reset(new ZimFileServer(PORT, options, "./test/library.xml"));
+ }
+
void SetUp() override {
zfs1_.reset(new ZimFileServer(PORT, ZimFileServer::DEFAULT_OPTIONS, "./test/library.xml"));
}
@@ -95,7 +100,7 @@ std::string maskVariableOPDSFeedData(std::string s)
" \n"
-#define CHARLES_RAY_CATALOG_ENTRY CATALOG_ENTRY( \
+#define _CHARLES_RAY_CATALOG_ENTRY(CONTENT_NAME) CATALOG_ENTRY( \
"charlesray", \
"Charles, Ray", \
"Wikipedia articles about Ray Charles", \
@@ -104,12 +109,14 @@ std::string maskVariableOPDSFeedData(std::string s)
"jazz",\
"unittest;wikipedia;_category:jazz;_pictures:no;_videos:no;_details:no;_ftindex:yes",\
"", \
- "zimfile%26other", \
+ CONTENT_NAME, \
"zimfile%26other", \
"569344" \
)
-#define RAY_CHARLES_CATALOG_ENTRY CATALOG_ENTRY(\
+#define CHARLES_RAY_CATALOG_ENTRY _CHARLES_RAY_CATALOG_ENTRY("zimfile%26other")
+
+#define _RAY_CHARLES_CATALOG_ENTRY(CONTENT_NAME) CATALOG_ENTRY(\
"raycharles",\
"Ray Charles",\
"Wikipedia articles about Ray Charles",\
@@ -120,11 +127,13 @@ std::string maskVariableOPDSFeedData(std::string s)
"\n ", \
- "zimfile", \
+ CONTENT_NAME, \
"zimfile", \
"569344"\
)
+#define RAY_CHARLES_CATALOG_ENTRY _RAY_CHARLES_CATALOG_ENTRY("zimfile")
+
#define UNCATEGORIZED_RAY_CHARLES_CATALOG_ENTRY CATALOG_ENTRY(\
"raycharles_uncategorized",\
"Ray (uncategorized) Charles",\
@@ -774,51 +783,11 @@ TEST_F(LibraryServerTest, catalog_search_excludes_hidden_tags)
#undef EXPECT_ZERO_RESULTS
}
-
-// Same as CHARLES_RAY_CATALOG_ENTRY but with link using the uuid (charlesray).
-#define NO_MAPPER_CHARLES_RAY_CATALOG_ENTRY \
- " \n" \
- " urn:uuid:charlesray\n" \
- " Charles, Ray\n" \
- " YYYY-MM-DDThh:mm:ssZ\n" \
- " Wikipedia articles about Ray Charles\n" \
- " fra\n" \
- " wikipedia_fr_ray_charles\n" \
- " \n" \
- " jazz\n" \
- " unittest;wikipedia;_category:jazz;_pictures:no;_videos:no;_details:no;_ftindex:yes\n" \
- " 284\n" \
- " 2\n" \
- " \n" \
- " \n" \
- " Wikipedia\n" \
- " \n" \
- " \n" \
- " Kiwix\n" \
- " \n" \
- " 2020-03-31T00:00:00Z\n" \
- " \n" \
- " \n"
-
-class NoMapperLibraryServerTest : public ::testing::Test
-{
-protected:
- std::unique_ptr zfs1_;
-
- const int PORT = 8002;
-
-protected:
- void SetUp() override {
- zfs1_.reset(new ZimFileServer(PORT, ZimFileServer::NO_NAME_MAPPER, "./test/library.xml"));
- }
-
- void TearDown() override {
- zfs1_.reset();
- }
-};
-
-TEST_F(NoMapperLibraryServerTest, returned_catalog_use_uuid_in_link)
+#define NO_MAPPER_CHARLES_RAY_CATALOG_ENTRY _CHARLES_RAY_CATALOG_ENTRY("charlesray")
+#define NO_MAPPER_RAY_CHARLES_CATALOG_ENTRY _RAY_CHARLES_CATALOG_ENTRY("raycharles")
+TEST_F(LibraryServerTest, no_name_mapper_returned_catalog_use_uuid_in_link)
{
+ resetServer(ZimFileServer::NO_NAME_MAPPER);
const auto r = zfs1_->GET("/ROOT/catalog/search?tag=_category:jazz");
EXPECT_EQ(r->status, 200);
EXPECT_EQ(maskVariableOPDSFeedData(r->body),
@@ -836,5 +805,20 @@ TEST_F(NoMapperLibraryServerTest, returned_catalog_use_uuid_in_link)
}
+TEST_F(LibraryServerTest, no_name_mapper_catalog_v2_individual_entry_access)
+{
+ resetServer(ZimFileServer::NO_NAME_MAPPER);
+ const auto r = zfs1_->GET("/ROOT/catalog/v2/entry/raycharles");
+ EXPECT_EQ(r->status, 200);
+ EXPECT_EQ(maskVariableOPDSFeedData(r->body),
+ "\n"
+ NO_MAPPER_RAY_CHARLES_CATALOG_ENTRY
+ );
+
+ const auto r1 = zfs1_->GET("/ROOT/catalog/v2/entry/non-existent-entry");
+ EXPECT_EQ(r1->status, 404);
+}
+
+
#undef EXPECT_SEARCH_RESULTS
diff --git a/test/server.cpp b/test/server.cpp
index 3da31e5b6..d03f9e6bb 100644
--- a/test/server.cpp
+++ b/test/server.cpp
@@ -134,8 +134,8 @@ TEST_F(ServerTest, 200)
TEST_F(ServerTest, 200_IdNameMapper)
{
resetServer(ZimFileServer::NO_NAME_MAPPER);
- EXPECT_EQ(200, zfs1_->GET("/ROOT/content/6f1d19d0-633f-087b-fb55-7ac324ff9baf/A/index")->status) << "url: /ROOT/content/6f1d19d0-633f-087b-fb55-7ac324ff9baf/A/index";
- EXPECT_EQ(404, zfs1_->GET("/ROOT/content/zimfile/A/index")->status) << "url: /ROOT/content/zimfile/A/index";
+ EXPECT_EQ(200, zfs1_->GET("/ROOT/content/6f1d19d0-633f-087b-fb55-7ac324ff9baf/A/index")->status);
+ EXPECT_EQ(404, zfs1_->GET("/ROOT/content/zimfile/A/index")->status);
}
TEST_F(ServerTest, CompressibleContentIsCompressedIfAcceptable)