From 599aaa4c1b5649c946f8bf25d4e3a042b6789877 Mon Sep 17 00:00:00 2001 From: MananJethwani Date: Wed, 29 Jul 2020 15:32:49 +0530 Subject: [PATCH] added code for status code 204 for empty return of search. --- src/server.cpp | 7 +++++++ test/server.cpp | 11 ++++++++++- 2 files changed, 17 insertions(+), 1 deletion(-) diff --git a/src/server.cpp b/src/server.cpp index 22bc17a07..bf7f33f9b 100644 --- a/src/server.cpp +++ b/src/server.cpp @@ -740,6 +740,13 @@ Response InternalServer::handle_search(const RequestContext& request) } catch (const std::exception& e) { std::cerr << e.what() << std::endl; } + + //changing status code if no result obtained + if(searcher.getEstimatedResultCount() == 0) + { + response.set_code(MHD_HTTP_NO_CONTENT); + } + return response; } diff --git a/test/server.cpp b/test/server.cpp index 0f6e801f7..af4837123 100644 --- a/test/server.cpp +++ b/test/server.cpp @@ -155,7 +155,7 @@ const ResourceCollection resources200Compressible{ { NO_ETAG, "/catalog/searchdescription.xml" }, { NO_ETAG, "/catalog/search" }, - { NO_ETAG, "/search?content=zimfile&pattern=abcd" }, + { NO_ETAG, "/search?content=zimfile&pattern=a" }, { NO_ETAG, "/suggest?content=zimfile&term=ray" }, @@ -197,6 +197,15 @@ TEST_F(ServerTest, 200) EXPECT_EQ(200, zfs1_->GET(res.url)->status) << "res.url: " << res.url; } +// seperate test for 204 code + +TEST_F(ServerTest, EmptySearchReturnsA204StatusCode) +{ + const char* url="/search?content=zimfile&pattern=abcd"; + auto res=zfs1_->GET(url); + EXPECT_EQ(204, res->status) << "res.url: " << url; +} + TEST_F(ServerTest, CompressibleContentIsCompressedIfAcceptable) { for ( const Resource& res : resources200Compressible ) {