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

Unified Diff: net/spdy/spdy_deframer_visitor_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/spdy_deframer_visitor.cc ('k') | net/spdy/spdy_flags.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: net/spdy/spdy_deframer_visitor_test.cc
diff --git a/net/spdy/spdy_deframer_visitor_test.cc b/net/spdy/spdy_deframer_visitor_test.cc
deleted file mode 100644
index 885062d54eb8ef7e05d0c3c0b33c8e37bacaa66f..0000000000000000000000000000000000000000
--- a/net/spdy/spdy_deframer_visitor_test.cc
+++ /dev/null
@@ -1,271 +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/spdy_deframer_visitor.h"
-
-#include <stdlib.h>
-
-#include <algorithm>
-#include <limits>
-
-#include "base/logging.h"
-#include "base/memory/ptr_util.h"
-#include "base/rand_util.h"
-#include "net/spdy/hpack/hpack_constants.h"
-#include "net/spdy/mock_spdy_framer_visitor.h"
-#include "net/spdy/spdy_frame_builder.h"
-#include "net/spdy/spdy_frame_reader.h"
-#include "net/spdy/spdy_protocol.h"
-#include "net/spdy/spdy_protocol_test_utils.h"
-#include "net/spdy/spdy_test_utils.h"
-
-using ::base::MakeUnique;
-
-namespace net {
-namespace test {
-namespace {
-
-class SpdyDeframerVisitorTest : public ::testing::Test {
- protected:
- SpdyDeframerVisitorTest()
- : encoder_(SpdyFramer::ENABLE_COMPRESSION),
- decoder_(SpdyFramer::ENABLE_COMPRESSION) {
- decoder_.set_process_single_input_frame(true);
- auto collector = MakeUnique<DeframerCallbackCollector>(&collected_frames_);
- auto log_and_collect =
- SpdyDeframerVisitorInterface::LogBeforeVisiting(std::move(collector));
- deframer_ = SpdyTestDeframer::CreateConverter(std::move(log_and_collect));
- decoder_.set_visitor(deframer_.get());
- }
-
- bool DeframeInput(const char* input, size_t size) {
- size_t input_remaining = size;
- while (input_remaining > 0 &&
- decoder_.spdy_framer_error() == SpdyFramer::SPDY_NO_ERROR) {
- // To make the tests more interesting, we feed random (and small) chunks
- // into the framer. This simulates getting strange-sized reads from
- // the socket.
- const size_t kMaxReadSize = 32;
- size_t bytes_read =
- (base::RandGenerator(std::min(input_remaining, kMaxReadSize))) + 1;
- size_t bytes_processed = decoder_.ProcessInput(input, bytes_read);
- input_remaining -= bytes_processed;
- input += bytes_processed;
- if (decoder_.state() == SpdyFramer::SPDY_READY_FOR_FRAME) {
- deframer_->AtFrameEnd();
- }
- }
- return (input_remaining == 0 &&
- decoder_.spdy_framer_error() == SpdyFramer::SPDY_NO_ERROR);
- }
-
- SpdySerializedFrame SerializeFrame(const SpdyFrameIR& frame) {
- return encoder_.SerializeFrame(frame);
- }
-
- SpdyString SerializeFrames(
- const std::vector<std::unique_ptr<SpdyFrameIR>>& frames) {
- SpdyString result;
- for (const auto& frame_ptr : frames) {
- auto sf = SerializeFrame(*frame_ptr);
- result.append(sf.data(), sf.size());
- }
- return result;
- }
-
- // bool
-
- SpdyFramer encoder_;
- SpdyFramer decoder_;
- std::vector<CollectedFrame> collected_frames_;
- std::unique_ptr<SpdyTestDeframer> deframer_;
-};
-
-TEST_F(SpdyDeframerVisitorTest, DataFrame) {
- const char kFrameData[] = {
- 0x00, 0x00, 0x0d, // Length = 13.
- 0x00, // DATA
- 0x08, // PADDED
- 0x00, 0x00, 0x00, 0x01, // Stream 1
- 0x07, // Pad length field.
- 'h', 'e', 'l', 'l', // Data
- 'o', // More Data
- 0x00, 0x00, 0x00, 0x00, // Padding
- 0x00, 0x00, 0x00 // More Padding
- };
-
- EXPECT_TRUE(DeframeInput(kFrameData, sizeof kFrameData));
- ASSERT_EQ(1u, collected_frames_.size());
- const CollectedFrame& cf0 = collected_frames_[0];
- ASSERT_NE(cf0.frame_ir, nullptr);
-
- SpdyDataIR expected_ir(1, "hello");
- expected_ir.set_padding_len(8);
- EXPECT_TRUE(cf0.VerifyHasFrame(expected_ir));
-}
-
-TEST_F(SpdyDeframerVisitorTest, HeaderFrameWithContinuation) {
- const char kFrameData[] = {
- 0x00, 0x00, 0x05, // Payload Length: 5
- 0x01, // Type: HEADERS
- 0x09, // Flags: PADDED | END_STREAM
- 0x00, 0x00, 0x00, 0x01, // Stream: 1
- 0x04, // Padding Length: 4
- 0x00, 0x00, 0x00, 0x00, // Padding
- /* Second Frame */
- 0x00, 0x00, 0x12, // Payload Length: 18
- 0x09, // Type: CONTINUATION
- 0x04, // Flags: END_HEADERS
- 0x00, 0x00, 0x00, 0x01, // Stream: 1
- 0x00, // Unindexed, literal name & value
- 0x03, 0x62, 0x61, 0x72, // Name len and name (3, "bar")
- 0x03, 0x66, 0x6f, 0x6f, // Value len and value (3, "foo")
- 0x00, // Unindexed, literal name & value
- 0x03, 0x66, 0x6f, 0x6f, // Name len and name (3, "foo")
- 0x03, 0x62, 0x61, 0x72, // Value len and value (3, "bar")
- };
-
- EXPECT_TRUE(DeframeInput(kFrameData, sizeof kFrameData));
- ASSERT_EQ(1u, collected_frames_.size());
- const CollectedFrame& cf0 = collected_frames_[0];
-
- StringPairVector headers;
- headers.push_back({"bar", "foo"});
- headers.push_back({"foo", "bar"});
-
- EXPECT_TRUE(cf0.VerifyHasHeaders(headers));
-
- SpdyHeadersIR expected_ir(1);
- // Yet again SpdyFramerVisitorInterface is lossy: it doesn't call OnPadding
- // for HEADERS, just for DATA. Sigh.
- // expected_ir.set_padding_len(5);
- expected_ir.set_fin(true);
- for (const auto& nv : headers) {
- expected_ir.SetHeader(nv.first, nv.second);
- }
-
- EXPECT_TRUE(cf0.VerifyHasFrame(expected_ir));
-
- // Confirm that mismatches are also detected.
- headers.push_back({"baz", "bing"});
- EXPECT_FALSE(cf0.VerifyHasHeaders(headers));
- EXPECT_TRUE(cf0.VerifyHasFrame(expected_ir));
-
- headers.pop_back();
- EXPECT_TRUE(cf0.VerifyHasHeaders(headers));
- EXPECT_TRUE(cf0.VerifyHasFrame(expected_ir));
-
- expected_ir.SetHeader("baz", "bing");
- EXPECT_FALSE(cf0.VerifyHasFrame(expected_ir));
- EXPECT_TRUE(cf0.VerifyHasHeaders(headers));
-}
-
-TEST_F(SpdyDeframerVisitorTest, PriorityFrame) {
- const char kFrameData[] = {
- 0x00, 0x00, 0x05, // Length: 5
- 0x02, // Type: PRIORITY
- 0x00, // Flags: none
- 0x00, 0x00, 0x00, 0x65, // Stream: 101
- 0x80u, 0x00, 0x00, 0x01, // Parent: 1 (Exclusive)
- 0x10, // Weight: 17
- };
-
- EXPECT_TRUE(DeframeInput(kFrameData, sizeof kFrameData));
- ASSERT_EQ(1u, collected_frames_.size());
- const CollectedFrame& cf0 = collected_frames_[0];
-
- SpdyPriorityIR expected_ir(101, 1, 17, true);
- EXPECT_TRUE(cf0.VerifyHasFrame(expected_ir));
-
- // Confirm that mismatches are also detected.
- expected_ir.set_weight(16);
- EXPECT_FALSE(cf0.VerifyHasFrame(expected_ir));
- expected_ir.set_weight(17);
- EXPECT_TRUE(cf0.VerifyHasFrame(expected_ir));
-
- expected_ir.set_parent_stream_id(50);
- EXPECT_FALSE(cf0.VerifyHasFrame(expected_ir));
- expected_ir.set_parent_stream_id(1);
- EXPECT_TRUE(cf0.VerifyHasFrame(expected_ir));
-
- expected_ir.set_stream_id(201);
- EXPECT_FALSE(cf0.VerifyHasFrame(expected_ir));
- expected_ir.set_stream_id(101);
- EXPECT_TRUE(cf0.VerifyHasFrame(expected_ir));
-
- expected_ir.set_exclusive(false);
- EXPECT_FALSE(cf0.VerifyHasFrame(expected_ir));
- expected_ir.set_exclusive(true);
- EXPECT_TRUE(cf0.VerifyHasFrame(expected_ir));
-}
-
-TEST_F(SpdyDeframerVisitorTest, DISABLED_RstStreamFrame) {
- // TODO(jamessynge): Please implement.
-}
-
-TEST_F(SpdyDeframerVisitorTest, SettingsFrame) {
- // Settings frame with two entries for the same parameter but with different
- // values. The last one will be in the decoded SpdySettingsIR, but the vector
- // of settings will have both, in the same order.
- const char kFrameData[] = {
- 0x00, 0x00, 0x0c, // Length
- 0x04, // Type (SETTINGS)
- 0x00, // Flags
- 0x00, 0x00, 0x00, 0x00, // Stream id (must be zero)
- 0x00, 0x04, // Setting id (SETTINGS_INITIAL_WINDOW_SIZE)
- 0x0a, 0x0b, 0x0c, 0x0d, // Setting value
- 0x00, 0x04, // Setting id (SETTINGS_INITIAL_WINDOW_SIZE)
- 0x00, 0x00, 0x00, 0xffu // Setting value
- };
-
- EXPECT_TRUE(DeframeInput(kFrameData, sizeof kFrameData));
- ASSERT_EQ(1u, collected_frames_.size());
- const CollectedFrame& cf0 = collected_frames_[0];
- ASSERT_NE(cf0.frame_ir, nullptr);
-
- SpdySettingsIR expected_ir;
- expected_ir.AddSetting(SETTINGS_INITIAL_WINDOW_SIZE, 255);
- EXPECT_TRUE(cf0.VerifyHasFrame(expected_ir));
-
- SettingVector expected_settings;
- expected_settings.push_back({SETTINGS_INITIAL_WINDOW_SIZE, 0x0a0b0c0d});
- expected_settings.push_back({SETTINGS_INITIAL_WINDOW_SIZE, 255});
-
- EXPECT_TRUE(cf0.VerifyHasSettings(expected_settings));
-
- // Confirm that mismatches are also detected.
- expected_settings.push_back({SETTINGS_INITIAL_WINDOW_SIZE, 65536});
- EXPECT_FALSE(cf0.VerifyHasSettings(expected_settings));
-
- expected_ir.AddSetting(SETTINGS_INITIAL_WINDOW_SIZE, 65536);
- EXPECT_FALSE(cf0.VerifyHasFrame(expected_ir));
-
- SpdySettingsIR unexpected_ir;
- unexpected_ir.set_is_ack(true);
- EXPECT_FALSE(cf0.VerifyHasFrame(unexpected_ir));
-}
-
-TEST_F(SpdyDeframerVisitorTest, DISABLED_PushPromiseFrame) {
- // TODO(jamessynge): Please implement.
-}
-
-TEST_F(SpdyDeframerVisitorTest, DISABLED_PingFrame) {
- // TODO(jamessynge): Please implement.
-}
-
-TEST_F(SpdyDeframerVisitorTest, DISABLED_GoAwayFrame) {
- // TODO(jamessynge): Please implement.
-}
-
-TEST_F(SpdyDeframerVisitorTest, DISABLED_WindowUpdateFrame) {
- // TODO(jamessynge): Please implement.
-}
-
-TEST_F(SpdyDeframerVisitorTest, DISABLED_AltSvcFrame) {
- // TODO(jamessynge): Please implement.
-}
-
-} // namespace
-} // namespace test
-} // namespace net
« no previous file with comments | « net/spdy/spdy_deframer_visitor.cc ('k') | net/spdy/spdy_flags.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698