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