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

Unified Diff: net/quic/spdy_utils_test.cc

Issue 2193073003: Move shared files in net/quic/ into net/quic/core/ (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: io_thread_unittest.cc Created 4 years, 5 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/quic/spdy_utils.cc ('k') | net/quic/test_tools/crypto_test_utils.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: net/quic/spdy_utils_test.cc
diff --git a/net/quic/spdy_utils_test.cc b/net/quic/spdy_utils_test.cc
deleted file mode 100644
index 35093af511a86ba9fa41a8f2ecf49452bb65cff4..0000000000000000000000000000000000000000
--- a/net/quic/spdy_utils_test.cc
+++ /dev/null
@@ -1,359 +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/quic/spdy_utils.h"
-
-#include "base/macros.h"
-#include "base/strings/string_number_conversions.h"
-#include "base/strings/string_piece.h"
-#include "net/test/gtest_util.h"
-
-using base::StringPiece;
-using std::string;
-using testing::UnorderedElementsAre;
-using testing::Pair;
-
-namespace net {
-namespace test {
-
-TEST(SpdyUtilsTest, SerializeAndParseHeaders) {
- // Creates a SpdyHeaderBlock with some key->value pairs, serializes it, then
- // parses the serialized output and verifies that the end result is the same
- // as the headers that the test started with.
-
- SpdyHeaderBlock input_headers;
- input_headers[":pseudo1"] = "pseudo value1";
- input_headers[":pseudo2"] = "pseudo value2";
- input_headers["key1"] = "value1";
- const int64_t kContentLength = 1234;
- input_headers["content-length"] = base::Int64ToString(kContentLength);
- input_headers["key2"] = "value2";
-
- // Serialize the header block.
- string serialized_headers =
- SpdyUtils::SerializeUncompressedHeaders(input_headers);
-
- // Take the serialized header block, and parse back into SpdyHeaderBlock.
- SpdyHeaderBlock output_headers;
- int64_t content_length = -1;
- ASSERT_TRUE(SpdyUtils::ParseHeaders(serialized_headers.data(),
- serialized_headers.size(),
- &content_length, &output_headers));
-
- // Should be back to the original headers.
- EXPECT_EQ(content_length, kContentLength);
- EXPECT_EQ(output_headers, input_headers);
-}
-
-TEST(SpdyUtilsTest, SerializeAndParseHeadersLargeContentLength) {
- // Creates a SpdyHeaderBlock with some key->value pairs, serializes it, then
- // parses the serialized output and verifies that the end result is the same
- // as the headers that the test started with.
-
- SpdyHeaderBlock input_headers;
- input_headers[":pseudo1"] = "pseudo value1";
- input_headers[":pseudo2"] = "pseudo value2";
- input_headers["key1"] = "value1";
- const int64_t kContentLength = 12345678900;
- input_headers["content-length"] = base::Int64ToString(kContentLength);
- input_headers["key2"] = "value2";
-
- // Serialize the header block.
- string serialized_headers =
- SpdyUtils::SerializeUncompressedHeaders(input_headers);
-
- // Take the serialized header block, and parse back into SpdyHeaderBlock.
- SpdyHeaderBlock output_headers;
- int64_t content_length = -1;
- ASSERT_TRUE(SpdyUtils::ParseHeaders(serialized_headers.data(),
- serialized_headers.size(),
- &content_length, &output_headers));
-
- // Should be back to the original headers.
- EXPECT_EQ(content_length, kContentLength);
- EXPECT_EQ(output_headers, input_headers);
-}
-
-TEST(SpdyUtilsTest, SerializeAndParseValidTrailers) {
- // Creates a SpdyHeaderBlock with some valid Trailers key->value pairs,
- // serializes it, then parses the serialized output and verifies that the end
- // result is the same as the trailers that the test started with.
- SpdyHeaderBlock input_trailers;
- const size_t kFinalOffset = 5678;
- input_trailers[kFinalOffsetHeaderKey] = base::IntToString(kFinalOffset);
- input_trailers["key1"] = "value1";
- input_trailers["key2"] = "value2";
-
- // Serialize the trailers.
- string serialized_trailers =
- SpdyUtils::SerializeUncompressedHeaders(input_trailers);
-
- // Take the serialized trailers, and parse back into a SpdyHeaderBlock.
- SpdyHeaderBlock output_trailers;
- size_t final_byte_offset = 0;
- EXPECT_TRUE(SpdyUtils::ParseTrailers(serialized_trailers.data(),
- serialized_trailers.size(),
- &final_byte_offset, &output_trailers));
-
- // Should be back to the original trailers, without the final offset header.
- EXPECT_EQ(final_byte_offset, kFinalOffset);
- input_trailers.erase(kFinalOffsetHeaderKey);
- EXPECT_EQ(output_trailers, input_trailers);
-}
-
-TEST(SpdyUtilsTest, SerializeAndParseTrailersWithoutFinalOffset) {
- // Verifies that parsing fails if Trailers are missing a final offset header.
-
- SpdyHeaderBlock input_trailers;
- input_trailers["key1"] = "value1";
- input_trailers["key2"] = "value2";
-
- // Serialize the trailers.
- string serialized_trailers =
- SpdyUtils::SerializeUncompressedHeaders(input_trailers);
-
- // Parsing the serialized trailers fails because of the missing final offset.
- SpdyHeaderBlock output_trailers;
- size_t final_byte_offset = 0;
- EXPECT_FALSE(SpdyUtils::ParseTrailers(serialized_trailers.data(),
- serialized_trailers.size(),
- &final_byte_offset, &output_trailers));
- EXPECT_EQ(final_byte_offset, 0u);
-}
-
-TEST(SpdyUtilsTest, SerializeAndParseTrailersWithPseudoHeaders) {
- // Verifies that parsing fails if Trailers include pseudo-headers.
-
- SpdyHeaderBlock input_trailers;
- input_trailers[kFinalOffsetHeaderKey] = "12345";
- input_trailers[":disallowed-pseudo-header"] = "pseudo value";
- input_trailers["key1"] = "value1";
- input_trailers["key2"] = "value2";
-
- // Serialize the trailers.
- string serialized_trailers =
- SpdyUtils::SerializeUncompressedHeaders(input_trailers);
-
- // Parsing the serialized trailers fails because of the extra pseudo header.
- SpdyHeaderBlock output_trailers;
- size_t final_byte_offset = 0;
- EXPECT_FALSE(SpdyUtils::ParseTrailers(serialized_trailers.data(),
- serialized_trailers.size(),
- &final_byte_offset, &output_trailers));
-}
-static std::unique_ptr<QuicHeaderList> FromList(
- const QuicHeaderList::ListType& src) {
- std::unique_ptr<QuicHeaderList> headers(new QuicHeaderList);
- headers->OnHeaderBlockStart();
- for (const auto& p : src) {
- headers->OnHeader(p.first, p.second);
- }
- headers->OnHeaderBlockEnd(0);
- return headers;
-}
-
-TEST(SpdyUtilsTest, CopyAndValidateHeaders) {
- auto headers = FromList({// All cookie crumbs are joined.
- {"cookie", " part 1"},
- {"cookie", "part 2 "},
- {"cookie", "part3"},
-
- // Already-delimited headers are passed through.
- {"passed-through", string("foo\0baz", 7)},
-
- // Other headers are joined on \0.
- {"joined", "value 1"},
- {"joined", "value 2"},
-
- // Empty headers remain empty.
- {"empty", ""},
-
- // Joined empty headers work as expected.
- {"empty-joined", ""},
- {"empty-joined", "foo"},
- {"empty-joined", ""},
- {"empty-joined", ""},
-
- // Non-continguous cookie crumb.
- {"cookie", " fin!"}});
-
- int64_t content_length = -1;
- SpdyHeaderBlock block;
- ASSERT_TRUE(
- SpdyUtils::CopyAndValidateHeaders(*headers, &content_length, &block));
- EXPECT_THAT(block, UnorderedElementsAre(
- Pair("cookie", " part 1; part 2 ; part3; fin!"),
- Pair("passed-through", StringPiece("foo\0baz", 7)),
- Pair("joined", StringPiece("value 1\0value 2", 15)),
- Pair("empty", ""),
- Pair("empty-joined", StringPiece("\0foo\0\0", 6))));
- EXPECT_EQ(-1, content_length);
-}
-
-TEST(SpdyUtilsTest, CopyAndValidateHeadersEmptyName) {
- auto headers = FromList({{"foo", "foovalue"}, {"", "barvalue"}, {"baz", ""}});
- int64_t content_length = -1;
- SpdyHeaderBlock block;
- ASSERT_FALSE(
- SpdyUtils::CopyAndValidateHeaders(*headers, &content_length, &block));
-}
-
-TEST(SpdyUtilsTest, CopyAndValidateHeadersMultipleContentLengths) {
- auto headers = FromList({{"content-length", "9"},
- {"foo", "foovalue"},
- {"content-length", "9"},
- {"bar", "barvalue"},
- {"baz", ""}});
- int64_t content_length = -1;
- SpdyHeaderBlock block;
- ASSERT_TRUE(
- SpdyUtils::CopyAndValidateHeaders(*headers, &content_length, &block));
- EXPECT_THAT(block, UnorderedElementsAre(
- Pair("foo", "foovalue"), Pair("bar", "barvalue"),
- Pair("content-length", StringPiece("9"
- "\0"
- "9",
- 3)),
- Pair("baz", "")));
- EXPECT_EQ(9, content_length);
-}
-
-TEST(SpdyUtilsTest, CopyAndValidateHeadersInconsistentContentLengths) {
- auto headers = FromList({{"content-length", "9"},
- {"foo", "foovalue"},
- {"content-length", "8"},
- {"bar", "barvalue"},
- {"baz", ""}});
- int64_t content_length = -1;
- SpdyHeaderBlock block;
- ASSERT_FALSE(
- SpdyUtils::CopyAndValidateHeaders(*headers, &content_length, &block));
-}
-
-TEST(SpdyUtilsTest, CopyAndValidateHeadersLargeContentLength) {
- auto headers = FromList({{"content-length", "9000000000"},
- {"foo", "foovalue"},
- {"bar", "barvalue"},
- {"baz", ""}});
- int64_t content_length = -1;
- SpdyHeaderBlock block;
- ASSERT_TRUE(
- SpdyUtils::CopyAndValidateHeaders(*headers, &content_length, &block));
- EXPECT_THAT(block, UnorderedElementsAre(
- Pair("foo", "foovalue"), Pair("bar", "barvalue"),
- Pair("content-length", StringPiece("9000000000")),
- Pair("baz", "")));
- EXPECT_EQ(9000000000, content_length);
-}
-
-TEST(SpdyUtilsTest, CopyAndValidateHeadersMultipleValues) {
- auto headers = FromList({{"foo", "foovalue"},
- {"bar", "barvalue"},
- {"baz", ""},
- {"foo", "boo"},
- {"baz", "buzz"}});
- int64_t content_length = -1;
- SpdyHeaderBlock block;
- ASSERT_TRUE(
- SpdyUtils::CopyAndValidateHeaders(*headers, &content_length, &block));
- EXPECT_THAT(
- block, UnorderedElementsAre(Pair("foo", StringPiece("foovalue\0boo", 12)),
- Pair("bar", "barvalue"),
- Pair("baz", StringPiece("\0buzz", 5))));
- EXPECT_EQ(-1, content_length);
-}
-
-TEST(SpdyUtilsTest, CopyAndValidateHeadersMoreThanTwoValues) {
- auto headers = FromList({{"set-cookie", "value1"},
- {"set-cookie", "value2"},
- {"set-cookie", "value3"}});
- int64_t content_length = -1;
- SpdyHeaderBlock block;
- ASSERT_TRUE(
- SpdyUtils::CopyAndValidateHeaders(*headers, &content_length, &block));
- EXPECT_THAT(block,
- UnorderedElementsAre(Pair(
- "set-cookie", StringPiece("value1\0value2\0value3", 20))));
- EXPECT_EQ(-1, content_length);
-}
-
-TEST(SpdyUtilsTest, CopyAndValidateHeadersCookie) {
- auto headers = FromList({{"foo", "foovalue"},
- {"bar", "barvalue"},
- {"cookie", "value1"},
- {"baz", ""}});
- int64_t content_length = -1;
- SpdyHeaderBlock block;
- ASSERT_TRUE(
- SpdyUtils::CopyAndValidateHeaders(*headers, &content_length, &block));
- EXPECT_THAT(block, UnorderedElementsAre(
- Pair("foo", "foovalue"), Pair("bar", "barvalue"),
- Pair("cookie", "value1"), Pair("baz", "")));
- EXPECT_EQ(-1, content_length);
-}
-
-TEST(SpdyUtilsTest, CopyAndValidateHeadersMultipleCookies) {
- auto headers = FromList({{"foo", "foovalue"},
- {"bar", "barvalue"},
- {"cookie", "value1"},
- {"baz", ""},
- {"cookie", "value2"}});
- int64_t content_length = -1;
- SpdyHeaderBlock block;
- ASSERT_TRUE(
- SpdyUtils::CopyAndValidateHeaders(*headers, &content_length, &block));
- EXPECT_THAT(block, UnorderedElementsAre(
- Pair("foo", "foovalue"), Pair("bar", "barvalue"),
- Pair("cookie", "value1; value2"), Pair("baz", "")));
- EXPECT_EQ(-1, content_length);
-}
-
-TEST(SpdyUtilsTest, GetUrlFromHeaderBlock) {
- SpdyHeaderBlock headers;
- EXPECT_EQ(SpdyUtils::GetUrlFromHeaderBlock(headers), "");
- headers[":scheme"] = "https";
- EXPECT_EQ(SpdyUtils::GetUrlFromHeaderBlock(headers), "");
- headers[":authority"] = "www.google.com";
- EXPECT_EQ(SpdyUtils::GetUrlFromHeaderBlock(headers), "");
- headers[":path"] = "/index.html";
- EXPECT_EQ(SpdyUtils::GetUrlFromHeaderBlock(headers),
- "https://www.google.com/index.html");
- headers["key1"] = "value1";
- headers["key2"] = "value2";
- EXPECT_EQ(SpdyUtils::GetUrlFromHeaderBlock(headers),
- "https://www.google.com/index.html");
-}
-
-TEST(SpdyUtilsTest, GetHostNameFromHeaderBlock) {
- SpdyHeaderBlock headers;
- EXPECT_EQ(SpdyUtils::GetHostNameFromHeaderBlock(headers), "");
- headers[":scheme"] = "https";
- EXPECT_EQ(SpdyUtils::GetHostNameFromHeaderBlock(headers), "");
- headers[":authority"] = "www.google.com";
- EXPECT_EQ(SpdyUtils::GetHostNameFromHeaderBlock(headers), "");
- headers[":path"] = "/index.html";
- EXPECT_EQ(SpdyUtils::GetHostNameFromHeaderBlock(headers), "www.google.com");
- headers["key1"] = "value1";
- headers["key2"] = "value2";
- EXPECT_EQ(SpdyUtils::GetHostNameFromHeaderBlock(headers), "www.google.com");
- headers[":authority"] = "www.google.com:6666";
- EXPECT_EQ(SpdyUtils::GetHostNameFromHeaderBlock(headers), "www.google.com");
- headers[":authority"] = "192.168.1.1";
- EXPECT_EQ(SpdyUtils::GetHostNameFromHeaderBlock(headers), "192.168.1.1");
- headers[":authority"] = "192.168.1.1:6666";
- EXPECT_EQ(SpdyUtils::GetHostNameFromHeaderBlock(headers), "192.168.1.1");
-}
-
-TEST(SpdyUtilsTest, UrlIsValid) {
- SpdyHeaderBlock headers;
- EXPECT_FALSE(SpdyUtils::UrlIsValid(headers));
- headers[":scheme"] = "https";
- EXPECT_FALSE(SpdyUtils::UrlIsValid(headers));
- headers[":authority"] = "www.google.com";
- EXPECT_FALSE(SpdyUtils::UrlIsValid(headers));
- headers[":path"] = "/index.html";
- EXPECT_TRUE(SpdyUtils::UrlIsValid(headers));
-}
-
-} // namespace test
-} // namespace net
« no previous file with comments | « net/quic/spdy_utils.cc ('k') | net/quic/test_tools/crypto_test_utils.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698