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/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 <stdint.h> | 9 #include <stdint.h> |
10 | 10 |
(...skipping 2381 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2392 // Test the request-challenge-retry sequence for basic auth, over a connection | 2392 // Test the request-challenge-retry sequence for basic auth, over a connection |
2393 // that requires a restart when setting up an SSL tunnel. | 2393 // that requires a restart when setting up an SSL tunnel. |
2394 TEST_P(HttpNetworkTransactionTest, BasicAuthProxyNoKeepAliveHttp10) { | 2394 TEST_P(HttpNetworkTransactionTest, BasicAuthProxyNoKeepAliveHttp10) { |
2395 HttpRequestInfo request; | 2395 HttpRequestInfo request; |
2396 request.method = "GET"; | 2396 request.method = "GET"; |
2397 request.url = GURL("https://www.example.org/"); | 2397 request.url = GURL("https://www.example.org/"); |
2398 // when the no authentication data flag is set. | 2398 // when the no authentication data flag is set. |
2399 request.load_flags = LOAD_DO_NOT_SEND_AUTH_DATA; | 2399 request.load_flags = LOAD_DO_NOT_SEND_AUTH_DATA; |
2400 | 2400 |
2401 // Configure against proxy server "myproxy:70". | 2401 // Configure against proxy server "myproxy:70". |
2402 session_deps_.proxy_service.reset( | 2402 session_deps_.proxy_service = |
2403 ProxyService::CreateFixedFromPacResult("PROXY myproxy:70")); | 2403 ProxyService::CreateFixedFromPacResult("PROXY myproxy:70"); |
2404 BoundTestNetLog log; | 2404 BoundTestNetLog log; |
2405 session_deps_.net_log = log.bound().net_log(); | 2405 session_deps_.net_log = log.bound().net_log(); |
2406 scoped_refptr<HttpNetworkSession> session(CreateSession(&session_deps_)); | 2406 scoped_refptr<HttpNetworkSession> session(CreateSession(&session_deps_)); |
2407 | 2407 |
2408 // Since we have proxy, should try to establish tunnel. | 2408 // Since we have proxy, should try to establish tunnel. |
2409 MockWrite data_writes1[] = { | 2409 MockWrite data_writes1[] = { |
2410 MockWrite("CONNECT www.example.org:443 HTTP/1.1\r\n" | 2410 MockWrite("CONNECT www.example.org:443 HTTP/1.1\r\n" |
2411 "Host: www.example.org\r\n" | 2411 "Host: www.example.org\r\n" |
2412 "Proxy-Connection: keep-alive\r\n\r\n"), | 2412 "Proxy-Connection: keep-alive\r\n\r\n"), |
2413 }; | 2413 }; |
(...skipping 102 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2516 // Test the request-challenge-retry sequence for basic auth, over a connection | 2516 // Test the request-challenge-retry sequence for basic auth, over a connection |
2517 // that requires a restart when setting up an SSL tunnel. | 2517 // that requires a restart when setting up an SSL tunnel. |
2518 TEST_P(HttpNetworkTransactionTest, BasicAuthProxyNoKeepAliveHttp11) { | 2518 TEST_P(HttpNetworkTransactionTest, BasicAuthProxyNoKeepAliveHttp11) { |
2519 HttpRequestInfo request; | 2519 HttpRequestInfo request; |
2520 request.method = "GET"; | 2520 request.method = "GET"; |
2521 request.url = GURL("https://www.example.org/"); | 2521 request.url = GURL("https://www.example.org/"); |
2522 // when the no authentication data flag is set. | 2522 // when the no authentication data flag is set. |
2523 request.load_flags = LOAD_DO_NOT_SEND_AUTH_DATA; | 2523 request.load_flags = LOAD_DO_NOT_SEND_AUTH_DATA; |
2524 | 2524 |
2525 // Configure against proxy server "myproxy:70". | 2525 // Configure against proxy server "myproxy:70". |
2526 session_deps_.proxy_service.reset( | 2526 session_deps_.proxy_service = |
2527 ProxyService::CreateFixedFromPacResult("PROXY myproxy:70")); | 2527 ProxyService::CreateFixedFromPacResult("PROXY myproxy:70"); |
2528 BoundTestNetLog log; | 2528 BoundTestNetLog log; |
2529 session_deps_.net_log = log.bound().net_log(); | 2529 session_deps_.net_log = log.bound().net_log(); |
2530 scoped_refptr<HttpNetworkSession> session(CreateSession(&session_deps_)); | 2530 scoped_refptr<HttpNetworkSession> session(CreateSession(&session_deps_)); |
2531 | 2531 |
2532 // Since we have proxy, should try to establish tunnel. | 2532 // Since we have proxy, should try to establish tunnel. |
2533 MockWrite data_writes1[] = { | 2533 MockWrite data_writes1[] = { |
2534 MockWrite("CONNECT www.example.org:443 HTTP/1.1\r\n" | 2534 MockWrite("CONNECT www.example.org:443 HTTP/1.1\r\n" |
2535 "Host: www.example.org\r\n" | 2535 "Host: www.example.org\r\n" |
2536 "Proxy-Connection: keep-alive\r\n\r\n"), | 2536 "Proxy-Connection: keep-alive\r\n\r\n"), |
2537 }; | 2537 }; |
(...skipping 103 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2641 // proxy connection with HTTP/1.0 responses, when setting up an SSL tunnel. | 2641 // proxy connection with HTTP/1.0 responses, when setting up an SSL tunnel. |
2642 TEST_P(HttpNetworkTransactionTest, BasicAuthProxyKeepAliveHttp10) { | 2642 TEST_P(HttpNetworkTransactionTest, BasicAuthProxyKeepAliveHttp10) { |
2643 HttpRequestInfo request; | 2643 HttpRequestInfo request; |
2644 request.method = "GET"; | 2644 request.method = "GET"; |
2645 request.url = GURL("https://www.example.org/"); | 2645 request.url = GURL("https://www.example.org/"); |
2646 // Ensure that proxy authentication is attempted even | 2646 // Ensure that proxy authentication is attempted even |
2647 // when the no authentication data flag is set. | 2647 // when the no authentication data flag is set. |
2648 request.load_flags = LOAD_DO_NOT_SEND_AUTH_DATA; | 2648 request.load_flags = LOAD_DO_NOT_SEND_AUTH_DATA; |
2649 | 2649 |
2650 // Configure against proxy server "myproxy:70". | 2650 // Configure against proxy server "myproxy:70". |
2651 session_deps_.proxy_service.reset(ProxyService::CreateFixed("myproxy:70")); | 2651 session_deps_.proxy_service = ProxyService::CreateFixed("myproxy:70"); |
2652 BoundTestNetLog log; | 2652 BoundTestNetLog log; |
2653 session_deps_.net_log = log.bound().net_log(); | 2653 session_deps_.net_log = log.bound().net_log(); |
2654 scoped_refptr<HttpNetworkSession> session(CreateSession(&session_deps_)); | 2654 scoped_refptr<HttpNetworkSession> session(CreateSession(&session_deps_)); |
2655 | 2655 |
2656 scoped_ptr<HttpTransaction> trans( | 2656 scoped_ptr<HttpTransaction> trans( |
2657 new HttpNetworkTransaction(DEFAULT_PRIORITY, session.get())); | 2657 new HttpNetworkTransaction(DEFAULT_PRIORITY, session.get())); |
2658 | 2658 |
2659 // Since we have proxy, should try to establish tunnel. | 2659 // Since we have proxy, should try to establish tunnel. |
2660 MockWrite data_writes1[] = { | 2660 MockWrite data_writes1[] = { |
2661 MockWrite( | 2661 MockWrite( |
(...skipping 86 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2748 // proxy connection with HTTP/1.1 responses, when setting up an SSL tunnel. | 2748 // proxy connection with HTTP/1.1 responses, when setting up an SSL tunnel. |
2749 TEST_P(HttpNetworkTransactionTest, BasicAuthProxyKeepAliveHttp11) { | 2749 TEST_P(HttpNetworkTransactionTest, BasicAuthProxyKeepAliveHttp11) { |
2750 HttpRequestInfo request; | 2750 HttpRequestInfo request; |
2751 request.method = "GET"; | 2751 request.method = "GET"; |
2752 request.url = GURL("https://www.example.org/"); | 2752 request.url = GURL("https://www.example.org/"); |
2753 // Ensure that proxy authentication is attempted even | 2753 // Ensure that proxy authentication is attempted even |
2754 // when the no authentication data flag is set. | 2754 // when the no authentication data flag is set. |
2755 request.load_flags = LOAD_DO_NOT_SEND_AUTH_DATA; | 2755 request.load_flags = LOAD_DO_NOT_SEND_AUTH_DATA; |
2756 | 2756 |
2757 // Configure against proxy server "myproxy:70". | 2757 // Configure against proxy server "myproxy:70". |
2758 session_deps_.proxy_service.reset(ProxyService::CreateFixed("myproxy:70")); | 2758 session_deps_.proxy_service = ProxyService::CreateFixed("myproxy:70"); |
2759 BoundTestNetLog log; | 2759 BoundTestNetLog log; |
2760 session_deps_.net_log = log.bound().net_log(); | 2760 session_deps_.net_log = log.bound().net_log(); |
2761 scoped_refptr<HttpNetworkSession> session(CreateSession(&session_deps_)); | 2761 scoped_refptr<HttpNetworkSession> session(CreateSession(&session_deps_)); |
2762 | 2762 |
2763 scoped_ptr<HttpTransaction> trans( | 2763 scoped_ptr<HttpTransaction> trans( |
2764 new HttpNetworkTransaction(DEFAULT_PRIORITY, session.get())); | 2764 new HttpNetworkTransaction(DEFAULT_PRIORITY, session.get())); |
2765 | 2765 |
2766 // Since we have proxy, should try to establish tunnel. | 2766 // Since we have proxy, should try to establish tunnel. |
2767 MockWrite data_writes1[] = { | 2767 MockWrite data_writes1[] = { |
2768 MockWrite( | 2768 MockWrite( |
(...skipping 85 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2854 // drained. | 2854 // drained. |
2855 TEST_P(HttpNetworkTransactionTest, BasicAuthProxyKeepAliveHangupDuringBody) { | 2855 TEST_P(HttpNetworkTransactionTest, BasicAuthProxyKeepAliveHangupDuringBody) { |
2856 HttpRequestInfo request; | 2856 HttpRequestInfo request; |
2857 request.method = "GET"; | 2857 request.method = "GET"; |
2858 request.url = GURL("https://www.example.org/"); | 2858 request.url = GURL("https://www.example.org/"); |
2859 // Ensure that proxy authentication is attempted even | 2859 // Ensure that proxy authentication is attempted even |
2860 // when the no authentication data flag is set. | 2860 // when the no authentication data flag is set. |
2861 request.load_flags = LOAD_DO_NOT_SEND_AUTH_DATA; | 2861 request.load_flags = LOAD_DO_NOT_SEND_AUTH_DATA; |
2862 | 2862 |
2863 // Configure against proxy server "myproxy:70". | 2863 // Configure against proxy server "myproxy:70". |
2864 session_deps_.proxy_service.reset(ProxyService::CreateFixed("myproxy:70")); | 2864 session_deps_.proxy_service = ProxyService::CreateFixed("myproxy:70"); |
2865 scoped_refptr<HttpNetworkSession> session(CreateSession(&session_deps_)); | 2865 scoped_refptr<HttpNetworkSession> session(CreateSession(&session_deps_)); |
2866 | 2866 |
2867 scoped_ptr<HttpTransaction> trans( | 2867 scoped_ptr<HttpTransaction> trans( |
2868 new HttpNetworkTransaction(DEFAULT_PRIORITY, session.get())); | 2868 new HttpNetworkTransaction(DEFAULT_PRIORITY, session.get())); |
2869 | 2869 |
2870 // Since we have proxy, should try to establish tunnel. | 2870 // Since we have proxy, should try to establish tunnel. |
2871 MockWrite data_writes1[] = { | 2871 MockWrite data_writes1[] = { |
2872 MockWrite("CONNECT www.example.org:443 HTTP/1.1\r\n" | 2872 MockWrite("CONNECT www.example.org:443 HTTP/1.1\r\n" |
2873 "Host: www.example.org\r\n" | 2873 "Host: www.example.org\r\n" |
2874 "Proxy-Connection: keep-alive\r\n\r\n"), | 2874 "Proxy-Connection: keep-alive\r\n\r\n"), |
(...skipping 68 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2943 | 2943 |
2944 // Test that we don't read the response body when we fail to establish a tunnel, | 2944 // Test that we don't read the response body when we fail to establish a tunnel, |
2945 // even if the user cancels the proxy's auth attempt. | 2945 // even if the user cancels the proxy's auth attempt. |
2946 TEST_P(HttpNetworkTransactionTest, BasicAuthProxyCancelTunnel) { | 2946 TEST_P(HttpNetworkTransactionTest, BasicAuthProxyCancelTunnel) { |
2947 HttpRequestInfo request; | 2947 HttpRequestInfo request; |
2948 request.method = "GET"; | 2948 request.method = "GET"; |
2949 request.url = GURL("https://www.example.org/"); | 2949 request.url = GURL("https://www.example.org/"); |
2950 request.load_flags = 0; | 2950 request.load_flags = 0; |
2951 | 2951 |
2952 // Configure against proxy server "myproxy:70". | 2952 // Configure against proxy server "myproxy:70". |
2953 session_deps_.proxy_service.reset(ProxyService::CreateFixed("myproxy:70")); | 2953 session_deps_.proxy_service = ProxyService::CreateFixed("myproxy:70"); |
2954 | 2954 |
2955 scoped_refptr<HttpNetworkSession> session(CreateSession(&session_deps_)); | 2955 scoped_refptr<HttpNetworkSession> session(CreateSession(&session_deps_)); |
2956 | 2956 |
2957 scoped_ptr<HttpTransaction> trans( | 2957 scoped_ptr<HttpTransaction> trans( |
2958 new HttpNetworkTransaction(DEFAULT_PRIORITY, session.get())); | 2958 new HttpNetworkTransaction(DEFAULT_PRIORITY, session.get())); |
2959 | 2959 |
2960 // Since we have proxy, should try to establish tunnel. | 2960 // Since we have proxy, should try to establish tunnel. |
2961 MockWrite data_writes[] = { | 2961 MockWrite data_writes[] = { |
2962 MockWrite( | 2962 MockWrite( |
2963 "CONNECT www.example.org:443 HTTP/1.1\r\n" | 2963 "CONNECT www.example.org:443 HTTP/1.1\r\n" |
(...skipping 39 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
3003 | 3003 |
3004 // Test that we don't pass extraneous headers from the proxy's response to the | 3004 // Test that we don't pass extraneous headers from the proxy's response to the |
3005 // caller when the proxy responds to CONNECT with 407. | 3005 // caller when the proxy responds to CONNECT with 407. |
3006 TEST_P(HttpNetworkTransactionTest, SanitizeProxyAuthHeaders) { | 3006 TEST_P(HttpNetworkTransactionTest, SanitizeProxyAuthHeaders) { |
3007 HttpRequestInfo request; | 3007 HttpRequestInfo request; |
3008 request.method = "GET"; | 3008 request.method = "GET"; |
3009 request.url = GURL("https://www.example.org/"); | 3009 request.url = GURL("https://www.example.org/"); |
3010 request.load_flags = 0; | 3010 request.load_flags = 0; |
3011 | 3011 |
3012 // Configure against proxy server "myproxy:70". | 3012 // Configure against proxy server "myproxy:70". |
3013 session_deps_.proxy_service.reset(ProxyService::CreateFixed("myproxy:70")); | 3013 session_deps_.proxy_service = ProxyService::CreateFixed("myproxy:70"); |
3014 | 3014 |
3015 scoped_refptr<HttpNetworkSession> session(CreateSession(&session_deps_)); | 3015 scoped_refptr<HttpNetworkSession> session(CreateSession(&session_deps_)); |
3016 | 3016 |
3017 scoped_ptr<HttpTransaction> trans( | 3017 scoped_ptr<HttpTransaction> trans( |
3018 new HttpNetworkTransaction(DEFAULT_PRIORITY, session.get())); | 3018 new HttpNetworkTransaction(DEFAULT_PRIORITY, session.get())); |
3019 | 3019 |
3020 // Since we have proxy, should try to establish tunnel. | 3020 // Since we have proxy, should try to establish tunnel. |
3021 MockWrite data_writes[] = { | 3021 MockWrite data_writes[] = { |
3022 MockWrite( | 3022 MockWrite( |
3023 "CONNECT www.example.org:443 HTTP/1.1\r\n" | 3023 "CONNECT www.example.org:443 HTTP/1.1\r\n" |
(...skipping 87 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
3111 // Note that it is impossible to detect if an HTTP server returns a 407 through | 3111 // Note that it is impossible to detect if an HTTP server returns a 407 through |
3112 // a non-authenticating proxy - there is nothing to indicate whether the | 3112 // a non-authenticating proxy - there is nothing to indicate whether the |
3113 // response came from the proxy or the server, so it is treated as if the proxy | 3113 // response came from the proxy or the server, so it is treated as if the proxy |
3114 // issued the challenge. | 3114 // issued the challenge. |
3115 TEST_P(HttpNetworkTransactionTest, | 3115 TEST_P(HttpNetworkTransactionTest, |
3116 HttpsServerRequestsProxyAuthThroughProxy) { | 3116 HttpsServerRequestsProxyAuthThroughProxy) { |
3117 HttpRequestInfo request; | 3117 HttpRequestInfo request; |
3118 request.method = "GET"; | 3118 request.method = "GET"; |
3119 request.url = GURL("https://www.example.org/"); | 3119 request.url = GURL("https://www.example.org/"); |
3120 | 3120 |
3121 session_deps_.proxy_service.reset(ProxyService::CreateFixed("myproxy:70")); | 3121 session_deps_.proxy_service = ProxyService::CreateFixed("myproxy:70"); |
3122 BoundTestNetLog log; | 3122 BoundTestNetLog log; |
3123 session_deps_.net_log = log.bound().net_log(); | 3123 session_deps_.net_log = log.bound().net_log(); |
3124 scoped_refptr<HttpNetworkSession> session(CreateSession(&session_deps_)); | 3124 scoped_refptr<HttpNetworkSession> session(CreateSession(&session_deps_)); |
3125 | 3125 |
3126 // Since we have proxy, should try to establish tunnel. | 3126 // Since we have proxy, should try to establish tunnel. |
3127 MockWrite data_writes1[] = { | 3127 MockWrite data_writes1[] = { |
3128 MockWrite( | 3128 MockWrite( |
3129 "CONNECT www.example.org:443 HTTP/1.1\r\n" | 3129 "CONNECT www.example.org:443 HTTP/1.1\r\n" |
3130 "Host: www.example.org\r\n" | 3130 "Host: www.example.org\r\n" |
3131 "Proxy-Connection: keep-alive\r\n\r\n"), | 3131 "Proxy-Connection: keep-alive\r\n\r\n"), |
(...skipping 44 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
3176 TEST_P(HttpNetworkTransactionTest, HttpProxyLoadTimingNoPacTwoRequests) { | 3176 TEST_P(HttpNetworkTransactionTest, HttpProxyLoadTimingNoPacTwoRequests) { |
3177 HttpRequestInfo request1; | 3177 HttpRequestInfo request1; |
3178 request1.method = "GET"; | 3178 request1.method = "GET"; |
3179 request1.url = GURL("https://www.example.org/1"); | 3179 request1.url = GURL("https://www.example.org/1"); |
3180 | 3180 |
3181 HttpRequestInfo request2; | 3181 HttpRequestInfo request2; |
3182 request2.method = "GET"; | 3182 request2.method = "GET"; |
3183 request2.url = GURL("https://www.example.org/2"); | 3183 request2.url = GURL("https://www.example.org/2"); |
3184 | 3184 |
3185 // Configure against proxy server "myproxy:70". | 3185 // Configure against proxy server "myproxy:70". |
3186 session_deps_.proxy_service.reset( | 3186 session_deps_.proxy_service = ProxyService::CreateFixed("PROXY myproxy:70"); |
3187 ProxyService::CreateFixed("PROXY myproxy:70")); | |
3188 BoundTestNetLog log; | 3187 BoundTestNetLog log; |
3189 session_deps_.net_log = log.bound().net_log(); | 3188 session_deps_.net_log = log.bound().net_log(); |
3190 scoped_refptr<HttpNetworkSession> session(CreateSession(&session_deps_)); | 3189 scoped_refptr<HttpNetworkSession> session(CreateSession(&session_deps_)); |
3191 | 3190 |
3192 // Since we have proxy, should try to establish tunnel. | 3191 // Since we have proxy, should try to establish tunnel. |
3193 MockWrite data_writes1[] = { | 3192 MockWrite data_writes1[] = { |
3194 MockWrite( | 3193 MockWrite( |
3195 "CONNECT www.example.org:443 HTTP/1.1\r\n" | 3194 "CONNECT www.example.org:443 HTTP/1.1\r\n" |
3196 "Host: www.example.org\r\n" | 3195 "Host: www.example.org\r\n" |
3197 "Proxy-Connection: keep-alive\r\n\r\n"), | 3196 "Proxy-Connection: keep-alive\r\n\r\n"), |
(...skipping 79 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
3277 TEST_P(HttpNetworkTransactionTest, HttpProxyLoadTimingWithPacTwoRequests) { | 3276 TEST_P(HttpNetworkTransactionTest, HttpProxyLoadTimingWithPacTwoRequests) { |
3278 HttpRequestInfo request1; | 3277 HttpRequestInfo request1; |
3279 request1.method = "GET"; | 3278 request1.method = "GET"; |
3280 request1.url = GURL("https://www.example.org/1"); | 3279 request1.url = GURL("https://www.example.org/1"); |
3281 | 3280 |
3282 HttpRequestInfo request2; | 3281 HttpRequestInfo request2; |
3283 request2.method = "GET"; | 3282 request2.method = "GET"; |
3284 request2.url = GURL("https://www.example.org/2"); | 3283 request2.url = GURL("https://www.example.org/2"); |
3285 | 3284 |
3286 // Configure against proxy server "myproxy:70". | 3285 // Configure against proxy server "myproxy:70". |
3287 session_deps_.proxy_service.reset( | 3286 session_deps_.proxy_service = |
3288 ProxyService::CreateFixedFromPacResult("PROXY myproxy:70")); | 3287 ProxyService::CreateFixedFromPacResult("PROXY myproxy:70"); |
3289 BoundTestNetLog log; | 3288 BoundTestNetLog log; |
3290 session_deps_.net_log = log.bound().net_log(); | 3289 session_deps_.net_log = log.bound().net_log(); |
3291 scoped_refptr<HttpNetworkSession> session(CreateSession(&session_deps_)); | 3290 scoped_refptr<HttpNetworkSession> session(CreateSession(&session_deps_)); |
3292 | 3291 |
3293 // Since we have proxy, should try to establish tunnel. | 3292 // Since we have proxy, should try to establish tunnel. |
3294 MockWrite data_writes1[] = { | 3293 MockWrite data_writes1[] = { |
3295 MockWrite( | 3294 MockWrite( |
3296 "CONNECT www.example.org:443 HTTP/1.1\r\n" | 3295 "CONNECT www.example.org:443 HTTP/1.1\r\n" |
3297 "Host: www.example.org\r\n" | 3296 "Host: www.example.org\r\n" |
3298 "Proxy-Connection: keep-alive\r\n\r\n"), | 3297 "Proxy-Connection: keep-alive\r\n\r\n"), |
(...skipping 76 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
3375 session->CloseAllConnections(); | 3374 session->CloseAllConnections(); |
3376 } | 3375 } |
3377 | 3376 |
3378 // Test a simple get through an HTTPS Proxy. | 3377 // Test a simple get through an HTTPS Proxy. |
3379 TEST_P(HttpNetworkTransactionTest, HttpsProxyGet) { | 3378 TEST_P(HttpNetworkTransactionTest, HttpsProxyGet) { |
3380 HttpRequestInfo request; | 3379 HttpRequestInfo request; |
3381 request.method = "GET"; | 3380 request.method = "GET"; |
3382 request.url = GURL("http://www.example.org/"); | 3381 request.url = GURL("http://www.example.org/"); |
3383 | 3382 |
3384 // Configure against https proxy server "proxy:70". | 3383 // Configure against https proxy server "proxy:70". |
3385 session_deps_.proxy_service.reset(ProxyService::CreateFixed( | 3384 session_deps_.proxy_service = ProxyService::CreateFixed("https://proxy:70"); |
3386 "https://proxy:70")); | |
3387 BoundTestNetLog log; | 3385 BoundTestNetLog log; |
3388 session_deps_.net_log = log.bound().net_log(); | 3386 session_deps_.net_log = log.bound().net_log(); |
3389 scoped_refptr<HttpNetworkSession> session(CreateSession(&session_deps_)); | 3387 scoped_refptr<HttpNetworkSession> session(CreateSession(&session_deps_)); |
3390 | 3388 |
3391 // Since we have proxy, should use full url | 3389 // Since we have proxy, should use full url |
3392 MockWrite data_writes1[] = { | 3390 MockWrite data_writes1[] = { |
3393 MockWrite( | 3391 MockWrite( |
3394 "GET http://www.example.org/ HTTP/1.1\r\n" | 3392 "GET http://www.example.org/ HTTP/1.1\r\n" |
3395 "Host: www.example.org\r\n" | 3393 "Host: www.example.org\r\n" |
3396 "Proxy-Connection: keep-alive\r\n\r\n"), | 3394 "Proxy-Connection: keep-alive\r\n\r\n"), |
(...skipping 41 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
3438 } | 3436 } |
3439 | 3437 |
3440 // Test a SPDY get through an HTTPS Proxy. | 3438 // Test a SPDY get through an HTTPS Proxy. |
3441 TEST_P(HttpNetworkTransactionTest, HttpsProxySpdyGet) { | 3439 TEST_P(HttpNetworkTransactionTest, HttpsProxySpdyGet) { |
3442 HttpRequestInfo request; | 3440 HttpRequestInfo request; |
3443 request.method = "GET"; | 3441 request.method = "GET"; |
3444 request.url = GURL("http://www.example.org/"); | 3442 request.url = GURL("http://www.example.org/"); |
3445 request.load_flags = 0; | 3443 request.load_flags = 0; |
3446 | 3444 |
3447 // Configure against https proxy server "proxy:70". | 3445 // Configure against https proxy server "proxy:70". |
3448 session_deps_.proxy_service.reset(ProxyService::CreateFixed( | 3446 session_deps_.proxy_service = ProxyService::CreateFixed("https://proxy:70"); |
3449 "https://proxy:70")); | |
3450 BoundTestNetLog log; | 3447 BoundTestNetLog log; |
3451 session_deps_.net_log = log.bound().net_log(); | 3448 session_deps_.net_log = log.bound().net_log(); |
3452 scoped_refptr<HttpNetworkSession> session(CreateSession(&session_deps_)); | 3449 scoped_refptr<HttpNetworkSession> session(CreateSession(&session_deps_)); |
3453 | 3450 |
3454 // fetch http://www.example.org/ via SPDY | 3451 // fetch http://www.example.org/ via SPDY |
3455 scoped_ptr<SpdyFrame> req( | 3452 scoped_ptr<SpdyFrame> req( |
3456 spdy_util_.ConstructSpdyGet(NULL, 0, false, 1, LOWEST, false)); | 3453 spdy_util_.ConstructSpdyGet(NULL, 0, false, 1, LOWEST, false)); |
3457 MockWrite spdy_writes[] = {CreateMockWrite(*req, 0)}; | 3454 MockWrite spdy_writes[] = {CreateMockWrite(*req, 0)}; |
3458 | 3455 |
3459 scoped_ptr<SpdyFrame> resp(spdy_util_.ConstructSpdyGetSynReply(NULL, 0, 1)); | 3456 scoped_ptr<SpdyFrame> resp(spdy_util_.ConstructSpdyGetSynReply(NULL, 0, 1)); |
(...skipping 39 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
3499 // Verifies that a session which races and wins against the owning transaction | 3496 // Verifies that a session which races and wins against the owning transaction |
3500 // (completing prior to host resolution), doesn't fail the transaction. | 3497 // (completing prior to host resolution), doesn't fail the transaction. |
3501 // Regression test for crbug.com/334413. | 3498 // Regression test for crbug.com/334413. |
3502 TEST_P(HttpNetworkTransactionTest, HttpsProxySpdyGetWithSessionRace) { | 3499 TEST_P(HttpNetworkTransactionTest, HttpsProxySpdyGetWithSessionRace) { |
3503 HttpRequestInfo request; | 3500 HttpRequestInfo request; |
3504 request.method = "GET"; | 3501 request.method = "GET"; |
3505 request.url = GURL("http://www.example.org/"); | 3502 request.url = GURL("http://www.example.org/"); |
3506 request.load_flags = 0; | 3503 request.load_flags = 0; |
3507 | 3504 |
3508 // Configure SPDY proxy server "proxy:70". | 3505 // Configure SPDY proxy server "proxy:70". |
3509 session_deps_.proxy_service.reset( | 3506 session_deps_.proxy_service = ProxyService::CreateFixed("https://proxy:70"); |
3510 ProxyService::CreateFixed("https://proxy:70")); | |
3511 BoundTestNetLog log; | 3507 BoundTestNetLog log; |
3512 session_deps_.net_log = log.bound().net_log(); | 3508 session_deps_.net_log = log.bound().net_log(); |
3513 scoped_refptr<HttpNetworkSession> session(CreateSession(&session_deps_)); | 3509 scoped_refptr<HttpNetworkSession> session(CreateSession(&session_deps_)); |
3514 | 3510 |
3515 // Fetch http://www.example.org/ through the SPDY proxy. | 3511 // Fetch http://www.example.org/ through the SPDY proxy. |
3516 scoped_ptr<SpdyFrame> req( | 3512 scoped_ptr<SpdyFrame> req( |
3517 spdy_util_.ConstructSpdyGet(NULL, 0, false, 1, LOWEST, false)); | 3513 spdy_util_.ConstructSpdyGet(NULL, 0, false, 1, LOWEST, false)); |
3518 MockWrite spdy_writes[] = {CreateMockWrite(*req, 0)}; | 3514 MockWrite spdy_writes[] = {CreateMockWrite(*req, 0)}; |
3519 | 3515 |
3520 scoped_ptr<SpdyFrame> resp(spdy_util_.ConstructSpdyGetSynReply(NULL, 0, 1)); | 3516 scoped_ptr<SpdyFrame> resp(spdy_util_.ConstructSpdyGetSynReply(NULL, 0, 1)); |
(...skipping 48 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
3569 } | 3565 } |
3570 | 3566 |
3571 // Test a SPDY get through an HTTPS Proxy. | 3567 // Test a SPDY get through an HTTPS Proxy. |
3572 TEST_P(HttpNetworkTransactionTest, HttpsProxySpdyGetWithProxyAuth) { | 3568 TEST_P(HttpNetworkTransactionTest, HttpsProxySpdyGetWithProxyAuth) { |
3573 HttpRequestInfo request; | 3569 HttpRequestInfo request; |
3574 request.method = "GET"; | 3570 request.method = "GET"; |
3575 request.url = GURL("http://www.example.org/"); | 3571 request.url = GURL("http://www.example.org/"); |
3576 request.load_flags = 0; | 3572 request.load_flags = 0; |
3577 | 3573 |
3578 // Configure against https proxy server "myproxy:70". | 3574 // Configure against https proxy server "myproxy:70". |
3579 session_deps_.proxy_service.reset( | 3575 session_deps_.proxy_service = ProxyService::CreateFixed("https://myproxy:70"); |
3580 ProxyService::CreateFixed("https://myproxy:70")); | |
3581 BoundTestNetLog log; | 3576 BoundTestNetLog log; |
3582 session_deps_.net_log = log.bound().net_log(); | 3577 session_deps_.net_log = log.bound().net_log(); |
3583 scoped_refptr<HttpNetworkSession> session(CreateSession(&session_deps_)); | 3578 scoped_refptr<HttpNetworkSession> session(CreateSession(&session_deps_)); |
3584 | 3579 |
3585 // The first request will be a bare GET, the second request will be a | 3580 // The first request will be a bare GET, the second request will be a |
3586 // GET with a Proxy-Authorization header. | 3581 // GET with a Proxy-Authorization header. |
3587 scoped_ptr<SpdyFrame> req_get( | 3582 scoped_ptr<SpdyFrame> req_get( |
3588 spdy_util_.ConstructSpdyGet(NULL, 0, false, 1, LOWEST, false)); | 3583 spdy_util_.ConstructSpdyGet(NULL, 0, false, 1, LOWEST, false)); |
3589 const char* const kExtraAuthorizationHeaders[] = { | 3584 const char* const kExtraAuthorizationHeaders[] = { |
3590 "proxy-authorization", "Basic Zm9vOmJhcg==" | 3585 "proxy-authorization", "Basic Zm9vOmJhcg==" |
(...skipping 79 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
3670 } | 3665 } |
3671 | 3666 |
3672 // Test a SPDY CONNECT through an HTTPS Proxy to an HTTPS (non-SPDY) Server. | 3667 // Test a SPDY CONNECT through an HTTPS Proxy to an HTTPS (non-SPDY) Server. |
3673 TEST_P(HttpNetworkTransactionTest, HttpsProxySpdyConnectHttps) { | 3668 TEST_P(HttpNetworkTransactionTest, HttpsProxySpdyConnectHttps) { |
3674 HttpRequestInfo request; | 3669 HttpRequestInfo request; |
3675 request.method = "GET"; | 3670 request.method = "GET"; |
3676 request.url = GURL("https://www.example.org/"); | 3671 request.url = GURL("https://www.example.org/"); |
3677 request.load_flags = 0; | 3672 request.load_flags = 0; |
3678 | 3673 |
3679 // Configure against https proxy server "proxy:70". | 3674 // Configure against https proxy server "proxy:70". |
3680 session_deps_.proxy_service.reset(ProxyService::CreateFixed( | 3675 session_deps_.proxy_service = ProxyService::CreateFixed("https://proxy:70"); |
3681 "https://proxy:70")); | |
3682 BoundTestNetLog log; | 3676 BoundTestNetLog log; |
3683 session_deps_.net_log = log.bound().net_log(); | 3677 session_deps_.net_log = log.bound().net_log(); |
3684 scoped_refptr<HttpNetworkSession> session(CreateSession(&session_deps_)); | 3678 scoped_refptr<HttpNetworkSession> session(CreateSession(&session_deps_)); |
3685 | 3679 |
3686 scoped_ptr<HttpTransaction> trans( | 3680 scoped_ptr<HttpTransaction> trans( |
3687 new HttpNetworkTransaction(DEFAULT_PRIORITY, session.get())); | 3681 new HttpNetworkTransaction(DEFAULT_PRIORITY, session.get())); |
3688 | 3682 |
3689 // CONNECT to www.example.org:443 via SPDY | 3683 // CONNECT to www.example.org:443 via SPDY |
3690 scoped_ptr<SpdyFrame> connect(spdy_util_.ConstructSpdyConnect( | 3684 scoped_ptr<SpdyFrame> connect(spdy_util_.ConstructSpdyConnect( |
3691 NULL, 0, 1, LOWEST, HostPortPair("www.example.org", 443))); | 3685 NULL, 0, 1, LOWEST, HostPortPair("www.example.org", 443))); |
(...skipping 63 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
3755 } | 3749 } |
3756 | 3750 |
3757 // Test a SPDY CONNECT through an HTTPS Proxy to a SPDY server. | 3751 // Test a SPDY CONNECT through an HTTPS Proxy to a SPDY server. |
3758 TEST_P(HttpNetworkTransactionTest, HttpsProxySpdyConnectSpdy) { | 3752 TEST_P(HttpNetworkTransactionTest, HttpsProxySpdyConnectSpdy) { |
3759 HttpRequestInfo request; | 3753 HttpRequestInfo request; |
3760 request.method = "GET"; | 3754 request.method = "GET"; |
3761 request.url = GURL("https://www.example.org/"); | 3755 request.url = GURL("https://www.example.org/"); |
3762 request.load_flags = 0; | 3756 request.load_flags = 0; |
3763 | 3757 |
3764 // Configure against https proxy server "proxy:70". | 3758 // Configure against https proxy server "proxy:70". |
3765 session_deps_.proxy_service.reset(ProxyService::CreateFixed( | 3759 session_deps_.proxy_service = ProxyService::CreateFixed("https://proxy:70"); |
3766 "https://proxy:70")); | |
3767 BoundTestNetLog log; | 3760 BoundTestNetLog log; |
3768 session_deps_.net_log = log.bound().net_log(); | 3761 session_deps_.net_log = log.bound().net_log(); |
3769 scoped_refptr<HttpNetworkSession> session(CreateSession(&session_deps_)); | 3762 scoped_refptr<HttpNetworkSession> session(CreateSession(&session_deps_)); |
3770 | 3763 |
3771 scoped_ptr<HttpTransaction> trans( | 3764 scoped_ptr<HttpTransaction> trans( |
3772 new HttpNetworkTransaction(DEFAULT_PRIORITY, session.get())); | 3765 new HttpNetworkTransaction(DEFAULT_PRIORITY, session.get())); |
3773 | 3766 |
3774 // CONNECT to www.example.org:443 via SPDY | 3767 // CONNECT to www.example.org:443 via SPDY |
3775 scoped_ptr<SpdyFrame> connect(spdy_util_.ConstructSpdyConnect( | 3768 scoped_ptr<SpdyFrame> connect(spdy_util_.ConstructSpdyConnect( |
3776 NULL, 0, 1, LOWEST, HostPortPair("www.example.org", 443))); | 3769 NULL, 0, 1, LOWEST, HostPortPair("www.example.org", 443))); |
(...skipping 70 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
3847 } | 3840 } |
3848 | 3841 |
3849 // Test a SPDY CONNECT failure through an HTTPS Proxy. | 3842 // Test a SPDY CONNECT failure through an HTTPS Proxy. |
3850 TEST_P(HttpNetworkTransactionTest, HttpsProxySpdyConnectFailure) { | 3843 TEST_P(HttpNetworkTransactionTest, HttpsProxySpdyConnectFailure) { |
3851 HttpRequestInfo request; | 3844 HttpRequestInfo request; |
3852 request.method = "GET"; | 3845 request.method = "GET"; |
3853 request.url = GURL("https://www.example.org/"); | 3846 request.url = GURL("https://www.example.org/"); |
3854 request.load_flags = 0; | 3847 request.load_flags = 0; |
3855 | 3848 |
3856 // Configure against https proxy server "proxy:70". | 3849 // Configure against https proxy server "proxy:70". |
3857 session_deps_.proxy_service.reset(ProxyService::CreateFixed( | 3850 session_deps_.proxy_service = ProxyService::CreateFixed("https://proxy:70"); |
3858 "https://proxy:70")); | |
3859 BoundTestNetLog log; | 3851 BoundTestNetLog log; |
3860 session_deps_.net_log = log.bound().net_log(); | 3852 session_deps_.net_log = log.bound().net_log(); |
3861 scoped_refptr<HttpNetworkSession> session(CreateSession(&session_deps_)); | 3853 scoped_refptr<HttpNetworkSession> session(CreateSession(&session_deps_)); |
3862 | 3854 |
3863 scoped_ptr<HttpTransaction> trans( | 3855 scoped_ptr<HttpTransaction> trans( |
3864 new HttpNetworkTransaction(DEFAULT_PRIORITY, session.get())); | 3856 new HttpNetworkTransaction(DEFAULT_PRIORITY, session.get())); |
3865 | 3857 |
3866 // CONNECT to www.example.org:443 via SPDY | 3858 // CONNECT to www.example.org:443 via SPDY |
3867 scoped_ptr<SpdyFrame> connect(spdy_util_.ConstructSpdyConnect( | 3859 scoped_ptr<SpdyFrame> connect(spdy_util_.ConstructSpdyConnect( |
3868 NULL, 0, 1, LOWEST, HostPortPair("www.example.org", 443))); | 3860 NULL, 0, 1, LOWEST, HostPortPair("www.example.org", 443))); |
(...skipping 30 matching lines...) Expand all Loading... |
3899 EXPECT_EQ(ERR_TUNNEL_CONNECTION_FAILED, rv); | 3891 EXPECT_EQ(ERR_TUNNEL_CONNECTION_FAILED, rv); |
3900 | 3892 |
3901 // TODO(ttuttle): Anything else to check here? | 3893 // TODO(ttuttle): Anything else to check here? |
3902 } | 3894 } |
3903 | 3895 |
3904 // Test load timing in the case of two HTTPS (non-SPDY) requests through a SPDY | 3896 // Test load timing in the case of two HTTPS (non-SPDY) requests through a SPDY |
3905 // HTTPS Proxy to different servers. | 3897 // HTTPS Proxy to different servers. |
3906 TEST_P(HttpNetworkTransactionTest, | 3898 TEST_P(HttpNetworkTransactionTest, |
3907 HttpsProxySpdyConnectHttpsLoadTimingTwoRequestsTwoServers) { | 3899 HttpsProxySpdyConnectHttpsLoadTimingTwoRequestsTwoServers) { |
3908 // Configure against https proxy server "proxy:70". | 3900 // Configure against https proxy server "proxy:70". |
3909 session_deps_.proxy_service.reset(ProxyService::CreateFixed( | 3901 session_deps_.proxy_service = ProxyService::CreateFixed("https://proxy:70"); |
3910 "https://proxy:70")); | |
3911 BoundTestNetLog log; | 3902 BoundTestNetLog log; |
3912 session_deps_.net_log = log.bound().net_log(); | 3903 session_deps_.net_log = log.bound().net_log(); |
3913 scoped_refptr<HttpNetworkSession> session( | 3904 scoped_refptr<HttpNetworkSession> session( |
3914 SpdySessionDependencies::SpdyCreateSession(&session_deps_)); | 3905 SpdySessionDependencies::SpdyCreateSession(&session_deps_)); |
3915 | 3906 |
3916 HttpRequestInfo request1; | 3907 HttpRequestInfo request1; |
3917 request1.method = "GET"; | 3908 request1.method = "GET"; |
3918 request1.url = GURL("https://www.example.org/"); | 3909 request1.url = GURL("https://www.example.org/"); |
3919 request1.load_flags = 0; | 3910 request1.load_flags = 0; |
3920 | 3911 |
(...skipping 121 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
4042 | 4033 |
4043 rv = trans2->Read(buf.get(), 256, callback.callback()); | 4034 rv = trans2->Read(buf.get(), 256, callback.callback()); |
4044 EXPECT_EQ(2, callback.GetResult(rv)); | 4035 EXPECT_EQ(2, callback.GetResult(rv)); |
4045 } | 4036 } |
4046 | 4037 |
4047 // Test load timing in the case of two HTTPS (non-SPDY) requests through a SPDY | 4038 // Test load timing in the case of two HTTPS (non-SPDY) requests through a SPDY |
4048 // HTTPS Proxy to the same server. | 4039 // HTTPS Proxy to the same server. |
4049 TEST_P(HttpNetworkTransactionTest, | 4040 TEST_P(HttpNetworkTransactionTest, |
4050 HttpsProxySpdyConnectHttpsLoadTimingTwoRequestsSameServer) { | 4041 HttpsProxySpdyConnectHttpsLoadTimingTwoRequestsSameServer) { |
4051 // Configure against https proxy server "proxy:70". | 4042 // Configure against https proxy server "proxy:70". |
4052 session_deps_.proxy_service.reset(ProxyService::CreateFixed( | 4043 session_deps_.proxy_service = ProxyService::CreateFixed("https://proxy:70"); |
4053 "https://proxy:70")); | |
4054 BoundTestNetLog log; | 4044 BoundTestNetLog log; |
4055 session_deps_.net_log = log.bound().net_log(); | 4045 session_deps_.net_log = log.bound().net_log(); |
4056 scoped_refptr<HttpNetworkSession> session( | 4046 scoped_refptr<HttpNetworkSession> session( |
4057 SpdySessionDependencies::SpdyCreateSession(&session_deps_)); | 4047 SpdySessionDependencies::SpdyCreateSession(&session_deps_)); |
4058 | 4048 |
4059 HttpRequestInfo request1; | 4049 HttpRequestInfo request1; |
4060 request1.method = "GET"; | 4050 request1.method = "GET"; |
4061 request1.url = GURL("https://www.example.org/"); | 4051 request1.url = GURL("https://www.example.org/"); |
4062 request1.load_flags = 0; | 4052 request1.load_flags = 0; |
4063 | 4053 |
(...skipping 102 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
4166 // The requests should have the same ID. | 4156 // The requests should have the same ID. |
4167 EXPECT_EQ(load_timing_info.socket_log_id, load_timing_info2.socket_log_id); | 4157 EXPECT_EQ(load_timing_info.socket_log_id, load_timing_info2.socket_log_id); |
4168 | 4158 |
4169 EXPECT_EQ(2, trans2->Read(buf.get(), 256, callback.callback())); | 4159 EXPECT_EQ(2, trans2->Read(buf.get(), 256, callback.callback())); |
4170 } | 4160 } |
4171 | 4161 |
4172 // Test load timing in the case of of two HTTP requests through a SPDY HTTPS | 4162 // Test load timing in the case of of two HTTP requests through a SPDY HTTPS |
4173 // Proxy to different servers. | 4163 // Proxy to different servers. |
4174 TEST_P(HttpNetworkTransactionTest, HttpsProxySpdyLoadTimingTwoHttpRequests) { | 4164 TEST_P(HttpNetworkTransactionTest, HttpsProxySpdyLoadTimingTwoHttpRequests) { |
4175 // Configure against https proxy server "proxy:70". | 4165 // Configure against https proxy server "proxy:70". |
4176 session_deps_.proxy_service.reset(ProxyService::CreateFixed( | 4166 session_deps_.proxy_service = ProxyService::CreateFixed("https://proxy:70"); |
4177 "https://proxy:70")); | |
4178 BoundTestNetLog log; | 4167 BoundTestNetLog log; |
4179 session_deps_.net_log = log.bound().net_log(); | 4168 session_deps_.net_log = log.bound().net_log(); |
4180 scoped_refptr<HttpNetworkSession> session( | 4169 scoped_refptr<HttpNetworkSession> session( |
4181 SpdySessionDependencies::SpdyCreateSession(&session_deps_)); | 4170 SpdySessionDependencies::SpdyCreateSession(&session_deps_)); |
4182 | 4171 |
4183 HttpRequestInfo request1; | 4172 HttpRequestInfo request1; |
4184 request1.method = "GET"; | 4173 request1.method = "GET"; |
4185 request1.url = GURL("http://www.example.org/"); | 4174 request1.url = GURL("http://www.example.org/"); |
4186 request1.load_flags = 0; | 4175 request1.load_flags = 0; |
4187 | 4176 |
(...skipping 85 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
4273 | 4262 |
4274 // Test the challenge-response-retry sequence through an HTTPS Proxy | 4263 // Test the challenge-response-retry sequence through an HTTPS Proxy |
4275 TEST_P(HttpNetworkTransactionTest, HttpsProxyAuthRetry) { | 4264 TEST_P(HttpNetworkTransactionTest, HttpsProxyAuthRetry) { |
4276 HttpRequestInfo request; | 4265 HttpRequestInfo request; |
4277 request.method = "GET"; | 4266 request.method = "GET"; |
4278 request.url = GURL("http://www.example.org/"); | 4267 request.url = GURL("http://www.example.org/"); |
4279 // when the no authentication data flag is set. | 4268 // when the no authentication data flag is set. |
4280 request.load_flags = LOAD_DO_NOT_SEND_AUTH_DATA; | 4269 request.load_flags = LOAD_DO_NOT_SEND_AUTH_DATA; |
4281 | 4270 |
4282 // Configure against https proxy server "myproxy:70". | 4271 // Configure against https proxy server "myproxy:70". |
4283 session_deps_.proxy_service.reset( | 4272 session_deps_.proxy_service = ProxyService::CreateFixed("https://myproxy:70"); |
4284 ProxyService::CreateFixed("https://myproxy:70")); | |
4285 BoundTestNetLog log; | 4273 BoundTestNetLog log; |
4286 session_deps_.net_log = log.bound().net_log(); | 4274 session_deps_.net_log = log.bound().net_log(); |
4287 scoped_refptr<HttpNetworkSession> session(CreateSession(&session_deps_)); | 4275 scoped_refptr<HttpNetworkSession> session(CreateSession(&session_deps_)); |
4288 | 4276 |
4289 // Since we have proxy, should use full url | 4277 // Since we have proxy, should use full url |
4290 MockWrite data_writes1[] = { | 4278 MockWrite data_writes1[] = { |
4291 MockWrite( | 4279 MockWrite( |
4292 "GET http://www.example.org/ HTTP/1.1\r\n" | 4280 "GET http://www.example.org/ HTTP/1.1\r\n" |
4293 "Host: www.example.org\r\n" | 4281 "Host: www.example.org\r\n" |
4294 "Proxy-Connection: keep-alive\r\n\r\n"), | 4282 "Proxy-Connection: keep-alive\r\n\r\n"), |
(...skipping 78 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
4373 } | 4361 } |
4374 | 4362 |
4375 void HttpNetworkTransactionTest::ConnectStatusHelperWithExpectedStatus( | 4363 void HttpNetworkTransactionTest::ConnectStatusHelperWithExpectedStatus( |
4376 const MockRead& status, int expected_status) { | 4364 const MockRead& status, int expected_status) { |
4377 HttpRequestInfo request; | 4365 HttpRequestInfo request; |
4378 request.method = "GET"; | 4366 request.method = "GET"; |
4379 request.url = GURL("https://www.example.org/"); | 4367 request.url = GURL("https://www.example.org/"); |
4380 request.load_flags = 0; | 4368 request.load_flags = 0; |
4381 | 4369 |
4382 // Configure against proxy server "myproxy:70". | 4370 // Configure against proxy server "myproxy:70". |
4383 session_deps_.proxy_service.reset(ProxyService::CreateFixed("myproxy:70")); | 4371 session_deps_.proxy_service = ProxyService::CreateFixed("myproxy:70"); |
4384 scoped_refptr<HttpNetworkSession> session(CreateSession(&session_deps_)); | 4372 scoped_refptr<HttpNetworkSession> session(CreateSession(&session_deps_)); |
4385 | 4373 |
4386 // Since we have proxy, should try to establish tunnel. | 4374 // Since we have proxy, should try to establish tunnel. |
4387 MockWrite data_writes[] = { | 4375 MockWrite data_writes[] = { |
4388 MockWrite( | 4376 MockWrite( |
4389 "CONNECT www.example.org:443 HTTP/1.1\r\n" | 4377 "CONNECT www.example.org:443 HTTP/1.1\r\n" |
4390 "Host: www.example.org\r\n" | 4378 "Host: www.example.org\r\n" |
4391 "Proxy-Connection: keep-alive\r\n\r\n"), | 4379 "Proxy-Connection: keep-alive\r\n\r\n"), |
4392 }; | 4380 }; |
4393 | 4381 |
(...skipping 197 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
4591 // Test the flow when both the proxy server AND origin server require | 4579 // Test the flow when both the proxy server AND origin server require |
4592 // authentication. Again, this uses basic auth for both since that is | 4580 // authentication. Again, this uses basic auth for both since that is |
4593 // the simplest to mock. | 4581 // the simplest to mock. |
4594 TEST_P(HttpNetworkTransactionTest, BasicAuthProxyThenServer) { | 4582 TEST_P(HttpNetworkTransactionTest, BasicAuthProxyThenServer) { |
4595 HttpRequestInfo request; | 4583 HttpRequestInfo request; |
4596 request.method = "GET"; | 4584 request.method = "GET"; |
4597 request.url = GURL("http://www.example.org/"); | 4585 request.url = GURL("http://www.example.org/"); |
4598 request.load_flags = 0; | 4586 request.load_flags = 0; |
4599 | 4587 |
4600 // Configure against proxy server "myproxy:70". | 4588 // Configure against proxy server "myproxy:70". |
4601 session_deps_.proxy_service.reset(ProxyService::CreateFixed("myproxy:70")); | 4589 session_deps_.proxy_service = ProxyService::CreateFixed("myproxy:70"); |
4602 scoped_refptr<HttpNetworkSession> session(CreateSession(&session_deps_)); | 4590 scoped_refptr<HttpNetworkSession> session(CreateSession(&session_deps_)); |
4603 | 4591 |
4604 scoped_ptr<HttpTransaction> trans( | 4592 scoped_ptr<HttpTransaction> trans( |
4605 new HttpNetworkTransaction(DEFAULT_PRIORITY, session.get())); | 4593 new HttpNetworkTransaction(DEFAULT_PRIORITY, session.get())); |
4606 | 4594 |
4607 MockWrite data_writes1[] = { | 4595 MockWrite data_writes1[] = { |
4608 MockWrite( | 4596 MockWrite( |
4609 "GET http://www.example.org/ HTTP/1.1\r\n" | 4597 "GET http://www.example.org/ HTTP/1.1\r\n" |
4610 "Host: www.example.org\r\n" | 4598 "Host: www.example.org\r\n" |
4611 "Proxy-Connection: keep-alive\r\n\r\n"), | 4599 "Proxy-Connection: keep-alive\r\n\r\n"), |
(...skipping 482 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
5094 // establish tunnel. | 5082 // establish tunnel. |
5095 // http://code.google.com/p/chromium/issues/detail?id=3772 | 5083 // http://code.google.com/p/chromium/issues/detail?id=3772 |
5096 TEST_P(HttpNetworkTransactionTest, | 5084 TEST_P(HttpNetworkTransactionTest, |
5097 DontRecycleTransportSocketForSSLTunnel) { | 5085 DontRecycleTransportSocketForSSLTunnel) { |
5098 HttpRequestInfo request; | 5086 HttpRequestInfo request; |
5099 request.method = "GET"; | 5087 request.method = "GET"; |
5100 request.url = GURL("https://www.example.org/"); | 5088 request.url = GURL("https://www.example.org/"); |
5101 request.load_flags = 0; | 5089 request.load_flags = 0; |
5102 | 5090 |
5103 // Configure against proxy server "myproxy:70". | 5091 // Configure against proxy server "myproxy:70". |
5104 session_deps_.proxy_service.reset(ProxyService::CreateFixed("myproxy:70")); | 5092 session_deps_.proxy_service = ProxyService::CreateFixed("myproxy:70"); |
5105 | 5093 |
5106 scoped_refptr<HttpNetworkSession> session(CreateSession(&session_deps_)); | 5094 scoped_refptr<HttpNetworkSession> session(CreateSession(&session_deps_)); |
5107 | 5095 |
5108 scoped_ptr<HttpTransaction> trans( | 5096 scoped_ptr<HttpTransaction> trans( |
5109 new HttpNetworkTransaction(DEFAULT_PRIORITY, session.get())); | 5097 new HttpNetworkTransaction(DEFAULT_PRIORITY, session.get())); |
5110 | 5098 |
5111 // Since we have proxy, should try to establish tunnel. | 5099 // Since we have proxy, should try to establish tunnel. |
5112 MockWrite data_writes1[] = { | 5100 MockWrite data_writes1[] = { |
5113 MockWrite( | 5101 MockWrite( |
5114 "CONNECT www.example.org:443 HTTP/1.1\r\n" | 5102 "CONNECT www.example.org:443 HTTP/1.1\r\n" |
(...skipping 1295 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
6410 | 6398 |
6411 const HttpResponseInfo* response = trans->GetResponseInfo(); | 6399 const HttpResponseInfo* response = trans->GetResponseInfo(); |
6412 | 6400 |
6413 ASSERT_TRUE(response != NULL); | 6401 ASSERT_TRUE(response != NULL); |
6414 EXPECT_EQ(100, response->headers->GetContentLength()); | 6402 EXPECT_EQ(100, response->headers->GetContentLength()); |
6415 } | 6403 } |
6416 | 6404 |
6417 // Test HTTPS connections to a site with a bad certificate, going through a | 6405 // Test HTTPS connections to a site with a bad certificate, going through a |
6418 // proxy | 6406 // proxy |
6419 TEST_P(HttpNetworkTransactionTest, HTTPSBadCertificateViaProxy) { | 6407 TEST_P(HttpNetworkTransactionTest, HTTPSBadCertificateViaProxy) { |
6420 session_deps_.proxy_service.reset(ProxyService::CreateFixed("myproxy:70")); | 6408 session_deps_.proxy_service = ProxyService::CreateFixed("myproxy:70"); |
6421 | 6409 |
6422 HttpRequestInfo request; | 6410 HttpRequestInfo request; |
6423 request.method = "GET"; | 6411 request.method = "GET"; |
6424 request.url = GURL("https://www.example.org/"); | 6412 request.url = GURL("https://www.example.org/"); |
6425 request.load_flags = 0; | 6413 request.load_flags = 0; |
6426 | 6414 |
6427 MockWrite proxy_writes[] = { | 6415 MockWrite proxy_writes[] = { |
6428 MockWrite( | 6416 MockWrite( |
6429 "CONNECT www.example.org:443 HTTP/1.1\r\n" | 6417 "CONNECT www.example.org:443 HTTP/1.1\r\n" |
6430 "Host: www.example.org\r\n" | 6418 "Host: www.example.org\r\n" |
(...skipping 61 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
6492 const HttpResponseInfo* response = trans->GetResponseInfo(); | 6480 const HttpResponseInfo* response = trans->GetResponseInfo(); |
6493 | 6481 |
6494 ASSERT_TRUE(response != NULL); | 6482 ASSERT_TRUE(response != NULL); |
6495 EXPECT_EQ(100, response->headers->GetContentLength()); | 6483 EXPECT_EQ(100, response->headers->GetContentLength()); |
6496 } | 6484 } |
6497 } | 6485 } |
6498 | 6486 |
6499 | 6487 |
6500 // Test HTTPS connections to a site, going through an HTTPS proxy | 6488 // Test HTTPS connections to a site, going through an HTTPS proxy |
6501 TEST_P(HttpNetworkTransactionTest, HTTPSViaHttpsProxy) { | 6489 TEST_P(HttpNetworkTransactionTest, HTTPSViaHttpsProxy) { |
6502 session_deps_.proxy_service.reset( | 6490 session_deps_.proxy_service = |
6503 ProxyService::CreateFixedFromPacResult("HTTPS proxy:70")); | 6491 ProxyService::CreateFixedFromPacResult("HTTPS proxy:70"); |
6504 TestNetLog net_log; | 6492 TestNetLog net_log; |
6505 session_deps_.net_log = &net_log; | 6493 session_deps_.net_log = &net_log; |
6506 | 6494 |
6507 HttpRequestInfo request; | 6495 HttpRequestInfo request; |
6508 request.method = "GET"; | 6496 request.method = "GET"; |
6509 request.url = GURL("https://www.example.org/"); | 6497 request.url = GURL("https://www.example.org/"); |
6510 request.load_flags = 0; | 6498 request.load_flags = 0; |
6511 | 6499 |
6512 MockWrite data_writes[] = { | 6500 MockWrite data_writes[] = { |
6513 MockWrite( | 6501 MockWrite( |
(...skipping 44 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
6558 EXPECT_TRUE(HttpVersion(1, 1) == response->headers->GetHttpVersion()); | 6546 EXPECT_TRUE(HttpVersion(1, 1) == response->headers->GetHttpVersion()); |
6559 | 6547 |
6560 LoadTimingInfo load_timing_info; | 6548 LoadTimingInfo load_timing_info; |
6561 EXPECT_TRUE(trans->GetLoadTimingInfo(&load_timing_info)); | 6549 EXPECT_TRUE(trans->GetLoadTimingInfo(&load_timing_info)); |
6562 TestLoadTimingNotReusedWithPac(load_timing_info, | 6550 TestLoadTimingNotReusedWithPac(load_timing_info, |
6563 CONNECT_TIMING_HAS_SSL_TIMES); | 6551 CONNECT_TIMING_HAS_SSL_TIMES); |
6564 } | 6552 } |
6565 | 6553 |
6566 // Test an HTTPS Proxy's ability to redirect a CONNECT request | 6554 // Test an HTTPS Proxy's ability to redirect a CONNECT request |
6567 TEST_P(HttpNetworkTransactionTest, RedirectOfHttpsConnectViaHttpsProxy) { | 6555 TEST_P(HttpNetworkTransactionTest, RedirectOfHttpsConnectViaHttpsProxy) { |
6568 session_deps_.proxy_service.reset( | 6556 session_deps_.proxy_service = |
6569 ProxyService::CreateFixedFromPacResult("HTTPS proxy:70")); | 6557 ProxyService::CreateFixedFromPacResult("HTTPS proxy:70"); |
6570 TestNetLog net_log; | 6558 TestNetLog net_log; |
6571 session_deps_.net_log = &net_log; | 6559 session_deps_.net_log = &net_log; |
6572 | 6560 |
6573 HttpRequestInfo request; | 6561 HttpRequestInfo request; |
6574 request.method = "GET"; | 6562 request.method = "GET"; |
6575 request.url = GURL("https://www.example.org/"); | 6563 request.url = GURL("https://www.example.org/"); |
6576 request.load_flags = 0; | 6564 request.load_flags = 0; |
6577 | 6565 |
6578 MockWrite data_writes[] = { | 6566 MockWrite data_writes[] = { |
6579 MockWrite( | 6567 MockWrite( |
(...skipping 55 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
6635 load_timing_info.connect_timing, | 6623 load_timing_info.connect_timing, |
6636 CONNECT_TIMING_HAS_DNS_TIMES | CONNECT_TIMING_HAS_SSL_TIMES); | 6624 CONNECT_TIMING_HAS_DNS_TIMES | CONNECT_TIMING_HAS_SSL_TIMES); |
6637 | 6625 |
6638 EXPECT_TRUE(load_timing_info.send_start.is_null()); | 6626 EXPECT_TRUE(load_timing_info.send_start.is_null()); |
6639 EXPECT_TRUE(load_timing_info.send_end.is_null()); | 6627 EXPECT_TRUE(load_timing_info.send_end.is_null()); |
6640 EXPECT_TRUE(load_timing_info.receive_headers_end.is_null()); | 6628 EXPECT_TRUE(load_timing_info.receive_headers_end.is_null()); |
6641 } | 6629 } |
6642 | 6630 |
6643 // Test an HTTPS (SPDY) Proxy's ability to redirect a CONNECT request | 6631 // Test an HTTPS (SPDY) Proxy's ability to redirect a CONNECT request |
6644 TEST_P(HttpNetworkTransactionTest, RedirectOfHttpsConnectViaSpdyProxy) { | 6632 TEST_P(HttpNetworkTransactionTest, RedirectOfHttpsConnectViaSpdyProxy) { |
6645 session_deps_.proxy_service.reset( | 6633 session_deps_.proxy_service = ProxyService::CreateFixed("https://proxy:70"); |
6646 ProxyService::CreateFixed("https://proxy:70")); | |
6647 | 6634 |
6648 HttpRequestInfo request; | 6635 HttpRequestInfo request; |
6649 request.method = "GET"; | 6636 request.method = "GET"; |
6650 request.url = GURL("https://www.example.org/"); | 6637 request.url = GURL("https://www.example.org/"); |
6651 request.load_flags = 0; | 6638 request.load_flags = 0; |
6652 | 6639 |
6653 scoped_ptr<SpdyFrame> conn(spdy_util_.ConstructSpdyConnect( | 6640 scoped_ptr<SpdyFrame> conn(spdy_util_.ConstructSpdyConnect( |
6654 NULL, 0, 1, LOWEST, HostPortPair("www.example.org", 443))); | 6641 NULL, 0, 1, LOWEST, HostPortPair("www.example.org", 443))); |
6655 scoped_ptr<SpdyFrame> goaway( | 6642 scoped_ptr<SpdyFrame> goaway( |
6656 spdy_util_.ConstructSpdyRstStream(1, RST_STREAM_CANCEL)); | 6643 spdy_util_.ConstructSpdyRstStream(1, RST_STREAM_CANCEL)); |
(...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
6695 | 6682 |
6696 EXPECT_EQ(302, response->headers->response_code()); | 6683 EXPECT_EQ(302, response->headers->response_code()); |
6697 std::string url; | 6684 std::string url; |
6698 EXPECT_TRUE(response->headers->IsRedirect(&url)); | 6685 EXPECT_TRUE(response->headers->IsRedirect(&url)); |
6699 EXPECT_EQ("http://login.example.com/", url); | 6686 EXPECT_EQ("http://login.example.com/", url); |
6700 } | 6687 } |
6701 | 6688 |
6702 // Test that an HTTPS proxy's response to a CONNECT request is filtered. | 6689 // Test that an HTTPS proxy's response to a CONNECT request is filtered. |
6703 TEST_P(HttpNetworkTransactionTest, | 6690 TEST_P(HttpNetworkTransactionTest, |
6704 ErrorResponseToHttpsConnectViaHttpsProxy) { | 6691 ErrorResponseToHttpsConnectViaHttpsProxy) { |
6705 session_deps_.proxy_service.reset( | 6692 session_deps_.proxy_service = ProxyService::CreateFixed("https://proxy:70"); |
6706 ProxyService::CreateFixed("https://proxy:70")); | |
6707 | 6693 |
6708 HttpRequestInfo request; | 6694 HttpRequestInfo request; |
6709 request.method = "GET"; | 6695 request.method = "GET"; |
6710 request.url = GURL("https://www.example.org/"); | 6696 request.url = GURL("https://www.example.org/"); |
6711 request.load_flags = 0; | 6697 request.load_flags = 0; |
6712 | 6698 |
6713 MockWrite data_writes[] = { | 6699 MockWrite data_writes[] = { |
6714 MockWrite( | 6700 MockWrite( |
6715 "CONNECT www.example.org:443 HTTP/1.1\r\n" | 6701 "CONNECT www.example.org:443 HTTP/1.1\r\n" |
6716 "Host: www.example.org\r\n" | 6702 "Host: www.example.org\r\n" |
(...skipping 25 matching lines...) Expand all Loading... |
6742 | 6728 |
6743 rv = callback.WaitForResult(); | 6729 rv = callback.WaitForResult(); |
6744 EXPECT_EQ(ERR_TUNNEL_CONNECTION_FAILED, rv); | 6730 EXPECT_EQ(ERR_TUNNEL_CONNECTION_FAILED, rv); |
6745 | 6731 |
6746 // TODO(ttuttle): Anything else to check here? | 6732 // TODO(ttuttle): Anything else to check here? |
6747 } | 6733 } |
6748 | 6734 |
6749 // Test that a SPDY proxy's response to a CONNECT request is filtered. | 6735 // Test that a SPDY proxy's response to a CONNECT request is filtered. |
6750 TEST_P(HttpNetworkTransactionTest, | 6736 TEST_P(HttpNetworkTransactionTest, |
6751 ErrorResponseToHttpsConnectViaSpdyProxy) { | 6737 ErrorResponseToHttpsConnectViaSpdyProxy) { |
6752 session_deps_.proxy_service.reset( | 6738 session_deps_.proxy_service = ProxyService::CreateFixed("https://proxy:70"); |
6753 ProxyService::CreateFixed("https://proxy:70")); | |
6754 | 6739 |
6755 HttpRequestInfo request; | 6740 HttpRequestInfo request; |
6756 request.method = "GET"; | 6741 request.method = "GET"; |
6757 request.url = GURL("https://www.example.org/"); | 6742 request.url = GURL("https://www.example.org/"); |
6758 request.load_flags = 0; | 6743 request.load_flags = 0; |
6759 | 6744 |
6760 scoped_ptr<SpdyFrame> conn(spdy_util_.ConstructSpdyConnect( | 6745 scoped_ptr<SpdyFrame> conn(spdy_util_.ConstructSpdyConnect( |
6761 NULL, 0, 1, LOWEST, HostPortPair("www.example.org", 443))); | 6746 NULL, 0, 1, LOWEST, HostPortPair("www.example.org", 443))); |
6762 scoped_ptr<SpdyFrame> rst( | 6747 scoped_ptr<SpdyFrame> rst( |
6763 spdy_util_.ConstructSpdyRstStream(1, RST_STREAM_CANCEL)); | 6748 spdy_util_.ConstructSpdyRstStream(1, RST_STREAM_CANCEL)); |
(...skipping 43 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
6807 // Test the request-challenge-retry sequence for basic auth, through | 6792 // Test the request-challenge-retry sequence for basic auth, through |
6808 // a SPDY proxy over a single SPDY session. | 6793 // a SPDY proxy over a single SPDY session. |
6809 TEST_P(HttpNetworkTransactionTest, BasicAuthSpdyProxy) { | 6794 TEST_P(HttpNetworkTransactionTest, BasicAuthSpdyProxy) { |
6810 HttpRequestInfo request; | 6795 HttpRequestInfo request; |
6811 request.method = "GET"; | 6796 request.method = "GET"; |
6812 request.url = GURL("https://www.example.org/"); | 6797 request.url = GURL("https://www.example.org/"); |
6813 // when the no authentication data flag is set. | 6798 // when the no authentication data flag is set. |
6814 request.load_flags = LOAD_DO_NOT_SEND_AUTH_DATA; | 6799 request.load_flags = LOAD_DO_NOT_SEND_AUTH_DATA; |
6815 | 6800 |
6816 // Configure against https proxy server "myproxy:70". | 6801 // Configure against https proxy server "myproxy:70". |
6817 session_deps_.proxy_service.reset( | 6802 session_deps_.proxy_service = |
6818 ProxyService::CreateFixedFromPacResult("HTTPS myproxy:70")); | 6803 ProxyService::CreateFixedFromPacResult("HTTPS myproxy:70"); |
6819 BoundTestNetLog log; | 6804 BoundTestNetLog log; |
6820 session_deps_.net_log = log.bound().net_log(); | 6805 session_deps_.net_log = log.bound().net_log(); |
6821 scoped_refptr<HttpNetworkSession> session(CreateSession(&session_deps_)); | 6806 scoped_refptr<HttpNetworkSession> session(CreateSession(&session_deps_)); |
6822 | 6807 |
6823 // Since we have proxy, should try to establish tunnel. | 6808 // Since we have proxy, should try to establish tunnel. |
6824 scoped_ptr<SpdyFrame> req(spdy_util_.ConstructSpdyConnect( | 6809 scoped_ptr<SpdyFrame> req(spdy_util_.ConstructSpdyConnect( |
6825 NULL, 0, 1, LOWEST, HostPortPair("www.example.org", 443))); | 6810 NULL, 0, 1, LOWEST, HostPortPair("www.example.org", 443))); |
6826 scoped_ptr<SpdyFrame> rst( | 6811 scoped_ptr<SpdyFrame> rst( |
6827 spdy_util_.ConstructSpdyRstStream(1, RST_STREAM_CANCEL)); | 6812 spdy_util_.ConstructSpdyRstStream(1, RST_STREAM_CANCEL)); |
6828 | 6813 |
(...skipping 119 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
6948 TEST_P(HttpNetworkTransactionTest, CrossOriginProxyPush) { | 6933 TEST_P(HttpNetworkTransactionTest, CrossOriginProxyPush) { |
6949 HttpRequestInfo request; | 6934 HttpRequestInfo request; |
6950 HttpRequestInfo push_request; | 6935 HttpRequestInfo push_request; |
6951 | 6936 |
6952 request.method = "GET"; | 6937 request.method = "GET"; |
6953 request.url = GURL("http://www.example.org/"); | 6938 request.url = GURL("http://www.example.org/"); |
6954 push_request.method = "GET"; | 6939 push_request.method = "GET"; |
6955 push_request.url = GURL("http://www.another-origin.com/foo.dat"); | 6940 push_request.url = GURL("http://www.another-origin.com/foo.dat"); |
6956 | 6941 |
6957 // Configure against https proxy server "myproxy:70". | 6942 // Configure against https proxy server "myproxy:70". |
6958 session_deps_.proxy_service.reset( | 6943 session_deps_.proxy_service = |
6959 ProxyService::CreateFixedFromPacResult("HTTPS myproxy:70")); | 6944 ProxyService::CreateFixedFromPacResult("HTTPS myproxy:70"); |
6960 BoundTestNetLog log; | 6945 BoundTestNetLog log; |
6961 session_deps_.net_log = log.bound().net_log(); | 6946 session_deps_.net_log = log.bound().net_log(); |
6962 | 6947 |
6963 // Enable cross-origin push. | 6948 // Enable cross-origin push. |
6964 session_deps_.trusted_spdy_proxy = "myproxy:70"; | 6949 session_deps_.trusted_spdy_proxy = "myproxy:70"; |
6965 | 6950 |
6966 scoped_refptr<HttpNetworkSession> session(CreateSession(&session_deps_)); | 6951 scoped_refptr<HttpNetworkSession> session(CreateSession(&session_deps_)); |
6967 | 6952 |
6968 scoped_ptr<SpdyFrame> stream1_syn( | 6953 scoped_ptr<SpdyFrame> stream1_syn( |
6969 spdy_util_.ConstructSpdyGet(NULL, 0, false, 1, LOWEST, false)); | 6954 spdy_util_.ConstructSpdyGet(NULL, 0, false, 1, LOWEST, false)); |
(...skipping 92 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
7062 } | 7047 } |
7063 | 7048 |
7064 // Test that an explicitly trusted SPDY proxy cannot push HTTPS content. | 7049 // Test that an explicitly trusted SPDY proxy cannot push HTTPS content. |
7065 TEST_P(HttpNetworkTransactionTest, CrossOriginProxyPushCorrectness) { | 7050 TEST_P(HttpNetworkTransactionTest, CrossOriginProxyPushCorrectness) { |
7066 HttpRequestInfo request; | 7051 HttpRequestInfo request; |
7067 | 7052 |
7068 request.method = "GET"; | 7053 request.method = "GET"; |
7069 request.url = GURL("http://www.example.org/"); | 7054 request.url = GURL("http://www.example.org/"); |
7070 | 7055 |
7071 // Configure against https proxy server "myproxy:70". | 7056 // Configure against https proxy server "myproxy:70". |
7072 session_deps_.proxy_service.reset( | 7057 session_deps_.proxy_service = ProxyService::CreateFixed("https://myproxy:70"); |
7073 ProxyService::CreateFixed("https://myproxy:70")); | |
7074 BoundTestNetLog log; | 7058 BoundTestNetLog log; |
7075 session_deps_.net_log = log.bound().net_log(); | 7059 session_deps_.net_log = log.bound().net_log(); |
7076 | 7060 |
7077 // Enable cross-origin push. | 7061 // Enable cross-origin push. |
7078 session_deps_.trusted_spdy_proxy = "myproxy:70"; | 7062 session_deps_.trusted_spdy_proxy = "myproxy:70"; |
7079 | 7063 |
7080 scoped_refptr<HttpNetworkSession> session(CreateSession(&session_deps_)); | 7064 scoped_refptr<HttpNetworkSession> session(CreateSession(&session_deps_)); |
7081 | 7065 |
7082 scoped_ptr<SpdyFrame> stream1_syn( | 7066 scoped_ptr<SpdyFrame> stream1_syn( |
7083 spdy_util_.ConstructSpdyGet(NULL, 0, false, 1, LOWEST, false)); | 7067 spdy_util_.ConstructSpdyGet(NULL, 0, false, 1, LOWEST, false)); |
(...skipping 54 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
7138 EXPECT_EQ(OK, rv); | 7122 EXPECT_EQ(OK, rv); |
7139 EXPECT_EQ("hello!", response_data); | 7123 EXPECT_EQ("hello!", response_data); |
7140 | 7124 |
7141 trans.reset(); | 7125 trans.reset(); |
7142 session->CloseAllConnections(); | 7126 session->CloseAllConnections(); |
7143 } | 7127 } |
7144 | 7128 |
7145 // Test HTTPS connections to a site with a bad certificate, going through an | 7129 // Test HTTPS connections to a site with a bad certificate, going through an |
7146 // HTTPS proxy | 7130 // HTTPS proxy |
7147 TEST_P(HttpNetworkTransactionTest, HTTPSBadCertificateViaHttpsProxy) { | 7131 TEST_P(HttpNetworkTransactionTest, HTTPSBadCertificateViaHttpsProxy) { |
7148 session_deps_.proxy_service.reset(ProxyService::CreateFixed( | 7132 session_deps_.proxy_service = ProxyService::CreateFixed("https://proxy:70"); |
7149 "https://proxy:70")); | |
7150 | 7133 |
7151 HttpRequestInfo request; | 7134 HttpRequestInfo request; |
7152 request.method = "GET"; | 7135 request.method = "GET"; |
7153 request.url = GURL("https://www.example.org/"); | 7136 request.url = GURL("https://www.example.org/"); |
7154 request.load_flags = 0; | 7137 request.load_flags = 0; |
7155 | 7138 |
7156 // Attempt to fetch the URL from a server with a bad cert | 7139 // Attempt to fetch the URL from a server with a bad cert |
7157 MockWrite bad_cert_writes[] = { | 7140 MockWrite bad_cert_writes[] = { |
7158 MockWrite( | 7141 MockWrite( |
7159 "CONNECT www.example.org:443 HTTP/1.1\r\n" | 7142 "CONNECT www.example.org:443 HTTP/1.1\r\n" |
(...skipping 108 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
7268 EXPECT_EQ(OK, rv); | 7251 EXPECT_EQ(OK, rv); |
7269 } | 7252 } |
7270 | 7253 |
7271 TEST_P(HttpNetworkTransactionTest, BuildRequest_UserAgentOverTunnel) { | 7254 TEST_P(HttpNetworkTransactionTest, BuildRequest_UserAgentOverTunnel) { |
7272 HttpRequestInfo request; | 7255 HttpRequestInfo request; |
7273 request.method = "GET"; | 7256 request.method = "GET"; |
7274 request.url = GURL("https://www.example.org/"); | 7257 request.url = GURL("https://www.example.org/"); |
7275 request.extra_headers.SetHeader(HttpRequestHeaders::kUserAgent, | 7258 request.extra_headers.SetHeader(HttpRequestHeaders::kUserAgent, |
7276 "Chromium Ultra Awesome X Edition"); | 7259 "Chromium Ultra Awesome X Edition"); |
7277 | 7260 |
7278 session_deps_.proxy_service.reset(ProxyService::CreateFixed("myproxy:70")); | 7261 session_deps_.proxy_service = ProxyService::CreateFixed("myproxy:70"); |
7279 scoped_refptr<HttpNetworkSession> session(CreateSession(&session_deps_)); | 7262 scoped_refptr<HttpNetworkSession> session(CreateSession(&session_deps_)); |
7280 scoped_ptr<HttpTransaction> trans( | 7263 scoped_ptr<HttpTransaction> trans( |
7281 new HttpNetworkTransaction(DEFAULT_PRIORITY, session.get())); | 7264 new HttpNetworkTransaction(DEFAULT_PRIORITY, session.get())); |
7282 | 7265 |
7283 MockWrite data_writes[] = { | 7266 MockWrite data_writes[] = { |
7284 MockWrite( | 7267 MockWrite( |
7285 "CONNECT www.example.org:443 HTTP/1.1\r\n" | 7268 "CONNECT www.example.org:443 HTTP/1.1\r\n" |
7286 "Host: www.example.org\r\n" | 7269 "Host: www.example.org\r\n" |
7287 "Proxy-Connection: keep-alive\r\n" | 7270 "Proxy-Connection: keep-alive\r\n" |
7288 "User-Agent: Chromium Ultra Awesome X Edition\r\n\r\n"), | 7271 "User-Agent: Chromium Ultra Awesome X Edition\r\n\r\n"), |
(...skipping 333 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
7622 rv = callback.WaitForResult(); | 7605 rv = callback.WaitForResult(); |
7623 EXPECT_EQ(OK, rv); | 7606 EXPECT_EQ(OK, rv); |
7624 } | 7607 } |
7625 | 7608 |
7626 TEST_P(HttpNetworkTransactionTest, SOCKS4_HTTP_GET) { | 7609 TEST_P(HttpNetworkTransactionTest, SOCKS4_HTTP_GET) { |
7627 HttpRequestInfo request; | 7610 HttpRequestInfo request; |
7628 request.method = "GET"; | 7611 request.method = "GET"; |
7629 request.url = GURL("http://www.example.org/"); | 7612 request.url = GURL("http://www.example.org/"); |
7630 request.load_flags = 0; | 7613 request.load_flags = 0; |
7631 | 7614 |
7632 session_deps_.proxy_service.reset( | 7615 session_deps_.proxy_service = |
7633 ProxyService::CreateFixedFromPacResult("SOCKS myproxy:1080")); | 7616 ProxyService::CreateFixedFromPacResult("SOCKS myproxy:1080"); |
7634 TestNetLog net_log; | 7617 TestNetLog net_log; |
7635 session_deps_.net_log = &net_log; | 7618 session_deps_.net_log = &net_log; |
7636 | 7619 |
7637 scoped_refptr<HttpNetworkSession> session(CreateSession(&session_deps_)); | 7620 scoped_refptr<HttpNetworkSession> session(CreateSession(&session_deps_)); |
7638 scoped_ptr<HttpTransaction> trans( | 7621 scoped_ptr<HttpTransaction> trans( |
7639 new HttpNetworkTransaction(DEFAULT_PRIORITY, session.get())); | 7622 new HttpNetworkTransaction(DEFAULT_PRIORITY, session.get())); |
7640 | 7623 |
7641 char write_buffer[] = { 0x04, 0x01, 0x00, 0x50, 127, 0, 0, 1, 0 }; | 7624 char write_buffer[] = { 0x04, 0x01, 0x00, 0x50, 127, 0, 0, 1, 0 }; |
7642 char read_buffer[] = { 0x00, 0x5A, 0x00, 0x00, 0, 0, 0, 0 }; | 7625 char read_buffer[] = { 0x00, 0x5A, 0x00, 0x00, 0, 0, 0, 0 }; |
7643 | 7626 |
(...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
7681 EXPECT_EQ(OK, rv); | 7664 EXPECT_EQ(OK, rv); |
7682 EXPECT_EQ("Payload", response_text); | 7665 EXPECT_EQ("Payload", response_text); |
7683 } | 7666 } |
7684 | 7667 |
7685 TEST_P(HttpNetworkTransactionTest, SOCKS4_SSL_GET) { | 7668 TEST_P(HttpNetworkTransactionTest, SOCKS4_SSL_GET) { |
7686 HttpRequestInfo request; | 7669 HttpRequestInfo request; |
7687 request.method = "GET"; | 7670 request.method = "GET"; |
7688 request.url = GURL("https://www.example.org/"); | 7671 request.url = GURL("https://www.example.org/"); |
7689 request.load_flags = 0; | 7672 request.load_flags = 0; |
7690 | 7673 |
7691 session_deps_.proxy_service.reset( | 7674 session_deps_.proxy_service = |
7692 ProxyService::CreateFixedFromPacResult("SOCKS myproxy:1080")); | 7675 ProxyService::CreateFixedFromPacResult("SOCKS myproxy:1080"); |
7693 TestNetLog net_log; | 7676 TestNetLog net_log; |
7694 session_deps_.net_log = &net_log; | 7677 session_deps_.net_log = &net_log; |
7695 | 7678 |
7696 scoped_refptr<HttpNetworkSession> session(CreateSession(&session_deps_)); | 7679 scoped_refptr<HttpNetworkSession> session(CreateSession(&session_deps_)); |
7697 scoped_ptr<HttpTransaction> trans( | 7680 scoped_ptr<HttpTransaction> trans( |
7698 new HttpNetworkTransaction(DEFAULT_PRIORITY, session.get())); | 7681 new HttpNetworkTransaction(DEFAULT_PRIORITY, session.get())); |
7699 | 7682 |
7700 unsigned char write_buffer[] = { 0x04, 0x01, 0x01, 0xBB, 127, 0, 0, 1, 0 }; | 7683 unsigned char write_buffer[] = { 0x04, 0x01, 0x01, 0xBB, 127, 0, 0, 1, 0 }; |
7701 unsigned char read_buffer[] = { 0x00, 0x5A, 0x00, 0x00, 0, 0, 0, 0 }; | 7684 unsigned char read_buffer[] = { 0x00, 0x5A, 0x00, 0x00, 0, 0, 0, 0 }; |
7702 | 7685 |
(...skipping 42 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
7745 EXPECT_EQ(OK, rv); | 7728 EXPECT_EQ(OK, rv); |
7746 EXPECT_EQ("Payload", response_text); | 7729 EXPECT_EQ("Payload", response_text); |
7747 } | 7730 } |
7748 | 7731 |
7749 TEST_P(HttpNetworkTransactionTest, SOCKS4_HTTP_GET_no_PAC) { | 7732 TEST_P(HttpNetworkTransactionTest, SOCKS4_HTTP_GET_no_PAC) { |
7750 HttpRequestInfo request; | 7733 HttpRequestInfo request; |
7751 request.method = "GET"; | 7734 request.method = "GET"; |
7752 request.url = GURL("http://www.example.org/"); | 7735 request.url = GURL("http://www.example.org/"); |
7753 request.load_flags = 0; | 7736 request.load_flags = 0; |
7754 | 7737 |
7755 session_deps_.proxy_service.reset( | 7738 session_deps_.proxy_service = |
7756 ProxyService::CreateFixed("socks4://myproxy:1080")); | 7739 ProxyService::CreateFixed("socks4://myproxy:1080"); |
7757 TestNetLog net_log; | 7740 TestNetLog net_log; |
7758 session_deps_.net_log = &net_log; | 7741 session_deps_.net_log = &net_log; |
7759 | 7742 |
7760 scoped_refptr<HttpNetworkSession> session(CreateSession(&session_deps_)); | 7743 scoped_refptr<HttpNetworkSession> session(CreateSession(&session_deps_)); |
7761 scoped_ptr<HttpTransaction> trans( | 7744 scoped_ptr<HttpTransaction> trans( |
7762 new HttpNetworkTransaction(DEFAULT_PRIORITY, session.get())); | 7745 new HttpNetworkTransaction(DEFAULT_PRIORITY, session.get())); |
7763 | 7746 |
7764 char write_buffer[] = { 0x04, 0x01, 0x00, 0x50, 127, 0, 0, 1, 0 }; | 7747 char write_buffer[] = { 0x04, 0x01, 0x00, 0x50, 127, 0, 0, 1, 0 }; |
7765 char read_buffer[] = { 0x00, 0x5A, 0x00, 0x00, 0, 0, 0, 0 }; | 7748 char read_buffer[] = { 0x00, 0x5A, 0x00, 0x00, 0, 0, 0, 0 }; |
7766 | 7749 |
(...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
7804 EXPECT_EQ(OK, rv); | 7787 EXPECT_EQ(OK, rv); |
7805 EXPECT_EQ("Payload", response_text); | 7788 EXPECT_EQ("Payload", response_text); |
7806 } | 7789 } |
7807 | 7790 |
7808 TEST_P(HttpNetworkTransactionTest, SOCKS5_HTTP_GET) { | 7791 TEST_P(HttpNetworkTransactionTest, SOCKS5_HTTP_GET) { |
7809 HttpRequestInfo request; | 7792 HttpRequestInfo request; |
7810 request.method = "GET"; | 7793 request.method = "GET"; |
7811 request.url = GURL("http://www.example.org/"); | 7794 request.url = GURL("http://www.example.org/"); |
7812 request.load_flags = 0; | 7795 request.load_flags = 0; |
7813 | 7796 |
7814 session_deps_.proxy_service.reset( | 7797 session_deps_.proxy_service = |
7815 ProxyService::CreateFixedFromPacResult("SOCKS5 myproxy:1080")); | 7798 ProxyService::CreateFixedFromPacResult("SOCKS5 myproxy:1080"); |
7816 TestNetLog net_log; | 7799 TestNetLog net_log; |
7817 session_deps_.net_log = &net_log; | 7800 session_deps_.net_log = &net_log; |
7818 | 7801 |
7819 scoped_refptr<HttpNetworkSession> session(CreateSession(&session_deps_)); | 7802 scoped_refptr<HttpNetworkSession> session(CreateSession(&session_deps_)); |
7820 scoped_ptr<HttpTransaction> trans( | 7803 scoped_ptr<HttpTransaction> trans( |
7821 new HttpNetworkTransaction(DEFAULT_PRIORITY, session.get())); | 7804 new HttpNetworkTransaction(DEFAULT_PRIORITY, session.get())); |
7822 | 7805 |
7823 const char kSOCKS5GreetRequest[] = { 0x05, 0x01, 0x00 }; | 7806 const char kSOCKS5GreetRequest[] = { 0x05, 0x01, 0x00 }; |
7824 const char kSOCKS5GreetResponse[] = { 0x05, 0x00 }; | 7807 const char kSOCKS5GreetResponse[] = { 0x05, 0x00 }; |
7825 const char kSOCKS5OkRequest[] = { | 7808 const char kSOCKS5OkRequest[] = { |
(...skipping 50 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
7876 EXPECT_EQ(OK, rv); | 7859 EXPECT_EQ(OK, rv); |
7877 EXPECT_EQ("Payload", response_text); | 7860 EXPECT_EQ("Payload", response_text); |
7878 } | 7861 } |
7879 | 7862 |
7880 TEST_P(HttpNetworkTransactionTest, SOCKS5_SSL_GET) { | 7863 TEST_P(HttpNetworkTransactionTest, SOCKS5_SSL_GET) { |
7881 HttpRequestInfo request; | 7864 HttpRequestInfo request; |
7882 request.method = "GET"; | 7865 request.method = "GET"; |
7883 request.url = GURL("https://www.example.org/"); | 7866 request.url = GURL("https://www.example.org/"); |
7884 request.load_flags = 0; | 7867 request.load_flags = 0; |
7885 | 7868 |
7886 session_deps_.proxy_service.reset( | 7869 session_deps_.proxy_service = |
7887 ProxyService::CreateFixedFromPacResult("SOCKS5 myproxy:1080")); | 7870 ProxyService::CreateFixedFromPacResult("SOCKS5 myproxy:1080"); |
7888 TestNetLog net_log; | 7871 TestNetLog net_log; |
7889 session_deps_.net_log = &net_log; | 7872 session_deps_.net_log = &net_log; |
7890 | 7873 |
7891 scoped_refptr<HttpNetworkSession> session(CreateSession(&session_deps_)); | 7874 scoped_refptr<HttpNetworkSession> session(CreateSession(&session_deps_)); |
7892 scoped_ptr<HttpTransaction> trans( | 7875 scoped_ptr<HttpTransaction> trans( |
7893 new HttpNetworkTransaction(DEFAULT_PRIORITY, session.get())); | 7876 new HttpNetworkTransaction(DEFAULT_PRIORITY, session.get())); |
7894 | 7877 |
7895 const char kSOCKS5GreetRequest[] = { 0x05, 0x01, 0x00 }; | 7878 const char kSOCKS5GreetRequest[] = { 0x05, 0x01, 0x00 }; |
7896 const char kSOCKS5GreetResponse[] = { 0x05, 0x00 }; | 7879 const char kSOCKS5GreetResponse[] = { 0x05, 0x00 }; |
7897 const unsigned char kSOCKS5OkRequest[] = { | 7880 const unsigned char kSOCKS5OkRequest[] = { |
(...skipping 135 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
8033 "", // unused | 8016 "", // unused |
8034 "http://host.with.alternate/direct", | 8017 "http://host.with.alternate/direct", |
8035 "ssl/host.with.alternate:443", | 8018 "ssl/host.with.alternate:443", |
8036 true, | 8019 true, |
8037 }, | 8020 }, |
8038 }; | 8021 }; |
8039 | 8022 |
8040 session_deps_.use_alternative_services = true; | 8023 session_deps_.use_alternative_services = true; |
8041 | 8024 |
8042 for (size_t i = 0; i < arraysize(tests); ++i) { | 8025 for (size_t i = 0; i < arraysize(tests); ++i) { |
8043 session_deps_.proxy_service.reset( | 8026 session_deps_.proxy_service = |
8044 ProxyService::CreateFixed(tests[i].proxy_server)); | 8027 ProxyService::CreateFixed(tests[i].proxy_server); |
8045 scoped_refptr<HttpNetworkSession> session( | 8028 scoped_refptr<HttpNetworkSession> session( |
8046 SetupSessionForGroupNameTests(GetParam(), &session_deps_)); | 8029 SetupSessionForGroupNameTests(GetParam(), &session_deps_)); |
8047 | 8030 |
8048 HttpNetworkSessionPeer peer(session); | 8031 HttpNetworkSessionPeer peer(session); |
8049 CaptureGroupNameTransportSocketPool* transport_conn_pool = | 8032 CaptureGroupNameTransportSocketPool* transport_conn_pool = |
8050 new CaptureGroupNameTransportSocketPool(NULL, NULL); | 8033 new CaptureGroupNameTransportSocketPool(NULL, NULL); |
8051 CaptureGroupNameSSLSocketPool* ssl_conn_pool = | 8034 CaptureGroupNameSSLSocketPool* ssl_conn_pool = |
8052 new CaptureGroupNameSSLSocketPool(NULL, NULL); | 8035 new CaptureGroupNameSSLSocketPool(NULL, NULL); |
8053 scoped_ptr<MockClientSocketPoolManager> mock_pool_manager( | 8036 scoped_ptr<MockClientSocketPoolManager> mock_pool_manager( |
8054 new MockClientSocketPoolManager); | 8037 new MockClientSocketPoolManager); |
(...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
8095 "http_proxy", | 8078 "http_proxy", |
8096 "ftp://ftp.google.com/http_proxy_normal", | 8079 "ftp://ftp.google.com/http_proxy_normal", |
8097 "ftp/ftp.google.com:21", | 8080 "ftp/ftp.google.com:21", |
8098 false, | 8081 false, |
8099 }, | 8082 }, |
8100 }; | 8083 }; |
8101 | 8084 |
8102 session_deps_.use_alternative_services = true; | 8085 session_deps_.use_alternative_services = true; |
8103 | 8086 |
8104 for (size_t i = 0; i < arraysize(tests); ++i) { | 8087 for (size_t i = 0; i < arraysize(tests); ++i) { |
8105 session_deps_.proxy_service.reset( | 8088 session_deps_.proxy_service = |
8106 ProxyService::CreateFixed(tests[i].proxy_server)); | 8089 ProxyService::CreateFixed(tests[i].proxy_server); |
8107 scoped_refptr<HttpNetworkSession> session( | 8090 scoped_refptr<HttpNetworkSession> session( |
8108 SetupSessionForGroupNameTests(GetParam(), &session_deps_)); | 8091 SetupSessionForGroupNameTests(GetParam(), &session_deps_)); |
8109 | 8092 |
8110 HttpNetworkSessionPeer peer(session); | 8093 HttpNetworkSessionPeer peer(session); |
8111 | 8094 |
8112 HostPortPair proxy_host("http_proxy", 80); | 8095 HostPortPair proxy_host("http_proxy", 80); |
8113 CaptureGroupNameHttpProxySocketPool* http_proxy_pool = | 8096 CaptureGroupNameHttpProxySocketPool* http_proxy_pool = |
8114 new CaptureGroupNameHttpProxySocketPool(NULL, NULL); | 8097 new CaptureGroupNameHttpProxySocketPool(NULL, NULL); |
8115 CaptureGroupNameSSLSocketPool* ssl_conn_pool = | 8098 CaptureGroupNameSSLSocketPool* ssl_conn_pool = |
8116 new CaptureGroupNameSSLSocketPool(NULL, NULL); | 8099 new CaptureGroupNameSSLSocketPool(NULL, NULL); |
(...skipping 48 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
8165 "socks4://socks_proxy:1080", | 8148 "socks4://socks_proxy:1080", |
8166 "http://host.with.alternate/direct", | 8149 "http://host.with.alternate/direct", |
8167 "socks4/ssl/host.with.alternate:443", | 8150 "socks4/ssl/host.with.alternate:443", |
8168 true, | 8151 true, |
8169 }, | 8152 }, |
8170 }; | 8153 }; |
8171 | 8154 |
8172 session_deps_.use_alternative_services = true; | 8155 session_deps_.use_alternative_services = true; |
8173 | 8156 |
8174 for (size_t i = 0; i < arraysize(tests); ++i) { | 8157 for (size_t i = 0; i < arraysize(tests); ++i) { |
8175 session_deps_.proxy_service.reset( | 8158 session_deps_.proxy_service = |
8176 ProxyService::CreateFixed(tests[i].proxy_server)); | 8159 ProxyService::CreateFixed(tests[i].proxy_server); |
8177 scoped_refptr<HttpNetworkSession> session( | 8160 scoped_refptr<HttpNetworkSession> session( |
8178 SetupSessionForGroupNameTests(GetParam(), &session_deps_)); | 8161 SetupSessionForGroupNameTests(GetParam(), &session_deps_)); |
8179 | 8162 |
8180 HttpNetworkSessionPeer peer(session); | 8163 HttpNetworkSessionPeer peer(session); |
8181 | 8164 |
8182 HostPortPair proxy_host("socks_proxy", 1080); | 8165 HostPortPair proxy_host("socks_proxy", 1080); |
8183 CaptureGroupNameSOCKSSocketPool* socks_conn_pool = | 8166 CaptureGroupNameSOCKSSocketPool* socks_conn_pool = |
8184 new CaptureGroupNameSOCKSSocketPool(NULL, NULL); | 8167 new CaptureGroupNameSOCKSSocketPool(NULL, NULL); |
8185 CaptureGroupNameSSLSocketPool* ssl_conn_pool = | 8168 CaptureGroupNameSSLSocketPool* ssl_conn_pool = |
8186 new CaptureGroupNameSSLSocketPool(NULL, NULL); | 8169 new CaptureGroupNameSSLSocketPool(NULL, NULL); |
(...skipping 16 matching lines...) Expand all Loading... |
8203 EXPECT_EQ(tests[i].expected_group_name, | 8186 EXPECT_EQ(tests[i].expected_group_name, |
8204 socks_conn_pool->last_group_name_received()); | 8187 socks_conn_pool->last_group_name_received()); |
8205 } | 8188 } |
8206 } | 8189 } |
8207 | 8190 |
8208 TEST_P(HttpNetworkTransactionTest, ReconsiderProxyAfterFailedConnection) { | 8191 TEST_P(HttpNetworkTransactionTest, ReconsiderProxyAfterFailedConnection) { |
8209 HttpRequestInfo request; | 8192 HttpRequestInfo request; |
8210 request.method = "GET"; | 8193 request.method = "GET"; |
8211 request.url = GURL("http://www.example.org/"); | 8194 request.url = GURL("http://www.example.org/"); |
8212 | 8195 |
8213 session_deps_.proxy_service.reset( | 8196 session_deps_.proxy_service = |
8214 ProxyService::CreateFixed("myproxy:70;foobar:80")); | 8197 ProxyService::CreateFixed("myproxy:70;foobar:80"); |
8215 | 8198 |
8216 // This simulates failure resolving all hostnames; that means we will fail | 8199 // This simulates failure resolving all hostnames; that means we will fail |
8217 // connecting to both proxies (myproxy:70 and foobar:80). | 8200 // connecting to both proxies (myproxy:70 and foobar:80). |
8218 session_deps_.host_resolver->rules()->AddSimulatedFailure("*"); | 8201 session_deps_.host_resolver->rules()->AddSimulatedFailure("*"); |
8219 | 8202 |
8220 scoped_refptr<HttpNetworkSession> session(CreateSession(&session_deps_)); | 8203 scoped_refptr<HttpNetworkSession> session(CreateSession(&session_deps_)); |
8221 scoped_ptr<HttpTransaction> trans( | 8204 scoped_ptr<HttpTransaction> trans( |
8222 new HttpNetworkTransaction(DEFAULT_PRIORITY, session.get())); | 8205 new HttpNetworkTransaction(DEFAULT_PRIORITY, session.get())); |
8223 | 8206 |
8224 TestCompletionCallback callback; | 8207 TestCompletionCallback callback; |
(...skipping 216 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
8441 EXPECT_EQ(OK, rv); | 8424 EXPECT_EQ(OK, rv); |
8442 | 8425 |
8443 response = trans->GetResponseInfo(); | 8426 response = trans->GetResponseInfo(); |
8444 ASSERT_TRUE(response != NULL); | 8427 ASSERT_TRUE(response != NULL); |
8445 EXPECT_TRUE(response->auth_challenge.get() == NULL); | 8428 EXPECT_TRUE(response->auth_challenge.get() == NULL); |
8446 EXPECT_EQ(100, response->headers->GetContentLength()); | 8429 EXPECT_EQ(100, response->headers->GetContentLength()); |
8447 } | 8430 } |
8448 | 8431 |
8449 // Test HTTPS connections going through a proxy that sends extra data. | 8432 // Test HTTPS connections going through a proxy that sends extra data. |
8450 TEST_P(HttpNetworkTransactionTest, HTTPSViaProxyWithExtraData) { | 8433 TEST_P(HttpNetworkTransactionTest, HTTPSViaProxyWithExtraData) { |
8451 session_deps_.proxy_service.reset(ProxyService::CreateFixed("myproxy:70")); | 8434 session_deps_.proxy_service = ProxyService::CreateFixed("myproxy:70"); |
8452 | 8435 |
8453 HttpRequestInfo request; | 8436 HttpRequestInfo request; |
8454 request.method = "GET"; | 8437 request.method = "GET"; |
8455 request.url = GURL("https://www.example.org/"); | 8438 request.url = GURL("https://www.example.org/"); |
8456 request.load_flags = 0; | 8439 request.load_flags = 0; |
8457 | 8440 |
8458 MockRead proxy_reads[] = { | 8441 MockRead proxy_reads[] = { |
8459 MockRead("HTTP/1.0 200 Connected\r\n\r\nExtra data"), | 8442 MockRead("HTTP/1.0 200 Connected\r\n\r\nExtra data"), |
8460 MockRead(SYNCHRONOUS, OK) | 8443 MockRead(SYNCHRONOUS, OK) |
8461 }; | 8444 }; |
(...skipping 2027 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
10489 HttpAuthChallengeTokenizer tokenizer(auth_challenge.begin(), | 10472 HttpAuthChallengeTokenizer tokenizer(auth_challenge.begin(), |
10490 auth_challenge.end()); | 10473 auth_challenge.end()); |
10491 auth_handler->InitFromChallenge(&tokenizer, HttpAuth::AUTH_SERVER, | 10474 auth_handler->InitFromChallenge(&tokenizer, HttpAuth::AUTH_SERVER, |
10492 origin, BoundNetLog()); | 10475 origin, BoundNetLog()); |
10493 auth_handler->SetGenerateExpectation( | 10476 auth_handler->SetGenerateExpectation( |
10494 test_config.server_auth_timing == AUTH_ASYNC, | 10477 test_config.server_auth_timing == AUTH_ASYNC, |
10495 test_config.server_auth_rv); | 10478 test_config.server_auth_rv); |
10496 auth_factory->AddMockHandler(auth_handler, HttpAuth::AUTH_SERVER); | 10479 auth_factory->AddMockHandler(auth_handler, HttpAuth::AUTH_SERVER); |
10497 } | 10480 } |
10498 if (test_config.proxy_url) { | 10481 if (test_config.proxy_url) { |
10499 session_deps_.proxy_service.reset( | 10482 session_deps_.proxy_service = |
10500 ProxyService::CreateFixed(test_config.proxy_url)); | 10483 ProxyService::CreateFixed(test_config.proxy_url); |
10501 } else { | 10484 } else { |
10502 session_deps_.proxy_service.reset(ProxyService::CreateDirect()); | 10485 session_deps_.proxy_service = ProxyService::CreateDirect(); |
10503 } | 10486 } |
10504 | 10487 |
10505 HttpRequestInfo request; | 10488 HttpRequestInfo request; |
10506 request.method = "GET"; | 10489 request.method = "GET"; |
10507 request.url = GURL(test_config.server_url); | 10490 request.url = GURL(test_config.server_url); |
10508 request.load_flags = 0; | 10491 request.load_flags = 0; |
10509 | 10492 |
10510 scoped_refptr<HttpNetworkSession> session(CreateSession(&session_deps_)); | 10493 scoped_refptr<HttpNetworkSession> session(CreateSession(&session_deps_)); |
10511 HttpNetworkTransaction trans(DEFAULT_PRIORITY, session.get()); | 10494 HttpNetworkTransaction trans(DEFAULT_PRIORITY, session.get()); |
10512 | 10495 |
(...skipping 65 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
10578 } | 10561 } |
10579 } | 10562 } |
10580 } | 10563 } |
10581 } | 10564 } |
10582 | 10565 |
10583 TEST_P(HttpNetworkTransactionTest, MultiRoundAuth) { | 10566 TEST_P(HttpNetworkTransactionTest, MultiRoundAuth) { |
10584 // Do multi-round authentication and make sure it works correctly. | 10567 // Do multi-round authentication and make sure it works correctly. |
10585 HttpAuthHandlerMock::Factory* auth_factory( | 10568 HttpAuthHandlerMock::Factory* auth_factory( |
10586 new HttpAuthHandlerMock::Factory()); | 10569 new HttpAuthHandlerMock::Factory()); |
10587 session_deps_.http_auth_handler_factory.reset(auth_factory); | 10570 session_deps_.http_auth_handler_factory.reset(auth_factory); |
10588 session_deps_.proxy_service.reset(ProxyService::CreateDirect()); | 10571 session_deps_.proxy_service = ProxyService::CreateDirect(); |
10589 session_deps_.host_resolver->rules()->AddRule("www.example.com", "10.0.0.1"); | 10572 session_deps_.host_resolver->rules()->AddRule("www.example.com", "10.0.0.1"); |
10590 session_deps_.host_resolver->set_synchronous_mode(true); | 10573 session_deps_.host_resolver->set_synchronous_mode(true); |
10591 | 10574 |
10592 HttpAuthHandlerMock* auth_handler(new HttpAuthHandlerMock()); | 10575 HttpAuthHandlerMock* auth_handler(new HttpAuthHandlerMock()); |
10593 auth_handler->set_connection_based(true); | 10576 auth_handler->set_connection_based(true); |
10594 std::string auth_challenge = "Mock realm=server"; | 10577 std::string auth_challenge = "Mock realm=server"; |
10595 GURL origin("http://www.example.com"); | 10578 GURL origin("http://www.example.com"); |
10596 HttpAuthChallengeTokenizer tokenizer(auth_challenge.begin(), | 10579 HttpAuthChallengeTokenizer tokenizer(auth_challenge.begin(), |
10597 auth_challenge.end()); | 10580 auth_challenge.end()); |
10598 auth_handler->InitFromChallenge(&tokenizer, HttpAuth::AUTH_SERVER, | 10581 auth_handler->InitFromChallenge(&tokenizer, HttpAuth::AUTH_SERVER, |
(...skipping 290 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
10889 private: | 10872 private: |
10890 GURL* url_; | 10873 GURL* url_; |
10891 }; | 10874 }; |
10892 | 10875 |
10893 // This test ensures that the URL passed into the proxy is upgraded to https | 10876 // This test ensures that the URL passed into the proxy is upgraded to https |
10894 // when doing an Alternate Protocol upgrade. | 10877 // when doing an Alternate Protocol upgrade. |
10895 TEST_P(HttpNetworkTransactionTest, SpdyAlternateProtocolThroughProxy) { | 10878 TEST_P(HttpNetworkTransactionTest, SpdyAlternateProtocolThroughProxy) { |
10896 session_deps_.use_alternative_services = true; | 10879 session_deps_.use_alternative_services = true; |
10897 session_deps_.next_protos = SpdyNextProtos(); | 10880 session_deps_.next_protos = SpdyNextProtos(); |
10898 | 10881 |
10899 session_deps_.proxy_service.reset( | 10882 session_deps_.proxy_service = |
10900 ProxyService::CreateFixedFromPacResult("PROXY myproxy:70")); | 10883 ProxyService::CreateFixedFromPacResult("PROXY myproxy:70"); |
10901 TestNetLog net_log; | 10884 TestNetLog net_log; |
10902 session_deps_.net_log = &net_log; | 10885 session_deps_.net_log = &net_log; |
10903 GURL request_url; | 10886 GURL request_url; |
10904 { | 10887 { |
10905 HttpAuthHandlerMock::Factory* auth_factory = | 10888 HttpAuthHandlerMock::Factory* auth_factory = |
10906 new HttpAuthHandlerMock::Factory(); | 10889 new HttpAuthHandlerMock::Factory(); |
10907 UrlRecordingHttpAuthHandlerMock* auth_handler = | 10890 UrlRecordingHttpAuthHandlerMock* auth_handler = |
10908 new UrlRecordingHttpAuthHandlerMock(&request_url); | 10891 new UrlRecordingHttpAuthHandlerMock(&request_url); |
10909 auth_factory->AddMockHandler(auth_handler, HttpAuth::AUTH_PROXY); | 10892 auth_factory->AddMockHandler(auth_handler, HttpAuth::AUTH_PROXY); |
10910 auth_factory->set_do_init_from_challenge(true); | 10893 auth_factory->set_do_init_from_challenge(true); |
(...skipping 224 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
11135 | 11118 |
11136 // Let the HttpResponseBodyDrainer drain the socket. | 11119 // Let the HttpResponseBodyDrainer drain the socket. |
11137 base::MessageLoop::current()->RunUntilIdle(); | 11120 base::MessageLoop::current()->RunUntilIdle(); |
11138 | 11121 |
11139 // Socket should now be idle, waiting to be reused. | 11122 // Socket should now be idle, waiting to be reused. |
11140 EXPECT_EQ(1, GetIdleSocketCountInTransportSocketPool(session.get())); | 11123 EXPECT_EQ(1, GetIdleSocketCountInTransportSocketPool(session.get())); |
11141 } | 11124 } |
11142 | 11125 |
11143 // Test a basic GET request through a proxy. | 11126 // Test a basic GET request through a proxy. |
11144 TEST_P(HttpNetworkTransactionTest, ProxyGet) { | 11127 TEST_P(HttpNetworkTransactionTest, ProxyGet) { |
11145 session_deps_.proxy_service.reset( | 11128 session_deps_.proxy_service = |
11146 ProxyService::CreateFixedFromPacResult("PROXY myproxy:70")); | 11129 ProxyService::CreateFixedFromPacResult("PROXY myproxy:70"); |
11147 BoundTestNetLog log; | 11130 BoundTestNetLog log; |
11148 session_deps_.net_log = log.bound().net_log(); | 11131 session_deps_.net_log = log.bound().net_log(); |
11149 scoped_refptr<HttpNetworkSession> session(CreateSession(&session_deps_)); | 11132 scoped_refptr<HttpNetworkSession> session(CreateSession(&session_deps_)); |
11150 | 11133 |
11151 HttpRequestInfo request; | 11134 HttpRequestInfo request; |
11152 request.method = "GET"; | 11135 request.method = "GET"; |
11153 request.url = GURL("http://www.example.org/"); | 11136 request.url = GURL("http://www.example.org/"); |
11154 | 11137 |
11155 MockWrite data_writes1[] = { | 11138 MockWrite data_writes1[] = { |
11156 MockWrite( | 11139 MockWrite( |
(...skipping 42 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
11199 EXPECT_TRUE(HttpVersion(1, 1) == response->headers->GetHttpVersion()); | 11182 EXPECT_TRUE(HttpVersion(1, 1) == response->headers->GetHttpVersion()); |
11200 | 11183 |
11201 LoadTimingInfo load_timing_info; | 11184 LoadTimingInfo load_timing_info; |
11202 EXPECT_TRUE(trans->GetLoadTimingInfo(&load_timing_info)); | 11185 EXPECT_TRUE(trans->GetLoadTimingInfo(&load_timing_info)); |
11203 TestLoadTimingNotReusedWithPac(load_timing_info, | 11186 TestLoadTimingNotReusedWithPac(load_timing_info, |
11204 CONNECT_TIMING_HAS_CONNECT_TIMES_ONLY); | 11187 CONNECT_TIMING_HAS_CONNECT_TIMES_ONLY); |
11205 } | 11188 } |
11206 | 11189 |
11207 // Test a basic HTTPS GET request through a proxy. | 11190 // Test a basic HTTPS GET request through a proxy. |
11208 TEST_P(HttpNetworkTransactionTest, ProxyTunnelGet) { | 11191 TEST_P(HttpNetworkTransactionTest, ProxyTunnelGet) { |
11209 session_deps_.proxy_service.reset( | 11192 session_deps_.proxy_service = |
11210 ProxyService::CreateFixedFromPacResult("PROXY myproxy:70")); | 11193 ProxyService::CreateFixedFromPacResult("PROXY myproxy:70"); |
11211 BoundTestNetLog log; | 11194 BoundTestNetLog log; |
11212 session_deps_.net_log = log.bound().net_log(); | 11195 session_deps_.net_log = log.bound().net_log(); |
11213 scoped_refptr<HttpNetworkSession> session(CreateSession(&session_deps_)); | 11196 scoped_refptr<HttpNetworkSession> session(CreateSession(&session_deps_)); |
11214 | 11197 |
11215 HttpRequestInfo request; | 11198 HttpRequestInfo request; |
11216 request.method = "GET"; | 11199 request.method = "GET"; |
11217 request.url = GURL("https://www.example.org/"); | 11200 request.url = GURL("https://www.example.org/"); |
11218 | 11201 |
11219 // Since we have proxy, should try to establish tunnel. | 11202 // Since we have proxy, should try to establish tunnel. |
11220 MockWrite data_writes1[] = { | 11203 MockWrite data_writes1[] = { |
(...skipping 56 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
11277 | 11260 |
11278 LoadTimingInfo load_timing_info; | 11261 LoadTimingInfo load_timing_info; |
11279 EXPECT_TRUE(trans->GetLoadTimingInfo(&load_timing_info)); | 11262 EXPECT_TRUE(trans->GetLoadTimingInfo(&load_timing_info)); |
11280 TestLoadTimingNotReusedWithPac(load_timing_info, | 11263 TestLoadTimingNotReusedWithPac(load_timing_info, |
11281 CONNECT_TIMING_HAS_SSL_TIMES); | 11264 CONNECT_TIMING_HAS_SSL_TIMES); |
11282 } | 11265 } |
11283 | 11266 |
11284 // Test a basic HTTPS GET request through a proxy, but the server hangs up | 11267 // Test a basic HTTPS GET request through a proxy, but the server hangs up |
11285 // while establishing the tunnel. | 11268 // while establishing the tunnel. |
11286 TEST_P(HttpNetworkTransactionTest, ProxyTunnelGetHangup) { | 11269 TEST_P(HttpNetworkTransactionTest, ProxyTunnelGetHangup) { |
11287 session_deps_.proxy_service.reset(ProxyService::CreateFixed("myproxy:70")); | 11270 session_deps_.proxy_service = ProxyService::CreateFixed("myproxy:70"); |
11288 BoundTestNetLog log; | 11271 BoundTestNetLog log; |
11289 session_deps_.net_log = log.bound().net_log(); | 11272 session_deps_.net_log = log.bound().net_log(); |
11290 scoped_refptr<HttpNetworkSession> session(CreateSession(&session_deps_)); | 11273 scoped_refptr<HttpNetworkSession> session(CreateSession(&session_deps_)); |
11291 | 11274 |
11292 HttpRequestInfo request; | 11275 HttpRequestInfo request; |
11293 request.method = "GET"; | 11276 request.method = "GET"; |
11294 request.url = GURL("https://www.example.org/"); | 11277 request.url = GURL("https://www.example.org/"); |
11295 | 11278 |
11296 // Since we have proxy, should try to establish tunnel. | 11279 // Since we have proxy, should try to establish tunnel. |
11297 MockWrite data_writes1[] = { | 11280 MockWrite data_writes1[] = { |
(...skipping 350 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
11648 | 11631 |
11649 // Ensure that a client certificate is removed from the SSL client auth | 11632 // Ensure that a client certificate is removed from the SSL client auth |
11650 // cache when: | 11633 // cache when: |
11651 // 1) An HTTPS proxy is involved. | 11634 // 1) An HTTPS proxy is involved. |
11652 // 3) The HTTPS proxy requests a client certificate. | 11635 // 3) The HTTPS proxy requests a client certificate. |
11653 // 4) The client supplies an invalid/unacceptable certificate for the | 11636 // 4) The client supplies an invalid/unacceptable certificate for the |
11654 // proxy. | 11637 // proxy. |
11655 // The test is repeated twice, first for connecting to an HTTPS endpoint, | 11638 // The test is repeated twice, first for connecting to an HTTPS endpoint, |
11656 // then for connecting to an HTTP endpoint. | 11639 // then for connecting to an HTTP endpoint. |
11657 TEST_P(HttpNetworkTransactionTest, ClientAuthCertCache_Proxy_Fail) { | 11640 TEST_P(HttpNetworkTransactionTest, ClientAuthCertCache_Proxy_Fail) { |
11658 session_deps_.proxy_service.reset( | 11641 session_deps_.proxy_service = ProxyService::CreateFixed("https://proxy:70"); |
11659 ProxyService::CreateFixed("https://proxy:70")); | |
11660 BoundTestNetLog log; | 11642 BoundTestNetLog log; |
11661 session_deps_.net_log = log.bound().net_log(); | 11643 session_deps_.net_log = log.bound().net_log(); |
11662 | 11644 |
11663 scoped_refptr<SSLCertRequestInfo> cert_request(new SSLCertRequestInfo()); | 11645 scoped_refptr<SSLCertRequestInfo> cert_request(new SSLCertRequestInfo()); |
11664 cert_request->host_and_port = HostPortPair("proxy", 70); | 11646 cert_request->host_and_port = HostPortPair("proxy", 70); |
11665 | 11647 |
11666 // See ClientAuthCertCache_Direct_NoFalseStart for the explanation of | 11648 // See ClientAuthCertCache_Direct_NoFalseStart for the explanation of |
11667 // [ssl_]data[1-3]. Rather than represending the endpoint | 11649 // [ssl_]data[1-3]. Rather than represending the endpoint |
11668 // (www.example.com:443), they represent failures with the HTTPS proxy | 11650 // (www.example.com:443), they represent failures with the HTTPS proxy |
11669 // (proxy:70). | 11651 // (proxy:70). |
(...skipping 964 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
12634 CreateMockRead(*resp2, 6), | 12616 CreateMockRead(*resp2, 6), |
12635 CreateMockRead(*body2, 7), | 12617 CreateMockRead(*body2, 7), |
12636 MockRead(ASYNC, ERR_IO_PENDING, 8) | 12618 MockRead(ASYNC, ERR_IO_PENDING, 8) |
12637 }; | 12619 }; |
12638 | 12620 |
12639 DeterministicSocketData data1(reads1, arraysize(reads1), | 12621 DeterministicSocketData data1(reads1, arraysize(reads1), |
12640 writes1, arraysize(writes1)); | 12622 writes1, arraysize(writes1)); |
12641 MockConnect connect_data1(ASYNC, OK); | 12623 MockConnect connect_data1(ASYNC, OK); |
12642 data1.set_connect_data(connect_data1); | 12624 data1.set_connect_data(connect_data1); |
12643 | 12625 |
12644 session_deps_.proxy_service.reset( | 12626 session_deps_.proxy_service = |
12645 ProxyService::CreateFixedFromPacResult("HTTPS proxy:70")); | 12627 ProxyService::CreateFixedFromPacResult("HTTPS proxy:70"); |
12646 TestNetLog log; | 12628 TestNetLog log; |
12647 session_deps_.net_log = &log; | 12629 session_deps_.net_log = &log; |
12648 SSLSocketDataProvider ssl1(ASYNC, OK); // to the proxy | 12630 SSLSocketDataProvider ssl1(ASYNC, OK); // to the proxy |
12649 ssl1.SetNextProto(GetParam()); | 12631 ssl1.SetNextProto(GetParam()); |
12650 session_deps_.deterministic_socket_factory->AddSSLSocketDataProvider(&ssl1); | 12632 session_deps_.deterministic_socket_factory->AddSSLSocketDataProvider(&ssl1); |
12651 SSLSocketDataProvider ssl2(ASYNC, OK); // to the server | 12633 SSLSocketDataProvider ssl2(ASYNC, OK); // to the server |
12652 ssl2.SetNextProto(GetParam()); | 12634 ssl2.SetNextProto(GetParam()); |
12653 session_deps_.deterministic_socket_factory->AddSSLSocketDataProvider(&ssl2); | 12635 session_deps_.deterministic_socket_factory->AddSSLSocketDataProvider(&ssl2); |
12654 session_deps_.deterministic_socket_factory->AddSocketDataProvider(&data1); | 12636 session_deps_.deterministic_socket_factory->AddSocketDataProvider(&data1); |
12655 | 12637 |
(...skipping 1745 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
14401 | 14383 |
14402 // Verify that proxy headers are not sent to the destination server when | 14384 // Verify that proxy headers are not sent to the destination server when |
14403 // establishing a tunnel for a secure WebSocket connection. | 14385 // establishing a tunnel for a secure WebSocket connection. |
14404 TEST_P(HttpNetworkTransactionTest, ProxyHeadersNotSentOverWssTunnel) { | 14386 TEST_P(HttpNetworkTransactionTest, ProxyHeadersNotSentOverWssTunnel) { |
14405 HttpRequestInfo request; | 14387 HttpRequestInfo request; |
14406 request.method = "GET"; | 14388 request.method = "GET"; |
14407 request.url = GURL("wss://www.example.org/"); | 14389 request.url = GURL("wss://www.example.org/"); |
14408 AddWebSocketHeaders(&request.extra_headers); | 14390 AddWebSocketHeaders(&request.extra_headers); |
14409 | 14391 |
14410 // Configure against proxy server "myproxy:70". | 14392 // Configure against proxy server "myproxy:70". |
14411 session_deps_.proxy_service.reset( | 14393 session_deps_.proxy_service = |
14412 ProxyService::CreateFixedFromPacResult("PROXY myproxy:70")); | 14394 ProxyService::CreateFixedFromPacResult("PROXY myproxy:70"); |
14413 | 14395 |
14414 scoped_refptr<HttpNetworkSession> session(CreateSession(&session_deps_)); | 14396 scoped_refptr<HttpNetworkSession> session(CreateSession(&session_deps_)); |
14415 | 14397 |
14416 // Since a proxy is configured, try to establish a tunnel. | 14398 // Since a proxy is configured, try to establish a tunnel. |
14417 MockWrite data_writes[] = { | 14399 MockWrite data_writes[] = { |
14418 MockWrite( | 14400 MockWrite( |
14419 "CONNECT www.example.org:443 HTTP/1.1\r\n" | 14401 "CONNECT www.example.org:443 HTTP/1.1\r\n" |
14420 "Host: www.example.org\r\n" | 14402 "Host: www.example.org\r\n" |
14421 "Proxy-Connection: keep-alive\r\n\r\n"), | 14403 "Proxy-Connection: keep-alive\r\n\r\n"), |
14422 | 14404 |
(...skipping 85 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
14508 // This requires the authentication info to be injected into the auth cache | 14490 // This requires the authentication info to be injected into the auth cache |
14509 // due to crbug.com/395064 | 14491 // due to crbug.com/395064 |
14510 // TODO(ricea): Change to use a 407 response once issue 395064 is fixed. | 14492 // TODO(ricea): Change to use a 407 response once issue 395064 is fixed. |
14511 TEST_P(HttpNetworkTransactionTest, ProxyHeadersNotSentOverWsTunnel) { | 14493 TEST_P(HttpNetworkTransactionTest, ProxyHeadersNotSentOverWsTunnel) { |
14512 HttpRequestInfo request; | 14494 HttpRequestInfo request; |
14513 request.method = "GET"; | 14495 request.method = "GET"; |
14514 request.url = GURL("ws://www.example.org/"); | 14496 request.url = GURL("ws://www.example.org/"); |
14515 AddWebSocketHeaders(&request.extra_headers); | 14497 AddWebSocketHeaders(&request.extra_headers); |
14516 | 14498 |
14517 // Configure against proxy server "myproxy:70". | 14499 // Configure against proxy server "myproxy:70". |
14518 session_deps_.proxy_service.reset( | 14500 session_deps_.proxy_service = |
14519 ProxyService::CreateFixedFromPacResult("PROXY myproxy:70")); | 14501 ProxyService::CreateFixedFromPacResult("PROXY myproxy:70"); |
14520 | 14502 |
14521 scoped_refptr<HttpNetworkSession> session(CreateSession(&session_deps_)); | 14503 scoped_refptr<HttpNetworkSession> session(CreateSession(&session_deps_)); |
14522 | 14504 |
14523 MockWrite data_writes[] = { | 14505 MockWrite data_writes[] = { |
14524 // Try to establish a tunnel for the WebSocket connection, with | 14506 // Try to establish a tunnel for the WebSocket connection, with |
14525 // credentials. Because WebSockets have a separate set of socket pools, | 14507 // credentials. Because WebSockets have a separate set of socket pools, |
14526 // they cannot and will not use the same TCP/IP connection as the | 14508 // they cannot and will not use the same TCP/IP connection as the |
14527 // preflight HTTP request. | 14509 // preflight HTTP request. |
14528 MockWrite( | 14510 MockWrite( |
14529 "CONNECT www.example.org:80 HTTP/1.1\r\n" | 14511 "CONNECT www.example.org:80 HTTP/1.1\r\n" |
(...skipping 48 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
14578 ASSERT_TRUE(response); | 14560 ASSERT_TRUE(response); |
14579 ASSERT_TRUE(response->headers.get()); | 14561 ASSERT_TRUE(response->headers.get()); |
14580 | 14562 |
14581 EXPECT_EQ(101, response->headers->response_code()); | 14563 EXPECT_EQ(101, response->headers->response_code()); |
14582 | 14564 |
14583 trans.reset(); | 14565 trans.reset(); |
14584 session->CloseAllConnections(); | 14566 session->CloseAllConnections(); |
14585 } | 14567 } |
14586 | 14568 |
14587 } // namespace net | 14569 } // namespace net |
OLD | NEW |