Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(160)

Side by Side Diff: net/http/http_network_layer_unittest.cc

Issue 6402002: Simplify HttpCache/HttpNetworkLayer/HttpNetworkSession interaction. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Fix nits. Created 9 years, 11 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « net/http/http_network_layer.cc ('k') | net/proxy/proxy_script_fetcher_impl_unittest.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2010 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2010 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/base/cert_verifier.h" 5 #include "net/base/cert_verifier.h"
6 #include "net/base/mock_host_resolver.h" 6 #include "net/base/mock_host_resolver.h"
7 #include "net/base/net_log.h" 7 #include "net/base/net_log.h"
8 #include "net/base/ssl_config_service_defaults.h" 8 #include "net/base/ssl_config_service_defaults.h"
9 #include "net/http/http_network_layer.h" 9 #include "net/http/http_network_layer.h"
10 #include "net/http/http_network_session.h"
10 #include "net/http/http_transaction_unittest.h" 11 #include "net/http/http_transaction_unittest.h"
11 #include "net/proxy/proxy_service.h" 12 #include "net/proxy/proxy_service.h"
12 #include "net/socket/socket_test_util.h" 13 #include "net/socket/socket_test_util.h"
14 #include "net/spdy/spdy_session_pool.h"
13 #include "testing/gtest/include/gtest/gtest.h" 15 #include "testing/gtest/include/gtest/gtest.h"
14 #include "testing/platform_test.h" 16 #include "testing/platform_test.h"
15 17
16 namespace net { 18 namespace net {
17 19
18 namespace { 20 namespace {
19 21
20 class HttpNetworkLayerTest : public PlatformTest { 22 class HttpNetworkLayerTest : public PlatformTest {
21 }; 23 };
22 24
23 TEST_F(HttpNetworkLayerTest, CreateAndDestroy) { 25 TEST_F(HttpNetworkLayerTest, CreateAndDestroy) {
26 MockClientSocketFactory mock_socket_factory;
24 MockHostResolver host_resolver; 27 MockHostResolver host_resolver;
25 net::CertVerifier cert_verifier; 28 CertVerifier cert_verifier;
26 net::HttpNetworkLayer factory( 29 scoped_refptr<HttpNetworkSession> network_session(
27 NULL, 30 new HttpNetworkSession(
28 &host_resolver, 31 &host_resolver,
29 &cert_verifier, 32 &cert_verifier,
30 NULL /* dnsrr_resolver */, 33 NULL /* dnsrr_resolver */,
31 NULL /* dns_cert_checker */, 34 NULL /* dns_cert_checker */,
32 NULL /* ssl_host_info_factory */, 35 NULL /* ssl_host_info_factory */,
33 net::ProxyService::CreateDirect(), 36 ProxyService::CreateDirect(),
34 new net::SSLConfigServiceDefaults, 37 &mock_socket_factory,
35 NULL, 38 new SSLConfigServiceDefaults,
36 NULL, 39 new SpdySessionPool(NULL),
37 NULL); 40 NULL,
41 NULL,
42 NULL));
38 43
39 scoped_ptr<net::HttpTransaction> trans; 44 HttpNetworkLayer factory(network_session);
45
46 scoped_ptr<HttpTransaction> trans;
40 int rv = factory.CreateTransaction(&trans); 47 int rv = factory.CreateTransaction(&trans);
41 EXPECT_EQ(net::OK, rv); 48 EXPECT_EQ(OK, rv);
42 EXPECT_TRUE(trans.get() != NULL); 49 EXPECT_TRUE(trans.get() != NULL);
43 } 50 }
44 51
45 TEST_F(HttpNetworkLayerTest, Suspend) { 52 TEST_F(HttpNetworkLayerTest, Suspend) {
53 MockClientSocketFactory mock_socket_factory;
46 MockHostResolver host_resolver; 54 MockHostResolver host_resolver;
47 net::CertVerifier cert_verifier; 55 CertVerifier cert_verifier;
48 net::HttpNetworkLayer factory( 56 scoped_refptr<HttpNetworkSession> network_session(
49 NULL, 57 new HttpNetworkSession(
50 &host_resolver, 58 &host_resolver,
51 &cert_verifier, 59 &cert_verifier,
52 NULL /* dnsrr_resolver */, 60 NULL /* dnsrr_resolver */,
53 NULL /* dns_cert_checker */, 61 NULL /* dns_cert_checker */,
54 NULL /* ssl_host_info_factory */, 62 NULL /* ssl_host_info_factory */,
55 net::ProxyService::CreateDirect(), 63 ProxyService::CreateDirect(),
56 new net::SSLConfigServiceDefaults, 64 &mock_socket_factory,
57 NULL, 65 new SSLConfigServiceDefaults,
58 NULL, 66 new SpdySessionPool(NULL),
59 NULL); 67 NULL,
68 NULL,
69 NULL));
70 HttpNetworkLayer factory(network_session);
60 71
61 scoped_ptr<net::HttpTransaction> trans; 72 scoped_ptr<HttpTransaction> trans;
62 int rv = factory.CreateTransaction(&trans); 73 int rv = factory.CreateTransaction(&trans);
63 EXPECT_EQ(net::OK, rv); 74 EXPECT_EQ(OK, rv);
64 75
65 trans.reset(); 76 trans.reset();
66 77
67 factory.Suspend(true); 78 factory.Suspend(true);
68 79
69 rv = factory.CreateTransaction(&trans); 80 rv = factory.CreateTransaction(&trans);
70 EXPECT_EQ(net::ERR_NETWORK_IO_SUSPENDED, rv); 81 EXPECT_EQ(ERR_NETWORK_IO_SUSPENDED, rv);
71 82
72 ASSERT_TRUE(trans == NULL); 83 ASSERT_TRUE(trans == NULL);
73 84
74 factory.Suspend(false); 85 factory.Suspend(false);
75 86
76 rv = factory.CreateTransaction(&trans); 87 rv = factory.CreateTransaction(&trans);
77 EXPECT_EQ(net::OK, rv); 88 EXPECT_EQ(OK, rv);
78 } 89 }
79 90
80 TEST_F(HttpNetworkLayerTest, GET) { 91 TEST_F(HttpNetworkLayerTest, GET) {
81 net::MockClientSocketFactory mock_socket_factory; 92 MockClientSocketFactory mock_socket_factory;
82 net::MockRead data_reads[] = { 93 MockRead data_reads[] = {
83 net::MockRead("HTTP/1.0 200 OK\r\n\r\n"), 94 MockRead("HTTP/1.0 200 OK\r\n\r\n"),
84 net::MockRead("hello world"), 95 MockRead("hello world"),
85 net::MockRead(false, net::OK), 96 MockRead(false, OK),
86 }; 97 };
87 net::MockWrite data_writes[] = { 98 MockWrite data_writes[] = {
88 net::MockWrite("GET / HTTP/1.1\r\n" 99 MockWrite("GET / HTTP/1.1\r\n"
89 "Host: www.google.com\r\n" 100 "Host: www.google.com\r\n"
90 "Connection: keep-alive\r\n" 101 "Connection: keep-alive\r\n"
91 "User-Agent: Foo/1.0\r\n\r\n"), 102 "User-Agent: Foo/1.0\r\n\r\n"),
92 }; 103 };
93 net::StaticSocketDataProvider data(data_reads, arraysize(data_reads), 104 StaticSocketDataProvider data(data_reads, arraysize(data_reads),
94 data_writes, arraysize(data_writes)); 105 data_writes, arraysize(data_writes));
95 mock_socket_factory.AddSocketDataProvider(&data); 106 mock_socket_factory.AddSocketDataProvider(&data);
96 107
97 MockHostResolver host_resolver; 108 MockHostResolver host_resolver;
98 net::CertVerifier cert_verifier; 109 CertVerifier cert_verifier;
99 net::HttpNetworkLayer factory( 110 scoped_refptr<HttpNetworkSession> network_session(
100 &mock_socket_factory, 111 new HttpNetworkSession(
101 &host_resolver, 112 &host_resolver,
102 &cert_verifier, 113 &cert_verifier,
103 NULL /* dnsrr_resolver */, 114 NULL /* dnsrr_resolver */,
104 NULL /* dns_cert_checker */, 115 NULL /* dns_cert_checker */,
105 NULL /* ssl_host_info_factory */, 116 NULL /* ssl_host_info_factory */,
106 net::ProxyService::CreateDirect(), 117 ProxyService::CreateDirect(),
107 new net::SSLConfigServiceDefaults, 118 &mock_socket_factory,
108 NULL, 119 new SSLConfigServiceDefaults,
109 NULL, 120 new SpdySessionPool(NULL),
110 NULL); 121 NULL,
122 NULL,
123 NULL));
124 HttpNetworkLayer factory(network_session);
111 125
112 TestCompletionCallback callback; 126 TestCompletionCallback callback;
113 127
114 scoped_ptr<net::HttpTransaction> trans; 128 scoped_ptr<HttpTransaction> trans;
115 int rv = factory.CreateTransaction(&trans); 129 int rv = factory.CreateTransaction(&trans);
116 EXPECT_EQ(net::OK, rv); 130 EXPECT_EQ(OK, rv);
117 131
118 net::HttpRequestInfo request_info; 132 HttpRequestInfo request_info;
119 request_info.url = GURL("http://www.google.com/"); 133 request_info.url = GURL("http://www.google.com/");
120 request_info.method = "GET"; 134 request_info.method = "GET";
121 request_info.extra_headers.SetHeader(net::HttpRequestHeaders::kUserAgent, 135 request_info.extra_headers.SetHeader(HttpRequestHeaders::kUserAgent,
122 "Foo/1.0"); 136 "Foo/1.0");
123 request_info.load_flags = net::LOAD_NORMAL; 137 request_info.load_flags = LOAD_NORMAL;
124 138
125 rv = trans->Start(&request_info, &callback, net::BoundNetLog()); 139 rv = trans->Start(&request_info, &callback, BoundNetLog());
126 if (rv == net::ERR_IO_PENDING) 140 if (rv == ERR_IO_PENDING)
127 rv = callback.WaitForResult(); 141 rv = callback.WaitForResult();
128 ASSERT_EQ(net::OK, rv); 142 ASSERT_EQ(OK, rv);
129 143
130 std::string contents; 144 std::string contents;
131 rv = ReadTransaction(trans.get(), &contents); 145 rv = ReadTransaction(trans.get(), &contents);
132 EXPECT_EQ(net::OK, rv); 146 EXPECT_EQ(OK, rv);
133 EXPECT_EQ("hello world", contents); 147 EXPECT_EQ("hello world", contents);
134 } 148 }
135 149
136 } // namespace 150 } // namespace
137 151
138 } // namespace net 152 } // namespace net
OLDNEW
« no previous file with comments | « net/http/http_network_layer.cc ('k') | net/proxy/proxy_script_fetcher_impl_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698