diff --git a/test/library_server.cpp b/test/library_server.cpp
index 4afcbc10b..e5e330d66 100644
--- a/test/library_server.cpp
+++ b/test/library_server.cpp
@@ -317,6 +317,42 @@ TEST_F(LibraryServerTest, catalog_search_by_category)
);
}
+TEST_F(LibraryServerTest, catalog_search_by_language)
+{
+ {
+ const auto r = zfs1_->GET("/ROOT/catalog/search?lang=eng");
+ EXPECT_EQ(r->status, 200);
+ EXPECT_EQ(maskVariableOPDSFeedData(r->body),
+ OPDS_FEED_TAG
+ " 12345678-90ab-cdef-1234-567890abcdef\n"
+ "
Filtered zims (lang=eng)\n"
+ " YYYY-MM-DDThh:mm:ssZ\n"
+ " 1\n"
+ " 0\n"
+ " 1\n"
+ CATALOG_LINK_TAGS
+ RAY_CHARLES_CATALOG_ENTRY
+ "\n"
+ );
+ }
+
+ {
+ const auto r = zfs1_->GET("/ROOT/catalog/search?lang=eng,fra");
+ EXPECT_EQ(r->status, 200);
+ EXPECT_EQ(maskVariableOPDSFeedData(r->body),
+ OPDS_FEED_TAG
+ " 12345678-90ab-cdef-1234-567890abcdef\n"
+ " Filtered zims (lang=eng,fra)\n"
+ " YYYY-MM-DDThh:mm:ssZ\n"
+ " 0\n"
+ " 0\n"
+ " 0\n"
+ CATALOG_LINK_TAGS
+ "\n"
+ );
+ }
+}
+
TEST_F(LibraryServerTest, catalog_search_results_pagination)
{
{
@@ -667,6 +703,38 @@ TEST_F(LibraryServerTest, catalog_v2_entries_filtered_by_search_terms)
);
}
+TEST_F(LibraryServerTest, catalog_v2_entries_filtered_by_language)
+{
+ {
+ const auto r = zfs1_->GET("/ROOT/catalog/v2/entries?lang=eng");
+ EXPECT_EQ(r->status, 200);
+ EXPECT_EQ(maskVariableOPDSFeedData(r->body),
+ CATALOG_V2_ENTRIES_PREAMBLE("?lang=eng")
+ " Filtered Entries (lang=eng)\n"
+ " YYYY-MM-DDThh:mm:ssZ\n"
+ " 1\n"
+ " 0\n"
+ " 1\n"
+ RAY_CHARLES_CATALOG_ENTRY
+ "\n"
+ );
+ }
+
+ {
+ const auto r = zfs1_->GET("/ROOT/catalog/v2/entries?lang=eng,fra");
+ EXPECT_EQ(r->status, 200);
+ EXPECT_EQ(maskVariableOPDSFeedData(r->body),
+ CATALOG_V2_ENTRIES_PREAMBLE("?lang=eng,fra")
+ " Filtered Entries (lang=eng,fra)\n"
+ " YYYY-MM-DDThh:mm:ssZ\n"
+ " 0\n"
+ " 0\n"
+ " 0\n"
+ "\n"
+ );
+ }
+}
+
TEST_F(LibraryServerTest, catalog_v2_individual_entry_access)
{
const auto r = zfs1_->GET("/ROOT/catalog/v2/entry/raycharles");