diff options
Diffstat (limited to 'test/http/parsing_test.cpp')
-rw-r--r-- | test/http/parsing_test.cpp | 32 |
1 files changed, 32 insertions, 0 deletions
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 <gtest/gtest.h> + +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 |