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");