| OLD | NEW |
| 1 // Copyright 2013 The Chromium Authors. All rights reserved. | 1 // Copyright 2013 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/quic/core/quic_headers_stream.h" | 5 #include "net/quic/core/quic_headers_stream.h" |
| 6 | 6 |
| 7 #include <string> | 7 #include <string> |
| 8 | 8 |
| 9 #include "base/strings/string_number_conversions.h" | 9 #include "base/strings/string_number_conversions.h" |
| 10 #include "net/quic/core/quic_bug_tracker.h" | 10 #include "net/quic/core/quic_bug_tracker.h" |
| (...skipping 726 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 737 "SPDY SETTINGS frame received.", _)) | 737 "SPDY SETTINGS frame received.", _)) |
| 738 .WillOnce(InvokeWithoutArgs( | 738 .WillOnce(InvokeWithoutArgs( |
| 739 this, &QuicHeadersStreamTest::TearDownLocalConnectionState)); | 739 this, &QuicHeadersStreamTest::TearDownLocalConnectionState)); |
| 740 stream_frame_.data_buffer = frame.data(); | 740 stream_frame_.data_buffer = frame.data(); |
| 741 stream_frame_.data_length = frame.size(); | 741 stream_frame_.data_length = frame.size(); |
| 742 headers_stream_->OnStreamFrame(stream_frame_); | 742 headers_stream_->OnStreamFrame(stream_frame_); |
| 743 } | 743 } |
| 744 | 744 |
| 745 TEST_P(QuicHeadersStreamTest, RespectHttp2SettingsFrameSupportedFields) { | 745 TEST_P(QuicHeadersStreamTest, RespectHttp2SettingsFrameSupportedFields) { |
| 746 FLAGS_quic_respect_http2_settings_frame = true; | 746 FLAGS_quic_respect_http2_settings_frame = true; |
| 747 FLAGS_quic_send_max_header_list_size = true; |
| 747 const uint32_t kTestHeaderTableSize = 1000; | 748 const uint32_t kTestHeaderTableSize = 1000; |
| 748 SpdySettingsIR data; | 749 SpdySettingsIR data; |
| 749 // Respect supported settings frames SETTINGS_HEADER_TABLE_SIZE. | 750 // Respect supported settings frames SETTINGS_HEADER_TABLE_SIZE, |
| 751 // SETTINGS_MAX_HEADER_LIST_SIZE. |
| 750 data.AddSetting(SETTINGS_HEADER_TABLE_SIZE, true, true, kTestHeaderTableSize); | 752 data.AddSetting(SETTINGS_HEADER_TABLE_SIZE, true, true, kTestHeaderTableSize); |
| 753 data.AddSetting(SETTINGS_MAX_HEADER_LIST_SIZE, true, true, 2000); |
| 751 SpdySerializedFrame frame(framer_->SerializeFrame(data)); | 754 SpdySerializedFrame frame(framer_->SerializeFrame(data)); |
| 752 stream_frame_.data_buffer = frame.data(); | 755 stream_frame_.data_buffer = frame.data(); |
| 753 stream_frame_.data_length = frame.size(); | 756 stream_frame_.data_length = frame.size(); |
| 754 headers_stream_->OnStreamFrame(stream_frame_); | 757 headers_stream_->OnStreamFrame(stream_frame_); |
| 755 EXPECT_EQ(kTestHeaderTableSize, | 758 EXPECT_EQ(kTestHeaderTableSize, |
| 756 QuicHeadersStreamPeer::GetSpdyFramer(headers_stream_) | 759 QuicHeadersStreamPeer::GetSpdyFramer(headers_stream_) |
| 757 .header_encoder_table_size()); | 760 .header_encoder_table_size()); |
| 758 } | 761 } |
| 759 | 762 |
| 760 TEST_P(QuicHeadersStreamTest, RespectHttp2SettingsFrameUnsupportedFields) { | 763 TEST_P(QuicHeadersStreamTest, RespectHttp2SettingsFrameUnsupportedFields) { |
| 761 FLAGS_quic_respect_http2_settings_frame = true; | 764 FLAGS_quic_respect_http2_settings_frame = true; |
| 765 FLAGS_quic_send_max_header_list_size = true; |
| 762 SpdySettingsIR data; | 766 SpdySettingsIR data; |
| 763 // Does not support SETTINGS_MAX_HEADER_LIST_SIZE, | 767 // Does not support SETTINGS_MAX_CONCURRENT_STREAMS, |
| 764 // SETTINGS_MAX_CONCURRENT_STREAMS, SETTINGS_INITIAL_WINDOW_SIZE, | 768 // SETTINGS_INITIAL_WINDOW_SIZE, SETTINGS_ENABLE_PUSH and |
| 765 // SETTINGS_ENABLE_PUSH and SETTINGS_MAX_FRAME_SIZE. | 769 // SETTINGS_MAX_FRAME_SIZE. |
| 766 data.AddSetting(SETTINGS_MAX_HEADER_LIST_SIZE, true, true, 2000); | |
| 767 data.AddSetting(SETTINGS_MAX_CONCURRENT_STREAMS, true, true, 100); | 770 data.AddSetting(SETTINGS_MAX_CONCURRENT_STREAMS, true, true, 100); |
| 768 data.AddSetting(SETTINGS_INITIAL_WINDOW_SIZE, true, true, 100); | 771 data.AddSetting(SETTINGS_INITIAL_WINDOW_SIZE, true, true, 100); |
| 769 data.AddSetting(SETTINGS_ENABLE_PUSH, true, true, 1); | 772 data.AddSetting(SETTINGS_ENABLE_PUSH, true, true, 1); |
| 770 data.AddSetting(SETTINGS_MAX_FRAME_SIZE, true, true, 1250); | 773 data.AddSetting(SETTINGS_MAX_FRAME_SIZE, true, true, 1250); |
| 771 SpdySerializedFrame frame(framer_->SerializeFrame(data)); | 774 SpdySerializedFrame frame(framer_->SerializeFrame(data)); |
| 772 EXPECT_CALL( | 775 EXPECT_CALL( |
| 773 *connection_, | 776 *connection_, |
| 774 CloseConnection(QUIC_INVALID_HEADERS_STREAM_DATA, | 777 CloseConnection(QUIC_INVALID_HEADERS_STREAM_DATA, |
| 775 "Unsupported field of HTTP/2 SETTINGS frame: " + | 778 "Unsupported field of HTTP/2 SETTINGS frame: " + |
| 776 base::IntToString(SETTINGS_MAX_HEADER_LIST_SIZE), | |
| 777 _)); | |
| 778 EXPECT_CALL( | |
| 779 *connection_, | |
| 780 CloseConnection(QUIC_INVALID_HEADERS_STREAM_DATA, | |
| 781 "Unsupported field of HTTP/2 SETTINGS frame: " + | |
| 782 base::IntToString(SETTINGS_MAX_CONCURRENT_STREAMS), | 779 base::IntToString(SETTINGS_MAX_CONCURRENT_STREAMS), |
| 783 _)); | 780 _)); |
| 784 EXPECT_CALL( | 781 EXPECT_CALL( |
| 785 *connection_, | 782 *connection_, |
| 786 CloseConnection(QUIC_INVALID_HEADERS_STREAM_DATA, | 783 CloseConnection(QUIC_INVALID_HEADERS_STREAM_DATA, |
| 787 "Unsupported field of HTTP/2 SETTINGS frame: " + | 784 "Unsupported field of HTTP/2 SETTINGS frame: " + |
| 788 base::IntToString(SETTINGS_INITIAL_WINDOW_SIZE), | 785 base::IntToString(SETTINGS_INITIAL_WINDOW_SIZE), |
| 789 _)); | 786 _)); |
| 790 if (!FLAGS_quic_enable_server_push_by_default || | 787 if (!FLAGS_quic_enable_server_push_by_default || |
| 791 session_.perspective() == Perspective::IS_CLIENT) { | 788 session_.perspective() == Perspective::IS_CLIENT) { |
| (...skipping 197 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 989 } | 986 } |
| 990 saved_data_.clear(); | 987 saved_data_.clear(); |
| 991 saved_payloads_.clear(); | 988 saved_payloads_.clear(); |
| 992 } | 989 } |
| 993 } | 990 } |
| 994 } | 991 } |
| 995 | 992 |
| 996 } // namespace | 993 } // namespace |
| 997 } // namespace test | 994 } // namespace test |
| 998 } // namespace net | 995 } // namespace net |
| OLD | NEW |