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 |