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

Side by Side Diff: net/spdy/core/spdy_framer_test.cc

Issue 2861893002: Deprecate remove_rewritelength flag. (Closed)
Patch Set: missed a SPDY_BUG Created 3 years, 7 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 unified diff | Download patch
« no previous file with comments | « net/spdy/core/spdy_framer.cc ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "net/spdy/core/spdy_framer.h" 5 #include "net/spdy/core/spdy_framer.h"
6 6
7 #include <stdlib.h> 7 #include <stdlib.h>
8 #include <string.h> 8 #include <string.h>
9 9
10 #include <algorithm> 10 #include <algorithm>
(...skipping 848 matching lines...) Expand 10 before | Expand all | Expand 10 after
859 // Test that we treat incoming upper-case or mixed-case header values as 859 // Test that we treat incoming upper-case or mixed-case header values as
860 // malformed. 860 // malformed.
861 TEST_P(SpdyFramerTest, RejectUpperCaseHeaderBlockValue) { 861 TEST_P(SpdyFramerTest, RejectUpperCaseHeaderBlockValue) {
862 SpdyFramer framer(SpdyFramer::DISABLE_COMPRESSION); 862 SpdyFramer framer(SpdyFramer::DISABLE_COMPRESSION);
863 863
864 SpdyFrameBuilder frame(1024); 864 SpdyFrameBuilder frame(1024);
865 frame.BeginNewFrame(framer, SpdyFrameType::HEADERS, 0, 1); 865 frame.BeginNewFrame(framer, SpdyFrameType::HEADERS, 0, 1);
866 frame.WriteUInt32(1); 866 frame.WriteUInt32(1);
867 frame.WriteStringPiece32("Name1"); 867 frame.WriteStringPiece32("Name1");
868 frame.WriteStringPiece32("value1"); 868 frame.WriteStringPiece32("value1");
869 frame.OverwriteLength(framer, frame.length() - framer.GetFrameHeaderSize());
870 869
871 SpdyFrameBuilder frame2(1024); 870 SpdyFrameBuilder frame2(1024);
872 frame2.BeginNewFrame(framer, SpdyFrameType::HEADERS, 0, 1); 871 frame2.BeginNewFrame(framer, SpdyFrameType::HEADERS, 0, 1);
873 frame2.WriteUInt32(2); 872 frame2.WriteUInt32(2);
874 frame2.WriteStringPiece32("name1"); 873 frame2.WriteStringPiece32("name1");
875 frame2.WriteStringPiece32("value1"); 874 frame2.WriteStringPiece32("value1");
876 frame2.WriteStringPiece32("nAmE2"); 875 frame2.WriteStringPiece32("nAmE2");
877 frame2.WriteStringPiece32("value2"); 876 frame2.WriteStringPiece32("value2");
878 frame.OverwriteLength(framer, frame2.length() - framer.GetFrameHeaderSize());
879 877
880 SpdySerializedFrame control_frame(frame.take()); 878 SpdySerializedFrame control_frame(frame.take());
881 SpdyStringPiece serialized_headers = 879 SpdyStringPiece serialized_headers =
882 GetSerializedHeaders(control_frame, framer); 880 GetSerializedHeaders(control_frame, framer);
883 SpdySerializedFrame control_frame2(frame2.take()); 881 SpdySerializedFrame control_frame2(frame2.take());
884 SpdyStringPiece serialized_headers2 = 882 SpdyStringPiece serialized_headers2 =
885 GetSerializedHeaders(control_frame2, framer); 883 GetSerializedHeaders(control_frame2, framer);
886 884
887 SpdyHeaderBlock new_headers; 885 SpdyHeaderBlock new_headers;
888 EXPECT_FALSE(framer.ParseHeaderBlockInBuffer( 886 EXPECT_FALSE(framer.ParseHeaderBlockInBuffer(
(...skipping 416 matching lines...) Expand 10 before | Expand all | Expand 10 after
1305 SpdyFramer framer(SpdyFramer::DISABLE_COMPRESSION); 1303 SpdyFramer framer(SpdyFramer::DISABLE_COMPRESSION);
1306 // Frame builder with plentiful buffer size. 1304 // Frame builder with plentiful buffer size.
1307 SpdyFrameBuilder frame(1024); 1305 SpdyFrameBuilder frame(1024);
1308 frame.BeginNewFrame(framer, SpdyFrameType::HEADERS, 0, 3); 1306 frame.BeginNewFrame(framer, SpdyFrameType::HEADERS, 0, 3);
1309 1307
1310 frame.WriteUInt32(2); // Number of headers. 1308 frame.WriteUInt32(2); // Number of headers.
1311 frame.WriteStringPiece32("name"); 1309 frame.WriteStringPiece32("name");
1312 frame.WriteStringPiece32("value1"); 1310 frame.WriteStringPiece32("value1");
1313 frame.WriteStringPiece32("name"); 1311 frame.WriteStringPiece32("name");
1314 frame.WriteStringPiece32("value2"); 1312 frame.WriteStringPiece32("value2");
1315 // write the length
1316 frame.OverwriteLength(framer, frame.length() - framer.GetFrameHeaderSize());
1317 1313
1318 SpdyHeaderBlock new_headers; 1314 SpdyHeaderBlock new_headers;
1319 SpdySerializedFrame control_frame(frame.take()); 1315 SpdySerializedFrame control_frame(frame.take());
1320 SpdyStringPiece serialized_headers = 1316 SpdyStringPiece serialized_headers =
1321 GetSerializedHeaders(control_frame, framer); 1317 GetSerializedHeaders(control_frame, framer);
1322 // This should fail because duplicate headers are verboten by the spec. 1318 // This should fail because duplicate headers are verboten by the spec.
1323 EXPECT_FALSE(framer.ParseHeaderBlockInBuffer( 1319 EXPECT_FALSE(framer.ParseHeaderBlockInBuffer(
1324 serialized_headers.data(), serialized_headers.size(), &new_headers)); 1320 serialized_headers.data(), serialized_headers.size(), &new_headers));
1325 } 1321 }
1326 1322
1327 TEST_P(SpdyFramerTest, MultiValueHeader) { 1323 TEST_P(SpdyFramerTest, MultiValueHeader) {
1328 SpdyFramer framer(SpdyFramer::DISABLE_COMPRESSION); 1324 SpdyFramer framer(SpdyFramer::DISABLE_COMPRESSION);
1329 // Frame builder with plentiful buffer size.
1330 SpdyFrameBuilder frame(1024);
1331 frame.BeginNewFrame(framer, SpdyFrameType::HEADERS,
1332 HEADERS_FLAG_PRIORITY | HEADERS_FLAG_END_HEADERS, 3);
1333 frame.WriteUInt32(0); // Priority exclusivity and dependent stream.
1334 frame.WriteUInt8(255); // Priority weight.
1335
1336 SpdyString value("value1\0value2", 13); 1325 SpdyString value("value1\0value2", 13);
1337 // TODO(jgraettinger): If this pattern appears again, move to test class. 1326 // TODO(jgraettinger): If this pattern appears again, move to test class.
1338 SpdyHeaderBlock header_set; 1327 SpdyHeaderBlock header_set;
1339 header_set["name"] = value; 1328 header_set["name"] = value;
1340 SpdyString buffer; 1329 SpdyString buffer;
1341 HpackEncoder encoder(ObtainHpackHuffmanTable()); 1330 HpackEncoder encoder(ObtainHpackHuffmanTable());
1342 encoder.DisableCompression(); 1331 encoder.DisableCompression();
1343 encoder.EncodeHeaderSet(header_set, &buffer); 1332 encoder.EncodeHeaderSet(header_set, &buffer);
1333 // Frame builder with plentiful buffer size.
1334 SpdyFrameBuilder frame(1024);
1335 frame.BeginNewFrame(framer, SpdyFrameType::HEADERS,
1336 HEADERS_FLAG_PRIORITY | HEADERS_FLAG_END_HEADERS, 3,
1337 buffer.size() + 5 /* priority */);
1338 frame.WriteUInt32(0); // Priority exclusivity and dependent stream.
1339 frame.WriteUInt8(255); // Priority weight.
1344 frame.WriteBytes(&buffer[0], buffer.size()); 1340 frame.WriteBytes(&buffer[0], buffer.size());
1345 // write the length
1346 frame.OverwriteLength(framer, frame.length() - framer.GetFrameHeaderSize());
1347 1341
1348 SpdySerializedFrame control_frame(frame.take()); 1342 SpdySerializedFrame control_frame(frame.take());
1349 1343
1350 TestSpdyVisitor visitor(SpdyFramer::DISABLE_COMPRESSION); 1344 TestSpdyVisitor visitor(SpdyFramer::DISABLE_COMPRESSION);
1351 visitor.SimulateInFramer( 1345 visitor.SimulateInFramer(
1352 reinterpret_cast<unsigned char*>(control_frame.data()), 1346 reinterpret_cast<unsigned char*>(control_frame.data()),
1353 control_frame.size()); 1347 control_frame.size());
1354 1348
1355 EXPECT_THAT(visitor.headers_, testing::ElementsAre(testing::Pair( 1349 EXPECT_THAT(visitor.headers_, testing::ElementsAre(testing::Pair(
1356 "name", SpdyStringPiece(value)))); 1350 "name", SpdyStringPiece(value))));
(...skipping 3511 matching lines...) Expand 10 before | Expand all | Expand 10 after
4868 4862
4869 EXPECT_EQ(1, visitor->data_frame_count_); 4863 EXPECT_EQ(1, visitor->data_frame_count_);
4870 EXPECT_EQ(strlen(four_score), static_cast<unsigned>(visitor->data_bytes_)); 4864 EXPECT_EQ(strlen(four_score), static_cast<unsigned>(visitor->data_bytes_));
4871 EXPECT_EQ(0, visitor->headers_frame_count_); 4865 EXPECT_EQ(0, visitor->headers_frame_count_);
4872 } 4866 }
4873 } 4867 }
4874 4868
4875 } // namespace test 4869 } // namespace test
4876 4870
4877 } // namespace net 4871 } // namespace net
OLDNEW
« no previous file with comments | « net/spdy/core/spdy_framer.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698