From 1fccd0d5eafd56049a8a381543dd83d5559fbf25 Mon Sep 17 00:00:00 2001 From: Ed Tanous Date: Tue, 19 Mar 2024 09:16:16 -0700 Subject: Allow no spaces in content-type For the content type header application/json;charset=utf-8 The Redfish specification DSP0266 shows no space between the ; and charset. Sites like mozilla show the space included [1] Considering the discrepancy, we should just accept both. Resolves #271 [1] https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Type Tested: Submitter reports issue fixed. Change-Id: I77b7db91d65acc84f2221ec50985d4b942fbe77f Signed-off-by: Ed Tanous --- test/http/parsing_test.cpp | 32 ++++++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) create mode 100644 test/http/parsing_test.cpp (limited to 'test') diff --git a/test/http/parsing_test.cpp b/test/http/parsing_test.cpp new file mode 100644 index 0000000000..e51e89cf98 --- /dev/null +++ b/test/http/parsing_test.cpp @@ -0,0 +1,32 @@ +#include "http/parsing.hpp" + +#include + +namespace +{ + +TEST(HttpParsing, isJsonContentType) +{ + EXPECT_TRUE(isJsonContentType("application/json")); + + // The Redfish specification DSP0266 shows no space between the ; and + // charset. + EXPECT_TRUE(isJsonContentType("application/json;charset=utf-8")); + + // Sites like mozilla show the space included [1] + // https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Type + EXPECT_TRUE(isJsonContentType("application/json; charset=utf-8")); + + EXPECT_TRUE(isJsonContentType("APPLICATION/JSON")); + EXPECT_TRUE(isJsonContentType("APPLICATION/JSON; CHARSET=UTF-8")); + EXPECT_TRUE(isJsonContentType("APPLICATION/JSON;CHARSET=UTF-8")); + + EXPECT_FALSE(isJsonContentType("application/xml")); + EXPECT_FALSE(isJsonContentType("")); + EXPECT_FALSE(isJsonContentType(";")); + EXPECT_FALSE(isJsonContentType("application/json;")); + EXPECT_FALSE(isJsonContentType("application/json; ")); + EXPECT_FALSE(isJsonContentType("application/json; charset=ascii")); + EXPECT_FALSE(isJsonContentType("json")); +} +} // namespace -- cgit v1.2.3