JD2022-TU1/main/extern/UbiServices/custom/testsUnit/testHttpHeader.cpp

120 lines
3.3 KiB
C++

////////////////////////////////////////////////////////////////////////////////
// (c) Copyright, Ubisoft Entertainment Inc. || Created by Harbour //
////////////////////////////////////////////////////////////////////////////////
#include "tests/config.h"
#include "tests/fixture/memoryCheckFixture.h"
#include <ubiservices/services/http/httpHeader.h>
namespace US_NS {;
US_DEFINE_TEST(TestHttpHeader);
typedef LeakCheckerNoScheduler HTTP_HEADER;
TEST_F(HTTP_HEADER, LOCAL_AddLine)
{
struct Local
{
static HttpHeader GetHeaders()
{
SAVE_ALLOC_COUNT(count);
HttpHeader result;
EXPECT_ALLOC_COUNT_PC_EQ(2, count);
result["A"] = "1";
result["B"] = "2";
result["C"] = "3";
result["D"] = "4";
result["E"] = "5";
EXPECT_ALLOC_COUNT_PC_EQ(15, count);
return result;
}
};
SAVE_ALLOC_COUNT(testCount);
{
SAVE_ALLOC_COUNT(count);
HttpHeader header;
EXPECT_ALLOC_COUNT_PC_EQ(2, count);
header = Local::GetHeaders();
EXPECT_ALLOC_COUNT_PC_EQ(22, count);
HttpHeader header2;
EXPECT_ALLOC_COUNT_PC_EQ(2, count);
header2 = header;
EXPECT_ALLOC_COUNT_PC_EQ(header.getHeaderCount(), count);
}
{
SAVE_ALLOC_COUNT(count);
HttpHeader header;
EXPECT_ALLOC_COUNT_PC_EQ(2, count);
const String key = header.addHeaderLine("Key: Value");
EXPECT_ALLOC_COUNT_PC_EQ(11, count);
EXPECT_EQ(String("Key"), key);
EXPECT_EQ(String("Value"), header[key]);
}
{
HttpHeader header;
const String key = header.addHeaderLine("Key:Value");
EXPECT_EQ(String("Key"), key);
EXPECT_EQ(String("Value"), header[key]);
}
{
HttpHeader header;
const String key = header.addHeaderLine("Key : Value");
EXPECT_EQ(String("Key"), key);
EXPECT_EQ(String("Value"), header[key]);
}
{
HttpHeader header;
const String key = header.addHeaderLine("Key = Value");
EXPECT_EQ(String("Key = Value"), key);
EXPECT_EQ(String(), header[key]);
}
EXPECT_ALLOC_COUNT_PC_X1_EQ(88u, 88, testCount);
}
TEST_F(HTTP_HEADER, LOCAL_GetValue)
{
SAVE_ALLOC_COUNT(testCount);
HttpHeader header;
const HttpHeader& constHeader = header;
const char* KEY = "key";
const char* VALUE = "value";
const String key = KEY;
header[key] = VALUE;
EXPECT_STREQ(VALUE, header[key].getUtf8());
EXPECT_STREQ(VALUE, header.getValue(key).getUtf8());
// Try unused key
EXPECT_STREQ(header["otherKey"].getUtf8(), ""); // This add an entry
EXPECT_EQ(2, header.getHeaderCount());
EXPECT_STREQ(header.getValue("anotherKey").getUtf8(), ""); // This must not add an entry
EXPECT_EQ(2, header.getHeaderCount());
// With const HttpHeader
EXPECT_STREQ(VALUE, constHeader[key].getUtf8());
EXPECT_STREQ(VALUE, constHeader.getValue(key).getUtf8());
EXPECT_STREQ("", constHeader["moreKey"].getUtf8()); // This must not add an entry
EXPECT_STREQ("", constHeader.getValue("datKey").getUtf8()); // This must not add an entry
EXPECT_EQ(2, constHeader.getHeaderCount());
EXPECT_ALLOC_COUNT_PC_X1_EQ(11u, 11, testCount);
}
};