blob: ea52e468b103cbb1bd486174980ef67edb1236c1 [file] [log] [blame]
#include "s3http_headers.cpp"
#include "gtest/gtest.h"
TEST(Common, GetFieldString) {
EXPECT_STREQ("Host", GetFieldString(HOST));
EXPECT_STREQ("Range", GetFieldString(RANGE));
EXPECT_STREQ("Date", GetFieldString(DATE));
EXPECT_STREQ("Content-Length", GetFieldString(CONTENTLENGTH));
EXPECT_STREQ("Content-MD5", GetFieldString(CONTENTMD5));
EXPECT_STREQ("Content-Type", GetFieldString(CONTENTTYPE));
EXPECT_STREQ("Expect", GetFieldString(EXPECT));
EXPECT_STREQ("Authorization", GetFieldString(AUTHORIZATION));
EXPECT_STREQ("ETag", GetFieldString(ETAG));
EXPECT_STREQ("x-amz-date", GetFieldString(X_AMZ_DATE));
EXPECT_STREQ("x-amz-content-sha256", GetFieldString(X_AMZ_CONTENT_SHA256));
EXPECT_STREQ("x-amz-server-side-encryption", GetFieldString(X_AMZ_SERVER_SIDE_ENCRYPTION));
EXPECT_STREQ("Unknown", GetFieldString((HeaderField)INT_MAX));
}
TEST(Common, HTTPHeaders) {
#define HOSTSTR "www.google.com"
#define RANGESTR "1-10000"
#define MD5STR "xxxxxxxxxxxxxxxxxxx"
HTTPHeaders headers;
headers.CreateList();
curl_slist *headersList = headers.GetList();
EXPECT_EQ((void *)NULL, headersList);
headers.FreeList();
ASSERT_FALSE(headers.Add(HOST, ""));
ASSERT_TRUE(headers.Add(HOST, HOSTSTR));
ASSERT_TRUE(headers.Add(RANGE, RANGESTR));
ASSERT_TRUE(headers.Add(CONTENTMD5, MD5STR));
EXPECT_STREQ(HOSTSTR, headers.Get(HOST));
EXPECT_STREQ(RANGESTR, headers.Get(RANGE));
EXPECT_STREQ(MD5STR, headers.Get(CONTENTMD5));
headers.CreateList();
headersList = headers.GetList();
ASSERT_NE((void *)NULL, headersList);
EXPECT_STREQ(headersList->data, "Host: www.google.com");
headersList = headersList->next;
EXPECT_STREQ(headersList->data, "Range: 1-10000");
headersList = headersList->next;
EXPECT_STREQ(headersList->data, "Content-MD5: xxxxxxxxxxxxxxxxxxx");
headersList = headersList->next;
EXPECT_EQ((void *)NULL, headersList);
headers.FreeList();
}
TEST(Common, HTTPHeadersDisable) {
HTTPHeaders headers;
headers.Disable(CONTENTLENGTH);
headers.CreateList();
curl_slist *headersList = headers.GetList();
ASSERT_NE((void *)NULL, headersList);
EXPECT_STREQ(headersList->data, "Content-Length:");
headersList = headersList->next;
EXPECT_EQ((void *)NULL, headersList);
headers.FreeList();
}