xref: /openbmc/bmcweb/test/http/parsing_test.cpp (revision a529a6aa)
1 #include "http/parsing.hpp"
2 
3 #include <gtest/gtest.h>
4 
5 namespace
6 {
7 
8 TEST(HttpParsing, isJsonContentType)
9 {
10     EXPECT_TRUE(isJsonContentType("application/json"));
11 
12     // The Redfish specification DSP0266 shows no space between the ; and
13     // charset.
14     EXPECT_TRUE(isJsonContentType("application/json;charset=utf-8"));
15 
16     // Sites like mozilla show the space included [1]
17     //  https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Type
18     EXPECT_TRUE(isJsonContentType("application/json; charset=utf-8"));
19 
20     EXPECT_TRUE(isJsonContentType("APPLICATION/JSON"));
21     EXPECT_TRUE(isJsonContentType("APPLICATION/JSON; CHARSET=UTF-8"));
22     EXPECT_TRUE(isJsonContentType("APPLICATION/JSON;CHARSET=UTF-8"));
23 
24     EXPECT_FALSE(isJsonContentType("application/xml"));
25     EXPECT_FALSE(isJsonContentType(""));
26     EXPECT_FALSE(isJsonContentType(";"));
27     EXPECT_FALSE(isJsonContentType("application/json;"));
28     EXPECT_FALSE(isJsonContentType("application/json; "));
29     EXPECT_FALSE(isJsonContentType("application/json; charset=ascii"));
30     EXPECT_FALSE(isJsonContentType("json"));
31 }
32 } // namespace
33