Index: net/spdy/spdy_framer_test.cc |
diff --git a/net/spdy/spdy_framer_test.cc b/net/spdy/spdy_framer_test.cc |
index c1ab75659e025aaa8bf67dd84d15cafe508a2442..84a5af32964cc78c44cf7423eea445be6753c5b3 100644 |
--- a/net/spdy/spdy_framer_test.cc |
+++ b/net/spdy/spdy_framer_test.cc |
@@ -6,6 +6,7 @@ |
#include <iostream> |
#include <limits> |
+#include "base/compiler_specific.h" |
#include "base/memory/scoped_ptr.h" |
#include "net/spdy/spdy_framer.h" |
#include "net/spdy/spdy_protocol.h" |
@@ -307,7 +308,8 @@ void CompareCharArraysWithHexError( |
<< HexDumpWithMarks(actual, actual_len, marks.get(), max_len); |
} |
-class TestSpdyVisitor : public SpdyFramerVisitorInterface { |
+class TestSpdyVisitor : public SpdyFramerVisitorInterface, |
+ public SpdyFramerDebugVisitorInterface { |
public: |
static const size_t kDefaultHeaderBufferSize = 16 * 1024; |
static const size_t kDefaultCredentialBufferSize = 16 * 1024; |
@@ -329,6 +331,8 @@ class TestSpdyVisitor : public SpdyFramerVisitorInterface { |
control_frame_header_data_count_(0), |
zero_length_control_frame_header_data_count_(0), |
data_frame_count_(0), |
+ last_decompressed_size_(0), |
+ last_compressed_size_(0), |
header_buffer_(new char[kDefaultHeaderBufferSize]), |
header_buffer_length_(0), |
header_buffer_size_(kDefaultHeaderBufferSize), |
@@ -474,6 +478,12 @@ class TestSpdyVisitor : public SpdyFramerVisitorInterface { |
return true; |
} |
+ virtual void OnCompressedHeaderBlock(size_t decompressed_size, |
+ size_t compressed_size) OVERRIDE { |
+ last_decompressed_size_ = decompressed_size; |
+ last_compressed_size_ = compressed_size; |
+ } |
+ |
// Convenience function which runs a framer simulation with particular input. |
void SimulateInFramer(const unsigned char* input, size_t size) { |
framer_.set_enable_compression(use_compression_); |
@@ -541,6 +551,8 @@ class TestSpdyVisitor : public SpdyFramerVisitorInterface { |
// The count of zero-length control frame header data chunks received. |
int zero_length_control_frame_header_data_count_; |
int data_frame_count_; |
+ size_t last_decompressed_size_; |
+ size_t last_compressed_size_; |
// Header block streaming state: |
scoped_array<char> header_buffer_; |
@@ -902,7 +914,9 @@ TEST_P(SpdyFramerTest, BasicCompression) { |
headers["content-type"] = "text/html"; |
headers["content-length"] = "12"; |
+ TestSpdyVisitor visitor(spdy_version_); |
SpdyFramer framer(spdy_version_); |
+ framer.set_debug_visitor(&visitor); |
framer.set_enable_compression(true); |
scoped_ptr<SpdySynStreamControlFrame> frame1( |
framer.CreateSynStream(1, // stream id |
@@ -912,6 +926,21 @@ TEST_P(SpdyFramerTest, BasicCompression) { |
CONTROL_FLAG_NONE, |
true, // compress |
&headers)); |
+ if (IsSpdy2()) { |
+ EXPECT_EQ(139u, visitor.last_decompressed_size_); |
+#if defined(USE_SYSTEM_ZLIB) |
+ EXPECT_EQ(93u, visitor.last_compressed_size_); |
+#else // !defined(USE_SYSTEM_ZLIB) |
+ EXPECT_EQ(135u, visitor.last_compressed_size_); |
+#endif // !defined(USE_SYSTEM_ZLIB) |
+ } else { |
+ EXPECT_EQ(165u, visitor.last_decompressed_size_); |
+#if defined(USE_SYSTEM_ZLIB) |
+ EXPECT_EQ(72u, visitor.last_compressed_size_); |
+#else // !defined(USE_SYSTEM_ZLIB) |
+ EXPECT_EQ(117u, visitor.last_compressed_size_); |
+#endif // !defined(USE_SYSTEM_ZLIB) |
+ } |
scoped_ptr<SpdySynStreamControlFrame> frame2( |
framer.CreateSynStream(1, // stream id |
0, // associated stream id |