blob: c9e48f13edacf5d68884d092cf3af1f5eff78ebc [file] [log] [blame]
Austin Schuh24adb6b2015-09-06 17:37:40 -07001#include "internal/HeaderMap.h"
Austin Schuh24adb6b2015-09-06 17:37:40 -07002#include "internal/Config.h"
Austin Schuh9d823002019-04-14 12:53:17 -07003#include <catch2/catch.hpp>
Austin Schuh24adb6b2015-09-06 17:37:40 -07004
5using namespace seasocks;
6
7namespace {
8
Austin Schuh9d823002019-04-14 12:53:17 -07009void emplace(HeaderMap& map, const char* header, const char* value) {
Austin Schuh24adb6b2015-09-06 17:37:40 -070010 map.emplace(header, value);
Austin Schuh24adb6b2015-09-06 17:37:40 -070011}
12
Austin Schuh9d823002019-04-14 12:53:17 -070013TEST_CASE("shouldConstruct", "[HeaderMapTests]") {
Austin Schuh24adb6b2015-09-06 17:37:40 -070014 HeaderMap map;
Austin Schuh9d823002019-04-14 12:53:17 -070015 CHECK(map.empty());
Austin Schuh24adb6b2015-09-06 17:37:40 -070016}
17
Austin Schuh9d823002019-04-14 12:53:17 -070018TEST_CASE("shouldStoreAndRetrieve", "[HeaderMapTests]") {
Austin Schuh24adb6b2015-09-06 17:37:40 -070019 HeaderMap map;
20 emplace(map, "Foo", "Bar");
Austin Schuh9d823002019-04-14 12:53:17 -070021 CHECK(map.size() == 1);
22 CHECK(map.at("Foo") == "Bar");
Austin Schuh24adb6b2015-09-06 17:37:40 -070023 emplace(map, "Baz", "Moo");
Austin Schuh9d823002019-04-14 12:53:17 -070024 CHECK(map.size() == 2);
25 CHECK(map.at("Foo") == "Bar");
26 CHECK(map.at("Baz") == "Moo");
Austin Schuh24adb6b2015-09-06 17:37:40 -070027}
28
Austin Schuh9d823002019-04-14 12:53:17 -070029TEST_CASE("shouldBeCaseInsensitive", "[HeaderMapTests]") {
Austin Schuh24adb6b2015-09-06 17:37:40 -070030 HeaderMap map;
31 emplace(map, "Foo", "Bar");
Austin Schuh9d823002019-04-14 12:53:17 -070032 CHECK(map.at("FOO") == "Bar");
33 CHECK(map.at("foO") == "Bar");
Austin Schuh24adb6b2015-09-06 17:37:40 -070034}
35
Austin Schuh9d823002019-04-14 12:53:17 -070036TEST_CASE("shouldPreserveOriginalCase", "[HeaderMapTests]") {
Austin Schuh24adb6b2015-09-06 17:37:40 -070037 HeaderMap map;
38 emplace(map, "Foo", "Bar");
39 auto it = map.find("Foo");
Austin Schuh9d823002019-04-14 12:53:17 -070040 CHECK(it->first == "Foo");
Austin Schuh24adb6b2015-09-06 17:37:40 -070041}
42
43}