#include "include/cef_response.h"
#include "tests/ceftests/test_util.h"
#include "tests/gtest/include/gtest/gtest.h"
TEST(ResponseTest, SetGetHeaderByName) {
CefRefPtr<CefResponse> response(CefResponse::Create());
EXPECT_TRUE(response.get() != nullptr);
CefResponse::HeaderMap headers, expectedHeaders;
response->SetHeaderByName("HeaderA", "ValueA", false);
response->SetHeaderByName("HeaderB", "ValueB", false);
expectedHeaders.insert(std::make_pair("HeaderA", "ValueA"));
expectedHeaders.insert(std::make_pair("HeaderB", "ValueB"));
EXPECT_STREQ("ValueA",
response->GetHeaderByName("headera").ToString().c_str());
EXPECT_STREQ("ValueB",
response->GetHeaderByName("headerb").ToString().c_str());
EXPECT_STREQ("", response->GetHeaderByName("noexist").ToString().c_str());
response->GetHeaderMap(headers);
TestMapEqual(expectedHeaders, headers, false);
response->SetHeaderByName("HeaderA", "ValueANew", true);
expectedHeaders.clear();
expectedHeaders.insert(std::make_pair("HeaderA", "ValueANew"));
expectedHeaders.insert(std::make_pair("HeaderB", "ValueB"));
EXPECT_STREQ("ValueANew",
response->GetHeaderByName("headerA").ToString().c_str());
response->GetHeaderMap(headers);
TestMapEqual(expectedHeaders, headers, false);
expectedHeaders.clear();
expectedHeaders.insert(std::make_pair("HeaderA", "ValueA1"));
expectedHeaders.insert(std::make_pair("HeaderA", "ValueA2"));
expectedHeaders.insert(std::make_pair("HeaderB", "ValueB"));
response->SetHeaderMap(expectedHeaders);
EXPECT_STREQ("ValueA1",
response->GetHeaderByName("headera").ToString().c_str());
response->SetHeaderByName("HeaderA", "ValueANew", false);
response->GetHeaderMap(headers);
TestMapEqual(expectedHeaders, headers, false);
response->SetHeaderByName("HeaderA", "ValueANew", true);
expectedHeaders.clear();
expectedHeaders.insert(std::make_pair("HeaderA", "ValueANew"));
expectedHeaders.insert(std::make_pair("HeaderB", "ValueB"));
response->GetHeaderMap(headers);
TestMapEqual(expectedHeaders, headers, false);
}