OLD | NEW |
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 <algorithm> | 5 #include <algorithm> |
6 #include <iostream> | 6 #include <iostream> |
7 #include <limits> | 7 #include <limits> |
8 | 8 |
9 #include "base/compiler_specific.h" | 9 #include "base/compiler_specific.h" |
10 #include "base/memory/scoped_ptr.h" | 10 #include "base/memory/scoped_ptr.h" |
(...skipping 3265 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
3276 TEST_P(SpdyFramerTest, CreateContinuationUncompressed) { | 3276 TEST_P(SpdyFramerTest, CreateContinuationUncompressed) { |
3277 if (spdy_version_ <= SPDY3) { | 3277 if (spdy_version_ <= SPDY3) { |
3278 return; | 3278 return; |
3279 } | 3279 } |
3280 | 3280 |
3281 SpdyFramer framer(spdy_version_); | 3281 SpdyFramer framer(spdy_version_); |
3282 framer.set_enable_compression(false); | 3282 framer.set_enable_compression(false); |
3283 const char kDescription[] = "CONTINUATION frame"; | 3283 const char kDescription[] = "CONTINUATION frame"; |
3284 | 3284 |
3285 const unsigned char kFrameData[] = { | 3285 const unsigned char kFrameData[] = { |
3286 0x00, 0x00, 0x12, 0x09, // CONTINUATION | 3286 0x00, 0x00, 0x12, 0x09, 0x00, // CONTINUATION |
3287 0x04, 0x00, 0x00, 0x00, // end_headers = true | 3287 0x00, 0x00, 0x00, 0x2a, // Stream 42 |
3288 0x2a, 0x00, 0x03, 0x62, // Stream 42, @.b | 3288 0x00, 0x03, 0x62, 0x61, // @.ba |
3289 0x61, 0x72, 0x03, 0x66, // ar.f | 3289 0x72, 0x03, 0x66, 0x6f, // r.fo |
3290 0x6f, 0x6f, 0x00, 0x03, // oo@. | 3290 0x6f, 0x00, 0x03, 0x66, // o@.f |
3291 0x66, 0x6f, 0x6f, 0x03, // foo. | 3291 0x6f, 0x6f, 0x03, 0x62, // oo.b |
3292 0x62, 0x61, 0x72, // bar | 3292 0x61, 0x72, // ar |
3293 }; | 3293 }; |
3294 | 3294 |
3295 SpdyContinuationIR continuation(42); | 3295 SpdyContinuationIR continuation(42); |
3296 continuation.SetHeader("bar", "foo"); | 3296 continuation.SetHeader("bar", "foo"); |
3297 continuation.SetHeader("foo", "bar"); | 3297 continuation.SetHeader("foo", "bar"); |
3298 continuation.set_end_headers(true); | |
3299 scoped_ptr<SpdySerializedFrame> frame( | 3298 scoped_ptr<SpdySerializedFrame> frame( |
3300 framer.SerializeContinuation(continuation)); | 3299 framer.SerializeContinuation(continuation)); |
3301 CompareFrame(kDescription, *frame, kFrameData, arraysize(kFrameData)); | 3300 CompareFrame(kDescription, *frame, kFrameData, arraysize(kFrameData)); |
3302 } | 3301 } |
3303 | 3302 |
3304 TEST_P(SpdyFramerTest, CreatePushPromiseThenContinuationUncompressed) { | 3303 TEST_P(SpdyFramerTest, CreatePushPromiseThenContinuationUncompressed) { |
3305 if (spdy_version_ <= SPDY3) { | 3304 if (spdy_version_ <= SPDY3) { |
3306 return; | 3305 return; |
3307 } | 3306 } |
3308 | 3307 |
(...skipping 136 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
3445 SpdyConstants::SerializeFrameType(spdy_version_, PRIORITY)); | 3444 SpdyConstants::SerializeFrameType(spdy_version_, PRIORITY)); |
3446 const unsigned char kFrameData[] = { | 3445 const unsigned char kFrameData[] = { |
3447 0x00, 0x00, 0x05, kType, 0x00, | 3446 0x00, 0x00, 0x05, kType, 0x00, |
3448 0x00, 0x00, 0x00, 0x02, // Stream ID = 2 | 3447 0x00, 0x00, 0x00, 0x02, // Stream ID = 2 |
3449 0x80, 0x00, 0x00, 0x01, // Exclusive dependency, parent stream ID = 1 | 3448 0x80, 0x00, 0x00, 0x01, // Exclusive dependency, parent stream ID = 1 |
3450 0x10, // Weight = 16 | 3449 0x10, // Weight = 16 |
3451 }; | 3450 }; |
3452 SpdyPriorityIR priority_ir(2, 1, 16, true); | 3451 SpdyPriorityIR priority_ir(2, 1, 16, true); |
3453 scoped_ptr<SpdySerializedFrame> frame(framer.SerializeFrame(priority_ir)); | 3452 scoped_ptr<SpdySerializedFrame> frame(framer.SerializeFrame(priority_ir)); |
3454 CompareFrame(kDescription, *frame, kFrameData, arraysize(kFrameData)); | 3453 CompareFrame(kDescription, *frame, kFrameData, arraysize(kFrameData)); |
3455 SpdyPriorityIR priority2(2); | |
3456 priority2.set_parent_stream_id(1); | |
3457 priority2.set_weight(16); | |
3458 priority2.set_exclusive(true); | |
3459 frame.reset(framer.SerializeFrame(priority2)); | |
3460 CompareFrame(kDescription, *frame, kFrameData, arraysize(kFrameData)); | |
3461 } | 3454 } |
3462 | 3455 |
3463 TEST_P(SpdyFramerTest, ReadCompressedSynStreamHeaderBlock) { | 3456 TEST_P(SpdyFramerTest, ReadCompressedSynStreamHeaderBlock) { |
3464 if (spdy_version_ > SPDY3) { | 3457 if (spdy_version_ > SPDY3) { |
3465 // SYN_STREAM not supported in SPDY>3 | 3458 // SYN_STREAM not supported in SPDY>3 |
3466 return; | 3459 return; |
3467 } | 3460 } |
3468 SpdyFramer framer(spdy_version_); | 3461 SpdyFramer framer(spdy_version_); |
3469 SpdySynStreamIR syn_stream(1); | 3462 SpdySynStreamIR syn_stream(1); |
3470 syn_stream.set_priority(1); | 3463 syn_stream.set_priority(1); |
(...skipping 2471 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
5942 TestSpdyVisitor visitor(spdy_version_); | 5935 TestSpdyVisitor visitor(spdy_version_); |
5943 visitor.SimulateInFramer(kFrameData, sizeof(kFrameData)); | 5936 visitor.SimulateInFramer(kFrameData, sizeof(kFrameData)); |
5944 | 5937 |
5945 EXPECT_EQ(SpdyFramer::SPDY_ERROR, visitor.framer_.state()); | 5938 EXPECT_EQ(SpdyFramer::SPDY_ERROR, visitor.framer_.state()); |
5946 EXPECT_EQ(SpdyFramer::SPDY_INVALID_CONTROL_FRAME, | 5939 EXPECT_EQ(SpdyFramer::SPDY_INVALID_CONTROL_FRAME, |
5947 visitor.framer_.error_code()) | 5940 visitor.framer_.error_code()) |
5948 << SpdyFramer::ErrorCodeToString(visitor.framer_.error_code()); | 5941 << SpdyFramer::ErrorCodeToString(visitor.framer_.error_code()); |
5949 } | 5942 } |
5950 | 5943 |
5951 } // namespace net | 5944 } // namespace net |
OLD | NEW |