120 lines
3.3 KiB
C++
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);
|
|
}
|
|
|
|
};
|