(ixwebsocket) Fix #252 / regression in 11.0.2 with string comparisons

This commit is contained in:
Benjamin Sergeant
2020-11-16 08:41:08 -08:00
parent 80432edbd0
commit 866670a906
6 changed files with 75 additions and 4 deletions

View File

@ -0,0 +1,46 @@
/*
* IXStrCaseCompareTest.cpp
* Author: Benjamin Sergeant
* Copyright (c) 2020 Machine Zone. All rights reserved.
*/
#include "IXTest.h"
#include "catch.hpp"
#include <iostream>
#include <ixwebsocket/IXUrlParser.h>
#include <string.h>
using namespace ix;
namespace ix
{
TEST_CASE("str_case_compare", "[str_case_compare]")
{
SECTION("1")
{
using HttpHeaders = std::map<std::string, std::string, CaseInsensitiveLess>;
HttpHeaders httpHeaders;
httpHeaders["foo"] = "foo";
REQUIRE(httpHeaders["foo"] == "foo");
REQUIRE(httpHeaders["missing"] == "");
// Comparison should be case insensitive
REQUIRE(httpHeaders["Foo"] == "foo");
}
SECTION("2")
{
using HttpHeaders = std::map<std::string, std::string, CaseInsensitiveLess>;
HttpHeaders headers;
headers["Upgrade"] = "webSocket";
REQUIRE(CaseInsensitiveLess::cmp(headers["upgrade"], "WebSocket") == 0);
}
}
} // namespace ix