blob: f35f76194f4277c6e39f0082a52775664ef3d85a [file] [log] [blame]
Ed Tanous1fccd0d2024-03-19 09:16:16 -07001#include "http/parsing.hpp"
2
3#include <gtest/gtest.h>
4
5namespace
6{
7
8TEST(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"));
Ed Tanouse4628c82024-12-16 10:57:04 -080015 EXPECT_TRUE(isJsonContentType("application/json;charset=ascii"));
Ed Tanous1fccd0d2024-03-19 09:16:16 -070016
17 // Sites like mozilla show the space included [1]
18 // https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Type
19 EXPECT_TRUE(isJsonContentType("application/json; charset=utf-8"));
20
21 EXPECT_TRUE(isJsonContentType("APPLICATION/JSON"));
22 EXPECT_TRUE(isJsonContentType("APPLICATION/JSON; CHARSET=UTF-8"));
23 EXPECT_TRUE(isJsonContentType("APPLICATION/JSON;CHARSET=UTF-8"));
24
25 EXPECT_FALSE(isJsonContentType("application/xml"));
26 EXPECT_FALSE(isJsonContentType(""));
27 EXPECT_FALSE(isJsonContentType(";"));
28 EXPECT_FALSE(isJsonContentType("application/json;"));
29 EXPECT_FALSE(isJsonContentType("application/json; "));
Ed Tanous1fccd0d2024-03-19 09:16:16 -070030 EXPECT_FALSE(isJsonContentType("json"));
31}
32} // namespace