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

Side by Side Diff: net/proxy/proxy_script_fetcher_unittest.cc

Issue 2881028: GTTF: test server cleanup: (Closed)
Patch Set: final Created 10 years, 5 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
« no previous file with comments | « net/proxy/proxy_resolver_perftest.cc ('k') | net/test/test_server.h » ('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/proxy/proxy_script_fetcher.h" 5 #include "net/proxy/proxy_script_fetcher.h"
6 6
7 #include "base/file_path.h" 7 #include "base/file_path.h"
8 #include "base/compiler_specific.h" 8 #include "base/compiler_specific.h"
9 #include "base/path_service.h" 9 #include "base/path_service.h"
10 #include "net/base/net_util.h" 10 #include "net/base/net_util.h"
(...skipping 75 matching lines...) Expand 10 before | Expand all | Expand 10 after
86 &text, &callback); 86 &text, &callback);
87 EXPECT_EQ(ERR_IO_PENDING, result); 87 EXPECT_EQ(ERR_IO_PENDING, result);
88 EXPECT_EQ(OK, callback.WaitForResult()); 88 EXPECT_EQ(OK, callback.WaitForResult());
89 EXPECT_EQ(ASCIIToUTF16("-pac.txt-\n"), text); 89 EXPECT_EQ(ASCIIToUTF16("-pac.txt-\n"), text);
90 } 90 }
91 } 91 }
92 92
93 // Note that all mime types are allowed for PAC file, to be consistent 93 // Note that all mime types are allowed for PAC file, to be consistent
94 // with other browsers. 94 // with other browsers.
95 TEST_F(ProxyScriptFetcherTest, HttpMimeType) { 95 TEST_F(ProxyScriptFetcherTest, HttpMimeType) {
96 scoped_refptr<HTTPTestServer> server = 96 scoped_refptr<HTTPTestServer> server(HTTPTestServer::CreateServer(kDocRoot));
97 HTTPTestServer::CreateServer(kDocRoot, NULL);
98 ASSERT_TRUE(NULL != server.get()); 97 ASSERT_TRUE(NULL != server.get());
99 scoped_refptr<URLRequestContext> context = new RequestContext; 98 scoped_refptr<URLRequestContext> context = new RequestContext;
100 scoped_ptr<ProxyScriptFetcher> pac_fetcher( 99 scoped_ptr<ProxyScriptFetcher> pac_fetcher(
101 ProxyScriptFetcher::Create(context)); 100 ProxyScriptFetcher::Create(context));
102 101
103 { // Fetch a PAC with mime type "text/plain" 102 { // Fetch a PAC with mime type "text/plain"
104 GURL url = server->TestServerPage("files/pac.txt"); 103 GURL url = server->TestServerPage("files/pac.txt");
105 string16 text; 104 string16 text;
106 TestCompletionCallback callback; 105 TestCompletionCallback callback;
107 int result = pac_fetcher->Fetch(url, &text, &callback); 106 int result = pac_fetcher->Fetch(url, &text, &callback);
(...skipping 15 matching lines...) Expand all
123 string16 text; 122 string16 text;
124 TestCompletionCallback callback; 123 TestCompletionCallback callback;
125 int result = pac_fetcher->Fetch(url, &text, &callback); 124 int result = pac_fetcher->Fetch(url, &text, &callback);
126 EXPECT_EQ(ERR_IO_PENDING, result); 125 EXPECT_EQ(ERR_IO_PENDING, result);
127 EXPECT_EQ(OK, callback.WaitForResult()); 126 EXPECT_EQ(OK, callback.WaitForResult());
128 EXPECT_EQ(ASCIIToUTF16("-pac.nsproxy-\n"), text); 127 EXPECT_EQ(ASCIIToUTF16("-pac.nsproxy-\n"), text);
129 } 128 }
130 } 129 }
131 130
132 TEST_F(ProxyScriptFetcherTest, HttpStatusCode) { 131 TEST_F(ProxyScriptFetcherTest, HttpStatusCode) {
133 scoped_refptr<HTTPTestServer> server = 132 scoped_refptr<HTTPTestServer> server(HTTPTestServer::CreateServer(kDocRoot));
134 HTTPTestServer::CreateServer(kDocRoot, NULL);
135 ASSERT_TRUE(NULL != server.get()); 133 ASSERT_TRUE(NULL != server.get());
136 scoped_refptr<URLRequestContext> context = new RequestContext; 134 scoped_refptr<URLRequestContext> context = new RequestContext;
137 scoped_ptr<ProxyScriptFetcher> pac_fetcher( 135 scoped_ptr<ProxyScriptFetcher> pac_fetcher(
138 ProxyScriptFetcher::Create(context)); 136 ProxyScriptFetcher::Create(context));
139 137
140 { // Fetch a PAC which gives a 500 -- FAIL 138 { // Fetch a PAC which gives a 500 -- FAIL
141 GURL url = server->TestServerPage("files/500.pac"); 139 GURL url = server->TestServerPage("files/500.pac");
142 string16 text; 140 string16 text;
143 TestCompletionCallback callback; 141 TestCompletionCallback callback;
144 int result = pac_fetcher->Fetch(url, &text, &callback); 142 int result = pac_fetcher->Fetch(url, &text, &callback);
145 EXPECT_EQ(ERR_IO_PENDING, result); 143 EXPECT_EQ(ERR_IO_PENDING, result);
146 EXPECT_EQ(ERR_PAC_STATUS_NOT_OK, callback.WaitForResult()); 144 EXPECT_EQ(ERR_PAC_STATUS_NOT_OK, callback.WaitForResult());
147 EXPECT_TRUE(text.empty()); 145 EXPECT_TRUE(text.empty());
148 } 146 }
149 { // Fetch a PAC which gives a 404 -- FAIL 147 { // Fetch a PAC which gives a 404 -- FAIL
150 GURL url = server->TestServerPage("files/404.pac"); 148 GURL url = server->TestServerPage("files/404.pac");
151 string16 text; 149 string16 text;
152 TestCompletionCallback callback; 150 TestCompletionCallback callback;
153 int result = pac_fetcher->Fetch(url, &text, &callback); 151 int result = pac_fetcher->Fetch(url, &text, &callback);
154 EXPECT_EQ(ERR_IO_PENDING, result); 152 EXPECT_EQ(ERR_IO_PENDING, result);
155 EXPECT_EQ(ERR_PAC_STATUS_NOT_OK, callback.WaitForResult()); 153 EXPECT_EQ(ERR_PAC_STATUS_NOT_OK, callback.WaitForResult());
156 EXPECT_TRUE(text.empty()); 154 EXPECT_TRUE(text.empty());
157 } 155 }
158 } 156 }
159 157
160 TEST_F(ProxyScriptFetcherTest, ContentDisposition) { 158 TEST_F(ProxyScriptFetcherTest, ContentDisposition) {
161 scoped_refptr<HTTPTestServer> server = 159 scoped_refptr<HTTPTestServer> server(HTTPTestServer::CreateServer(kDocRoot));
162 HTTPTestServer::CreateServer(kDocRoot, NULL);
163 ASSERT_TRUE(NULL != server.get()); 160 ASSERT_TRUE(NULL != server.get());
164 scoped_refptr<URLRequestContext> context = new RequestContext; 161 scoped_refptr<URLRequestContext> context = new RequestContext;
165 scoped_ptr<ProxyScriptFetcher> pac_fetcher( 162 scoped_ptr<ProxyScriptFetcher> pac_fetcher(
166 ProxyScriptFetcher::Create(context)); 163 ProxyScriptFetcher::Create(context));
167 164
168 // Fetch PAC scripts via HTTP with a Content-Disposition header -- should 165 // Fetch PAC scripts via HTTP with a Content-Disposition header -- should
169 // have no effect. 166 // have no effect.
170 GURL url = server->TestServerPage("files/downloadable.pac"); 167 GURL url = server->TestServerPage("files/downloadable.pac");
171 string16 text; 168 string16 text;
172 TestCompletionCallback callback; 169 TestCompletionCallback callback;
173 int result = pac_fetcher->Fetch(url, &text, &callback); 170 int result = pac_fetcher->Fetch(url, &text, &callback);
174 EXPECT_EQ(ERR_IO_PENDING, result); 171 EXPECT_EQ(ERR_IO_PENDING, result);
175 EXPECT_EQ(OK, callback.WaitForResult()); 172 EXPECT_EQ(OK, callback.WaitForResult());
176 EXPECT_EQ(ASCIIToUTF16("-downloadable.pac-\n"), text); 173 EXPECT_EQ(ASCIIToUTF16("-downloadable.pac-\n"), text);
177 } 174 }
178 175
179 TEST_F(ProxyScriptFetcherTest, NoCache) { 176 TEST_F(ProxyScriptFetcherTest, NoCache) {
180 scoped_refptr<HTTPTestServer> server = 177 scoped_refptr<HTTPTestServer> server(HTTPTestServer::CreateServer(kDocRoot));
181 HTTPTestServer::CreateServer(kDocRoot, NULL);
182 ASSERT_TRUE(NULL != server.get()); 178 ASSERT_TRUE(NULL != server.get());
183 scoped_refptr<URLRequestContext> context = new RequestContext; 179 scoped_refptr<URLRequestContext> context = new RequestContext;
184 scoped_ptr<ProxyScriptFetcher> pac_fetcher( 180 scoped_ptr<ProxyScriptFetcher> pac_fetcher(
185 ProxyScriptFetcher::Create(context)); 181 ProxyScriptFetcher::Create(context));
186 182
187 // Fetch a PAC script whose HTTP headers make it cacheable for 1 hour. 183 // Fetch a PAC script whose HTTP headers make it cacheable for 1 hour.
188 GURL url = server->TestServerPage("files/cacheable_1hr.pac"); 184 GURL url = server->TestServerPage("files/cacheable_1hr.pac");
189 { 185 {
190 string16 text; 186 string16 text;
191 TestCompletionCallback callback; 187 TestCompletionCallback callback;
(...skipping 13 matching lines...) Expand all
205 { 201 {
206 string16 text; 202 string16 text;
207 TestCompletionCallback callback; 203 TestCompletionCallback callback;
208 int result = pac_fetcher->Fetch(url, &text, &callback); 204 int result = pac_fetcher->Fetch(url, &text, &callback);
209 EXPECT_EQ(ERR_IO_PENDING, result); 205 EXPECT_EQ(ERR_IO_PENDING, result);
210 EXPECT_EQ(ERR_CONNECTION_REFUSED, callback.WaitForResult()); 206 EXPECT_EQ(ERR_CONNECTION_REFUSED, callback.WaitForResult());
211 } 207 }
212 } 208 }
213 209
214 TEST_F(ProxyScriptFetcherTest, TooLarge) { 210 TEST_F(ProxyScriptFetcherTest, TooLarge) {
215 scoped_refptr<HTTPTestServer> server = 211 scoped_refptr<HTTPTestServer> server(HTTPTestServer::CreateServer(kDocRoot));
216 HTTPTestServer::CreateServer(kDocRoot, NULL);
217 ASSERT_TRUE(NULL != server.get()); 212 ASSERT_TRUE(NULL != server.get());
218 scoped_refptr<URLRequestContext> context = new RequestContext; 213 scoped_refptr<URLRequestContext> context = new RequestContext;
219 scoped_ptr<ProxyScriptFetcher> pac_fetcher( 214 scoped_ptr<ProxyScriptFetcher> pac_fetcher(
220 ProxyScriptFetcher::Create(context)); 215 ProxyScriptFetcher::Create(context));
221 216
222 // Set the maximum response size to 50 bytes. 217 // Set the maximum response size to 50 bytes.
223 int prev_size = ProxyScriptFetcher::SetSizeConstraintForUnittest(50); 218 int prev_size = ProxyScriptFetcher::SetSizeConstraintForUnittest(50);
224 219
225 // These two URLs are the same file, but are http:// vs file:// 220 // These two URLs are the same file, but are http:// vs file://
226 GURL urls[] = { 221 GURL urls[] = {
(...skipping 21 matching lines...) Expand all
248 string16 text; 243 string16 text;
249 TestCompletionCallback callback; 244 TestCompletionCallback callback;
250 int result = pac_fetcher->Fetch(url, &text, &callback); 245 int result = pac_fetcher->Fetch(url, &text, &callback);
251 EXPECT_EQ(ERR_IO_PENDING, result); 246 EXPECT_EQ(ERR_IO_PENDING, result);
252 EXPECT_EQ(OK, callback.WaitForResult()); 247 EXPECT_EQ(OK, callback.WaitForResult());
253 EXPECT_EQ(ASCIIToUTF16("-pac.nsproxy-\n"), text); 248 EXPECT_EQ(ASCIIToUTF16("-pac.nsproxy-\n"), text);
254 } 249 }
255 } 250 }
256 251
257 TEST_F(ProxyScriptFetcherTest, Hang) { 252 TEST_F(ProxyScriptFetcherTest, Hang) {
258 scoped_refptr<HTTPTestServer> server = 253 scoped_refptr<HTTPTestServer> server(HTTPTestServer::CreateServer(kDocRoot));
259 HTTPTestServer::CreateServer(kDocRoot, NULL);
260 ASSERT_TRUE(NULL != server.get()); 254 ASSERT_TRUE(NULL != server.get());
261 scoped_refptr<URLRequestContext> context = new RequestContext; 255 scoped_refptr<URLRequestContext> context = new RequestContext;
262 scoped_ptr<ProxyScriptFetcher> pac_fetcher( 256 scoped_ptr<ProxyScriptFetcher> pac_fetcher(
263 ProxyScriptFetcher::Create(context)); 257 ProxyScriptFetcher::Create(context));
264 258
265 // Set the timeout period to 0.5 seconds. 259 // Set the timeout period to 0.5 seconds.
266 int prev_timeout = 260 int prev_timeout =
267 ProxyScriptFetcher::SetTimeoutConstraintForUnittest(500); 261 ProxyScriptFetcher::SetTimeoutConstraintForUnittest(500);
268 262
269 // Try fetching a URL which takes 1.2 seconds. We should abort the request 263 // Try fetching a URL which takes 1.2 seconds. We should abort the request
(...skipping 18 matching lines...) Expand all
288 EXPECT_EQ(ERR_IO_PENDING, result); 282 EXPECT_EQ(ERR_IO_PENDING, result);
289 EXPECT_EQ(OK, callback.WaitForResult()); 283 EXPECT_EQ(OK, callback.WaitForResult());
290 EXPECT_EQ(ASCIIToUTF16("-pac.nsproxy-\n"), text); 284 EXPECT_EQ(ASCIIToUTF16("-pac.nsproxy-\n"), text);
291 } 285 }
292 } 286 }
293 287
294 // The ProxyScriptFetcher should decode any content-codings 288 // The ProxyScriptFetcher should decode any content-codings
295 // (like gzip, bzip, etc.), and apply any charset conversions to yield 289 // (like gzip, bzip, etc.), and apply any charset conversions to yield
296 // UTF8. 290 // UTF8.
297 TEST_F(ProxyScriptFetcherTest, Encodings) { 291 TEST_F(ProxyScriptFetcherTest, Encodings) {
298 scoped_refptr<HTTPTestServer> server = 292 scoped_refptr<HTTPTestServer> server(HTTPTestServer::CreateServer(kDocRoot));
299 HTTPTestServer::CreateServer(kDocRoot, NULL);
300 ASSERT_TRUE(NULL != server.get()); 293 ASSERT_TRUE(NULL != server.get());
301 scoped_refptr<URLRequestContext> context = new RequestContext; 294 scoped_refptr<URLRequestContext> context = new RequestContext;
302 scoped_ptr<ProxyScriptFetcher> pac_fetcher( 295 scoped_ptr<ProxyScriptFetcher> pac_fetcher(
303 ProxyScriptFetcher::Create(context)); 296 ProxyScriptFetcher::Create(context));
304 297
305 // Test a response that is gzip-encoded -- should get inflated. 298 // Test a response that is gzip-encoded -- should get inflated.
306 { 299 {
307 GURL url = server->TestServerPage("files/gzipped_pac"); 300 GURL url = server->TestServerPage("files/gzipped_pac");
308 string16 text; 301 string16 text;
309 TestCompletionCallback callback; 302 TestCompletionCallback callback;
(...skipping 10 matching lines...) Expand all
320 string16 text; 313 string16 text;
321 TestCompletionCallback callback; 314 TestCompletionCallback callback;
322 int result = pac_fetcher->Fetch(url, &text, &callback); 315 int result = pac_fetcher->Fetch(url, &text, &callback);
323 EXPECT_EQ(ERR_IO_PENDING, result); 316 EXPECT_EQ(ERR_IO_PENDING, result);
324 EXPECT_EQ(OK, callback.WaitForResult()); 317 EXPECT_EQ(OK, callback.WaitForResult());
325 EXPECT_EQ(ASCIIToUTF16("This was encoded as UTF-16BE.\n"), text); 318 EXPECT_EQ(ASCIIToUTF16("This was encoded as UTF-16BE.\n"), text);
326 } 319 }
327 } 320 }
328 321
329 } // namespace net 322 } // namespace net
OLDNEW
« no previous file with comments | « net/proxy/proxy_resolver_perftest.cc ('k') | net/test/test_server.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698