diff options
author | trofimenkov <trofimenkov@yandex-team.ru> | 2022-02-10 16:49:30 +0300 |
---|---|---|
committer | Daniil Cherednik <dcherednik@yandex-team.ru> | 2022-02-10 16:49:30 +0300 |
commit | 30cebc2cfa79af3b577760a113e203a79450e6b6 (patch) | |
tree | 49327bf3c28fab534b04b312a39179e70f7c2763 /library/cpp/http/io | |
parent | a2d2743094c8d255cda4011b317235874db4d01c (diff) | |
download | ydb-30cebc2cfa79af3b577760a113e203a79450e6b6.tar.gz |
Restoring authorship annotation for <trofimenkov@yandex-team.ru>. Commit 1 of 2.
Diffstat (limited to 'library/cpp/http/io')
-rw-r--r-- | library/cpp/http/io/headers.h | 6 | ||||
-rw-r--r-- | library/cpp/http/io/headers_ut.cpp | 256 |
2 files changed, 131 insertions, 131 deletions
diff --git a/library/cpp/http/io/headers.h b/library/cpp/http/io/headers.h index a71793d1c6..5df294fa71 100644 --- a/library/cpp/http/io/headers.h +++ b/library/cpp/http/io/headers.h @@ -84,11 +84,11 @@ public: /// Добавляет заголовок в контейнер. void AddHeader(THttpInputHeader header); - template <typename ValueType> + template <typename ValueType> void AddHeader(TString name, const ValueType& value) { AddHeader(THttpInputHeader(std::move(name), ToString(value))); - } - + } + /// Добавляет заголовок в контейнер, если тот не содержит заголовка /// c таким же параметром. В противном случае, заменяет существующий /// заголовок на новый. diff --git a/library/cpp/http/io/headers_ut.cpp b/library/cpp/http/io/headers_ut.cpp index 1d23ef8fdc..2f6c19b812 100644 --- a/library/cpp/http/io/headers_ut.cpp +++ b/library/cpp/http/io/headers_ut.cpp @@ -1,78 +1,78 @@ -#include <util/generic/set.h> +#include <util/generic/set.h> #include <util/generic/string.h> -#include <util/generic/strbuf.h> +#include <util/generic/strbuf.h> #include <utility> - + #include <library/cpp/http/io/headers.h> #include <library/cpp/testing/unittest/registar.h> - -namespace { - class THeadersExistence { - public: + +namespace { + class THeadersExistence { + public: THeadersExistence() = default; - - THeadersExistence(const THttpHeaders& headers) { - for (THttpHeaders::TConstIterator it = headers.Begin(); + + THeadersExistence(const THttpHeaders& headers) { + for (THttpHeaders::TConstIterator it = headers.Begin(); it != headers.End(); ++it) { - Add(it->Name(), it->Value()); - } - } - - public: + Add(it->Name(), it->Value()); + } + } + + public: void Add(TStringBuf name, TStringBuf value) { Impl.emplace(TString(name), TString(value)); - } - + } + bool operator==(const THeadersExistence& rhs) const { - return Impl == rhs.Impl; - } - - private: + return Impl == rhs.Impl; + } + + private: typedef TMultiSet<std::pair<TString, TString>> TImpl; - TImpl Impl; - }; -} - + TImpl Impl; + }; +} + bool operator==(const THeadersExistence& lhs, const THttpHeaders& rhs) { - return lhs == THeadersExistence(rhs); -} - + return lhs == THeadersExistence(rhs); +} + bool operator==(const THttpHeaders& lhs, const THeadersExistence& rhs) { - return THeadersExistence(lhs) == rhs; -} - -class THttpHeadersTest: public TTestBase { - UNIT_TEST_SUITE(THttpHeadersTest); - UNIT_TEST(TestAddOperation1Arg); - UNIT_TEST(TestAddOperation2Args); - UNIT_TEST(TestAddOrReplaceOperation1Arg); - UNIT_TEST(TestAddOrReplaceOperation2Args); - UNIT_TEST(TestAddHeaderTemplateness); + return THeadersExistence(lhs) == rhs; +} + +class THttpHeadersTest: public TTestBase { + UNIT_TEST_SUITE(THttpHeadersTest); + UNIT_TEST(TestAddOperation1Arg); + UNIT_TEST(TestAddOperation2Args); + UNIT_TEST(TestAddOrReplaceOperation1Arg); + UNIT_TEST(TestAddOrReplaceOperation2Args); + UNIT_TEST(TestAddHeaderTemplateness); UNIT_TEST(TestFindHeader); - UNIT_TEST_SUITE_END(); - -private: + UNIT_TEST_SUITE_END(); + +private: typedef void (*TAddHeaderFunction)(THttpHeaders&, TStringBuf name, TStringBuf value); typedef void (*TAddOrReplaceHeaderFunction)(THttpHeaders&, TStringBuf name, TStringBuf value); - -public: - void TestAddOperation1Arg(); - void TestAddOperation2Args(); - void TestAddOrReplaceOperation1Arg(); - void TestAddOrReplaceOperation2Args(); - void TestAddHeaderTemplateness(); + +public: + void TestAddOperation1Arg(); + void TestAddOperation2Args(); + void TestAddOrReplaceOperation1Arg(); + void TestAddOrReplaceOperation2Args(); + void TestAddHeaderTemplateness(); void TestFindHeader(); - -private: + +private: static void AddHeaderImpl1Arg(THttpHeaders& headers, TStringBuf name, TStringBuf value) { headers.AddHeader(THttpInputHeader(TString(name), TString(value))); - } - + } + static void AddHeaderImpl2Args(THttpHeaders& headers, TStringBuf name, TStringBuf value) { headers.AddHeader(TString(name), TString(value)); - } - + } + static void AddOrReplaceHeaderImpl1Arg(THttpHeaders& headers, TStringBuf name, TStringBuf value) { headers.AddOrReplaceHeader(THttpInputHeader(TString(name), TString(value))); } @@ -81,91 +81,91 @@ private: headers.AddOrReplaceHeader(TString(name), TString(value)); } - void DoTestAddOperation(TAddHeaderFunction); + void DoTestAddOperation(TAddHeaderFunction); void DoTestAddOrReplaceOperation(TAddHeaderFunction, TAddOrReplaceHeaderFunction); -}; - -UNIT_TEST_SUITE_REGISTRATION(THttpHeadersTest); - -void THttpHeadersTest::TestAddOperation1Arg() { - DoTestAddOperation(AddHeaderImpl1Arg); -} -void THttpHeadersTest::TestAddOperation2Args() { - DoTestAddOperation(AddHeaderImpl2Args); -} - -void THttpHeadersTest::TestAddOrReplaceOperation1Arg() { +}; + +UNIT_TEST_SUITE_REGISTRATION(THttpHeadersTest); + +void THttpHeadersTest::TestAddOperation1Arg() { + DoTestAddOperation(AddHeaderImpl1Arg); +} +void THttpHeadersTest::TestAddOperation2Args() { + DoTestAddOperation(AddHeaderImpl2Args); +} + +void THttpHeadersTest::TestAddOrReplaceOperation1Arg() { DoTestAddOrReplaceOperation(AddHeaderImpl1Arg, AddOrReplaceHeaderImpl1Arg); -} -void THttpHeadersTest::TestAddOrReplaceOperation2Args() { +} +void THttpHeadersTest::TestAddOrReplaceOperation2Args() { DoTestAddOrReplaceOperation(AddHeaderImpl2Args, AddOrReplaceHeaderImpl2Args); -} - -void THttpHeadersTest::DoTestAddOperation(TAddHeaderFunction addHeader) { - THttpHeaders h1; - - addHeader(h1, "h1", "v1"); - addHeader(h1, "h2", "v1"); - - addHeader(h1, "h3", "v1"); - addHeader(h1, "h3", "v2"); - addHeader(h1, "h3", "v2"); - - THeadersExistence h2; - - h2.Add("h1", "v1"); - h2.Add("h2", "v1"); - - h2.Add("h3", "v1"); - h2.Add("h3", "v2"); - h2.Add("h3", "v2"); - - UNIT_ASSERT(h2 == h1); -} - -// Sorry, but AddOrReplaceHeader replaces only first occurence +} + +void THttpHeadersTest::DoTestAddOperation(TAddHeaderFunction addHeader) { + THttpHeaders h1; + + addHeader(h1, "h1", "v1"); + addHeader(h1, "h2", "v1"); + + addHeader(h1, "h3", "v1"); + addHeader(h1, "h3", "v2"); + addHeader(h1, "h3", "v2"); + + THeadersExistence h2; + + h2.Add("h1", "v1"); + h2.Add("h2", "v1"); + + h2.Add("h3", "v1"); + h2.Add("h3", "v2"); + h2.Add("h3", "v2"); + + UNIT_ASSERT(h2 == h1); +} + +// Sorry, but AddOrReplaceHeader replaces only first occurence void THttpHeadersTest::DoTestAddOrReplaceOperation(TAddHeaderFunction addHeader, TAddOrReplaceHeaderFunction addOrReplaceHeader) { - THttpHeaders h1; - - addHeader(h1, "h1", "v1"); - + THttpHeaders h1; + + addHeader(h1, "h1", "v1"); + addOrReplaceHeader(h1, "h2", "v1"); addOrReplaceHeader(h1, "h2", "v2"); addOrReplaceHeader(h1, "h2", "v3"); - addHeader(h1, "h2", "v4"); - - addHeader(h1, "h3", "v1"); - addHeader(h1, "h3", "v2"); + addHeader(h1, "h2", "v4"); + + addHeader(h1, "h3", "v1"); + addHeader(h1, "h3", "v2"); addOrReplaceHeader(h1, "h3", "v3"); - - THeadersExistence h2; - - h2.Add("h1", "v1"); - - h2.Add("h2", "v3"); - h2.Add("h2", "v4"); - - h2.Add("h3", "v2"); - h2.Add("h3", "v3"); - - UNIT_ASSERT(h2 == h1); -} - -void THttpHeadersTest::TestAddHeaderTemplateness() { - THttpHeaders h1; - h1.AddHeader("h1", "v1"); + + THeadersExistence h2; + + h2.Add("h1", "v1"); + + h2.Add("h2", "v3"); + h2.Add("h2", "v4"); + + h2.Add("h3", "v2"); + h2.Add("h3", "v3"); + + UNIT_ASSERT(h2 == h1); +} + +void THttpHeadersTest::TestAddHeaderTemplateness() { + THttpHeaders h1; + h1.AddHeader("h1", "v1"); h1.AddHeader("h2", TString("v2")); h1.AddHeader("h3", TStringBuf("v3")); h1.AddHeader("h4", TStringBuf("v4")); - - THeadersExistence h2; - h2.Add("h1", "v1"); - h2.Add("h2", "v2"); - h2.Add("h3", "v3"); - h2.Add("h4", "v4"); - - UNIT_ASSERT(h1 == h2); -} + + THeadersExistence h2; + h2.Add("h1", "v1"); + h2.Add("h2", "v2"); + h2.Add("h3", "v3"); + h2.Add("h4", "v4"); + + UNIT_ASSERT(h1 == h2); +} void THttpHeadersTest::TestFindHeader() { THttpHeaders sut; |