Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(174)

Unified Diff: net/spdy/header_coalescer_test.cc

Issue 2832973003: Split net/spdy into core and chromium subdirectories. (Closed)
Patch Set: Fix some more build rules. Created 3 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « net/spdy/header_coalescer.cc ('k') | net/spdy/hpack/hpack_constants.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: net/spdy/header_coalescer_test.cc
diff --git a/net/spdy/header_coalescer_test.cc b/net/spdy/header_coalescer_test.cc
deleted file mode 100644
index 64900324bc4c30a37d7d823b7b42e771f8dc0213..0000000000000000000000000000000000000000
--- a/net/spdy/header_coalescer_test.cc
+++ /dev/null
@@ -1,140 +0,0 @@
-// Copyright 2016 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#include "net/spdy/header_coalescer.h"
-
-#include <vector>
-
-#include "net/spdy/platform/api/spdy_string.h"
-#include "net/spdy/platform/api/spdy_string_utils.h"
-#include "testing/gmock/include/gmock/gmock.h"
-#include "testing/gtest/include/gtest/gtest.h"
-
-using ::testing::ElementsAre;
-using ::testing::Pair;
-
-namespace net {
-namespace test {
-
-class HeaderCoalescerTest : public ::testing::Test {
- public:
- protected:
- HeaderCoalescer header_coalescer_;
-};
-
-TEST_F(HeaderCoalescerTest, CorrectHeaders) {
- header_coalescer_.OnHeader(":foo", "bar");
- header_coalescer_.OnHeader("baz", "qux");
- EXPECT_FALSE(header_coalescer_.error_seen());
-
- SpdyHeaderBlock header_block = header_coalescer_.release_headers();
- EXPECT_THAT(header_block,
- ElementsAre(Pair(":foo", "bar"), Pair("baz", "qux")));
-}
-
-TEST_F(HeaderCoalescerTest, EmptyHeaderKey) {
- EXPECT_FALSE(header_coalescer_.error_seen());
- header_coalescer_.OnHeader("", "foo");
- EXPECT_TRUE(header_coalescer_.error_seen());
-}
-
-TEST_F(HeaderCoalescerTest, HeaderBlockTooLarge) {
- // 3 byte key, 256 * 1024 - 40 byte value, 32 byte overhead:
- // less than 256 * 1024 bytes in total.
- SpdyString data(256 * 1024 - 40, 'a');
- header_coalescer_.OnHeader("foo", data);
- EXPECT_FALSE(header_coalescer_.error_seen());
-
- // Another 3 + 3 + 32 bytes: too large.
- header_coalescer_.OnHeader("bar", "baz");
- EXPECT_TRUE(header_coalescer_.error_seen());
-}
-
-TEST_F(HeaderCoalescerTest, PseudoHeadersMustNotFollowRegularHeaders) {
- header_coalescer_.OnHeader("foo", "bar");
- EXPECT_FALSE(header_coalescer_.error_seen());
- header_coalescer_.OnHeader(":baz", "qux");
- EXPECT_TRUE(header_coalescer_.error_seen());
-}
-
-TEST_F(HeaderCoalescerTest, Append) {
- header_coalescer_.OnHeader("foo", "bar");
- header_coalescer_.OnHeader("cookie", "baz");
- header_coalescer_.OnHeader("foo", "quux");
- header_coalescer_.OnHeader("cookie", "qux");
- EXPECT_FALSE(header_coalescer_.error_seen());
-
- SpdyHeaderBlock header_block = header_coalescer_.release_headers();
- EXPECT_THAT(header_block,
- ElementsAre(Pair("foo", SpdyStringPiece("bar\0quux", 8)),
- Pair("cookie", "baz; qux")));
-}
-
-TEST_F(HeaderCoalescerTest, CRLFInHeaderValue) {
- EXPECT_FALSE(header_coalescer_.error_seen());
- header_coalescer_.OnHeader("foo", "bar\r\nbaz");
- EXPECT_TRUE(header_coalescer_.error_seen());
-}
-
-TEST_F(HeaderCoalescerTest, HeaderNameNotValid) {
- SpdyStringPiece header_name("\x01\x7F\x80\xff");
- header_coalescer_.OnHeader(header_name, "foo");
- EXPECT_TRUE(header_coalescer_.error_seen());
-}
-
-// RFC 7230 Section 3.2. Valid header name is defined as:
-// field-name = token
-// token = 1*tchar
-// tchar = "!" / "#" / "$" / "%" / "&" / "'" / "*" / "+" / "-" / "." /
-// "^" / "_" / "`" / "|" / "~" / DIGIT / ALPHA
-TEST_F(HeaderCoalescerTest, HeaderNameValid) {
- SpdyStringPiece header_name(
- "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789!#$%&'*+-."
- "^_`|~");
- header_coalescer_.OnHeader(header_name, "foo");
- EXPECT_FALSE(header_coalescer_.error_seen());
- SpdyHeaderBlock header_block = header_coalescer_.release_headers();
- EXPECT_THAT(header_block, ElementsAre(Pair(header_name, "foo")));
-}
-
-// RFC 7230 Section 3.2. Valid header value is defined as:
-// field-value = *( field-content / obs-fold )
-// field-content = field-vchar [ 1*( SP / HTAB ) field-vchar ]
-// field-vchar = VCHAR / obs-text
-//
-// obs-fold = CRLF 1*( SP / HTAB )
-// ; obsolete line folding
-// ; see Section 3.2.4
-TEST_F(HeaderCoalescerTest, HeaderValueValid) {
- // Add two headers, one with an HTAB and one with a SP.
- std::vector<char> header_values[2];
- char prefixes[] = {'\t', ' '};
- for (int i = 0; i < 2; ++i) {
- header_values[i] = std::vector<char>();
- header_values[i].push_back(prefixes[i]);
- // obs-text. From 0x80 to 0xff.
- for (int j = 0x80; j <= 0xff; ++j) {
- header_values[i].push_back(j);
- }
- // vchar
- for (int j = 0x21; j <= 0x7E; ++j) {
- header_values[i].push_back(j);
- }
- header_coalescer_.OnHeader(
- SpdyStringPrintf("%s_%d", "foo", i),
- SpdyStringPiece(header_values[i].data(), header_values[i].size()));
- EXPECT_FALSE(header_coalescer_.error_seen());
- }
- SpdyHeaderBlock header_block = header_coalescer_.release_headers();
- EXPECT_THAT(
- header_block,
- ElementsAre(Pair("foo_0", SpdyStringPiece(header_values[0].data(),
- header_values[0].size())),
- Pair("foo_1", SpdyStringPiece(header_values[1].data(),
- header_values[1].size()))));
-}
-
-} // namespace test
-
-} // namespace net
« no previous file with comments | « net/spdy/header_coalescer.cc ('k') | net/spdy/hpack/hpack_constants.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698