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 "net/http/http_network_transaction.h" | 5 #include "net/http/http_network_transaction.h" |
6 | 6 |
7 #include <math.h> // ceil | 7 #include <math.h> // ceil |
8 #include <stdarg.h> | 8 #include <stdarg.h> |
9 #include <string> | 9 #include <string> |
10 #include <vector> | 10 #include <vector> |
(...skipping 4925 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
4936 scoped_ptr<SpdyFrame> connect2( | 4936 scoped_ptr<SpdyFrame> connect2( |
4937 ConstructSpdyConnect(kAuthCredentials, arraysize(kAuthCredentials)/2, 3)); | 4937 ConstructSpdyConnect(kAuthCredentials, arraysize(kAuthCredentials)/2, 3)); |
4938 // fetch https://www.google.com/ via HTTP | 4938 // fetch https://www.google.com/ via HTTP |
4939 const char get[] = "GET / HTTP/1.1\r\n" | 4939 const char get[] = "GET / HTTP/1.1\r\n" |
4940 "Host: www.google.com\r\n" | 4940 "Host: www.google.com\r\n" |
4941 "Connection: keep-alive\r\n\r\n"; | 4941 "Connection: keep-alive\r\n\r\n"; |
4942 scoped_ptr<SpdyFrame> wrapped_get( | 4942 scoped_ptr<SpdyFrame> wrapped_get( |
4943 ConstructSpdyBodyFrame(3, get, strlen(get), false)); | 4943 ConstructSpdyBodyFrame(3, get, strlen(get), false)); |
4944 | 4944 |
4945 MockWrite spdy_writes[] = { | 4945 MockWrite spdy_writes[] = { |
4946 CreateMockWrite(*req, 0, ASYNC), | 4946 CreateMockWrite(*req, 1, ASYNC), |
4947 CreateMockWrite(*connect2, 2), | 4947 CreateMockWrite(*connect2, 4), |
4948 CreateMockWrite(*rst, 3, ASYNC), | 4948 CreateMockWrite(*rst, 5, ASYNC), |
4949 CreateMockWrite(*wrapped_get, 5) | 4949 CreateMockWrite(*wrapped_get, 8) |
4950 }; | 4950 }; |
4951 | 4951 |
4952 // The proxy responds to the connect with a 407, using a persistent | 4952 // The proxy responds to the connect with a 407, using a persistent |
4953 // connection. | 4953 // connection. |
4954 const char* const kAuthChallenge[] = { | 4954 const char* const kAuthChallenge[] = { |
4955 ":status", "407 Proxy Authentication Required", | 4955 ":status", "407 Proxy Authentication Required", |
4956 ":version", "HTTP/1.1", | 4956 ":version", "HTTP/1.1", |
4957 "proxy-authenticate", "Basic realm=\"MyRealm1\"", | 4957 "proxy-authenticate", "Basic realm=\"MyRealm1\"", |
4958 }; | 4958 }; |
4959 | 4959 |
(...skipping 10 matching lines...) Expand all Loading... |
4970 | 4970 |
4971 scoped_ptr<SpdyFrame> conn_resp(ConstructSpdyGetSynReply(NULL, 0, 3)); | 4971 scoped_ptr<SpdyFrame> conn_resp(ConstructSpdyGetSynReply(NULL, 0, 3)); |
4972 const char resp[] = "HTTP/1.1 200 OK\r\n" | 4972 const char resp[] = "HTTP/1.1 200 OK\r\n" |
4973 "Content-Length: 5\r\n\r\n"; | 4973 "Content-Length: 5\r\n\r\n"; |
4974 | 4974 |
4975 scoped_ptr<SpdyFrame> wrapped_get_resp( | 4975 scoped_ptr<SpdyFrame> wrapped_get_resp( |
4976 ConstructSpdyBodyFrame(3, resp, strlen(resp), false)); | 4976 ConstructSpdyBodyFrame(3, resp, strlen(resp), false)); |
4977 scoped_ptr<SpdyFrame> wrapped_body( | 4977 scoped_ptr<SpdyFrame> wrapped_body( |
4978 ConstructSpdyBodyFrame(3, "hello", 5, false)); | 4978 ConstructSpdyBodyFrame(3, "hello", 5, false)); |
4979 MockRead spdy_reads[] = { | 4979 MockRead spdy_reads[] = { |
4980 CreateMockRead(*conn_auth_resp, 1, ASYNC), | 4980 CreateMockRead(*conn_auth_resp, 2, ASYNC), |
4981 CreateMockRead(*conn_resp, 4, ASYNC), | 4981 CreateMockRead(*conn_resp, 6, ASYNC), |
4982 CreateMockRead(*wrapped_get_resp, 5, ASYNC), | 4982 CreateMockRead(*wrapped_get_resp, 9, ASYNC), |
4983 CreateMockRead(*wrapped_body, 6, ASYNC), | 4983 CreateMockRead(*wrapped_body, 10, ASYNC), |
4984 MockRead(SYNCHRONOUS, ERR_IO_PENDING), | 4984 MockRead(SYNCHRONOUS, ERR_IO_PENDING), // EOF. May or may not be read. |
4985 }; | 4985 }; |
4986 | 4986 |
4987 scoped_ptr<OrderedSocketData> spdy_data( | 4987 scoped_ptr<OrderedSocketData> spdy_data( |
4988 new OrderedSocketData( | 4988 new OrderedSocketData( |
4989 spdy_reads, arraysize(spdy_reads), | 4989 spdy_reads, arraysize(spdy_reads), |
4990 spdy_writes, arraysize(spdy_writes))); | 4990 spdy_writes, arraysize(spdy_writes))); |
4991 session_deps.socket_factory.AddSocketDataProvider(spdy_data.get()); | 4991 session_deps.socket_factory.AddSocketDataProvider(spdy_data.get()); |
4992 // Negotiate SPDY to the proxy | 4992 // Negotiate SPDY to the proxy |
4993 SSLSocketDataProvider proxy(ASYNC, OK); | 4993 SSLSocketDataProvider proxy(ASYNC, OK); |
4994 proxy.SetNextProto(kProtoSPDY3); | 4994 proxy.SetNextProto(kProtoSPDY3); |
(...skipping 4804 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
9799 StaticSocketDataProvider* data[] = { &data1, &data2 }; | 9799 StaticSocketDataProvider* data[] = { &data1, &data2 }; |
9800 | 9800 |
9801 SimpleGetHelperResult out = SimpleGetHelperForData(data, arraysize(data)); | 9801 SimpleGetHelperResult out = SimpleGetHelperForData(data, arraysize(data)); |
9802 | 9802 |
9803 EXPECT_EQ(OK, out.rv); | 9803 EXPECT_EQ(OK, out.rv); |
9804 EXPECT_EQ("HTTP/1.0 200 OK", out.status_line); | 9804 EXPECT_EQ("HTTP/1.0 200 OK", out.status_line); |
9805 EXPECT_EQ("hello world", out.response_data); | 9805 EXPECT_EQ("hello world", out.response_data); |
9806 } | 9806 } |
9807 | 9807 |
9808 } // namespace net | 9808 } // namespace net |
OLD | NEW |