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

Side by Side Diff: ppapi/tests/test_url_loader.cc

Issue 6432001: Implement proxy for FlashMenu and Run/QuitMessageLoop (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Handle NULL menus more gracefully Created 9 years, 10 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 | « ppapi/tests/test_graphics_2d.cc ('k') | ppapi/tests/test_utils.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) 2011 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2011 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 "ppapi/tests/test_url_loader.h" 5 #include "ppapi/tests/test_url_loader.h"
6 6
7 #include <stdio.h> 7 #include <stdio.h>
8 #include <string.h> 8 #include <string.h>
9 #include <string> 9 #include <string>
10 10
(...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after
49 RUN_TEST(CustomRequestHeader); 49 RUN_TEST(CustomRequestHeader);
50 RUN_TEST(IgnoresBogusContentLength); 50 RUN_TEST(IgnoresBogusContentLength);
51 RUN_TEST(SameOriginRestriction); 51 RUN_TEST(SameOriginRestriction);
52 RUN_TEST(StreamToFile); 52 RUN_TEST(StreamToFile);
53 RUN_TEST(AuditURLRedirect); 53 RUN_TEST(AuditURLRedirect);
54 RUN_TEST(AbortCalls); 54 RUN_TEST(AbortCalls);
55 } 55 }
56 56
57 std::string TestURLLoader::ReadEntireFile(pp::FileIO_Dev* file_io, 57 std::string TestURLLoader::ReadEntireFile(pp::FileIO_Dev* file_io,
58 std::string* data) { 58 std::string* data) {
59 TestCompletionCallback callback; 59 TestCompletionCallback callback(instance_->pp_instance());
60 char buf[256]; 60 char buf[256];
61 int64_t offset = 0; 61 int64_t offset = 0;
62 62
63 for (;;) { 63 for (;;) {
64 int32_t rv = file_io->Read(offset, buf, sizeof(buf), callback); 64 int32_t rv = file_io->Read(offset, buf, sizeof(buf), callback);
65 if (rv == PP_ERROR_WOULDBLOCK) 65 if (rv == PP_ERROR_WOULDBLOCK)
66 rv = callback.WaitForResult(); 66 rv = callback.WaitForResult();
67 if (rv < 0) 67 if (rv < 0)
68 return ReportError("FileIO::Read", rv); 68 return ReportError("FileIO::Read", rv);
69 if (rv == 0) 69 if (rv == 0)
70 break; 70 break;
71 offset += rv; 71 offset += rv;
72 data->append(buf, rv); 72 data->append(buf, rv);
73 } 73 }
74 74
75 PASS(); 75 PASS();
76 } 76 }
77 77
78 std::string TestURLLoader::ReadEntireResponseBody(pp::URLLoader* loader, 78 std::string TestURLLoader::ReadEntireResponseBody(pp::URLLoader* loader,
79 std::string* body) { 79 std::string* body) {
80 TestCompletionCallback callback; 80 TestCompletionCallback callback(instance_->pp_instance());
81 char buf[2]; // Small so that multiple reads are needed. 81 char buf[2]; // Small so that multiple reads are needed.
82 82
83 for (;;) { 83 for (;;) {
84 int32_t rv = loader->ReadResponseBody(buf, sizeof(buf), callback); 84 int32_t rv = loader->ReadResponseBody(buf, sizeof(buf), callback);
85 if (rv == PP_ERROR_WOULDBLOCK) 85 if (rv == PP_ERROR_WOULDBLOCK)
86 rv = callback.WaitForResult(); 86 rv = callback.WaitForResult();
87 if (rv < 0) 87 if (rv < 0)
88 return ReportError("URLLoader::ReadResponseBody", rv); 88 return ReportError("URLLoader::ReadResponseBody", rv);
89 if (rv == 0) 89 if (rv == 0)
90 break; 90 break;
91 body->append(buf, rv); 91 body->append(buf, rv);
92 } 92 }
93 93
94 PASS(); 94 PASS();
95 } 95 }
96 96
97 std::string TestURLLoader::LoadAndCompareBody( 97 std::string TestURLLoader::LoadAndCompareBody(
98 const pp::URLRequestInfo& request, 98 const pp::URLRequestInfo& request,
99 const std::string& expected_body) { 99 const std::string& expected_body) {
100 TestCompletionCallback callback; 100 TestCompletionCallback callback(instance_->pp_instance());
101 101
102 pp::URLLoader loader(*instance_); 102 pp::URLLoader loader(*instance_);
103 int32_t rv = loader.Open(request, callback); 103 int32_t rv = loader.Open(request, callback);
104 if (rv == PP_ERROR_WOULDBLOCK) 104 if (rv == PP_ERROR_WOULDBLOCK)
105 rv = callback.WaitForResult(); 105 rv = callback.WaitForResult();
106 if (rv != PP_OK) 106 if (rv != PP_OK)
107 return ReportError("URLLoader::Open", rv); 107 return ReportError("URLLoader::Open", rv);
108 108
109 pp::URLResponseInfo response_info(loader.GetResponseInfo()); 109 pp::URLResponseInfo response_info(loader.GetResponseInfo());
110 if (response_info.is_null()) 110 if (response_info.is_null())
(...skipping 76 matching lines...) Expand 10 before | Expand all | Expand 10 after
187 std::string postdata("postdata"); 187 std::string postdata("postdata");
188 request.AppendDataToBody(postdata.data(), postdata.length()); 188 request.AppendDataToBody(postdata.data(), postdata.length());
189 return LoadAndCompareBody(request, postdata); 189 return LoadAndCompareBody(request, postdata);
190 } 190 }
191 191
192 std::string TestURLLoader::TestStreamToFile() { 192 std::string TestURLLoader::TestStreamToFile() {
193 pp::URLRequestInfo request; 193 pp::URLRequestInfo request;
194 request.SetURL("test_url_loader_data/hello.txt"); 194 request.SetURL("test_url_loader_data/hello.txt");
195 request.SetStreamToFile(true); 195 request.SetStreamToFile(true);
196 196
197 TestCompletionCallback callback; 197 TestCompletionCallback callback(instance_->pp_instance());
198 198
199 pp::URLLoader loader(*instance_); 199 pp::URLLoader loader(*instance_);
200 int32_t rv = loader.Open(request, callback); 200 int32_t rv = loader.Open(request, callback);
201 if (rv == PP_ERROR_WOULDBLOCK) 201 if (rv == PP_ERROR_WOULDBLOCK)
202 rv = callback.WaitForResult(); 202 rv = callback.WaitForResult();
203 if (rv != PP_OK) 203 if (rv != PP_OK)
204 return ReportError("URLLoader::Open", rv); 204 return ReportError("URLLoader::Open", rv);
205 205
206 pp::URLResponseInfo response_info(loader.GetResponseInfo()); 206 pp::URLResponseInfo response_info(loader.GetResponseInfo());
207 if (response_info.is_null()) 207 if (response_info.is_null())
(...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after
244 if (file_descriptor < 0) 244 if (file_descriptor < 0)
245 return "FileIO::GetOSFileDescriptor() returned a bad file descriptor."; 245 return "FileIO::GetOSFileDescriptor() returned a bad file descriptor.";
246 246
247 PASS(); 247 PASS();
248 } 248 }
249 249
250 std::string TestURLLoader::TestSameOriginRestriction() { 250 std::string TestURLLoader::TestSameOriginRestriction() {
251 pp::URLRequestInfo request; 251 pp::URLRequestInfo request;
252 request.SetURL("http://www.google.com/"); 252 request.SetURL("http://www.google.com/");
253 253
254 TestCompletionCallback callback; 254 TestCompletionCallback callback(instance_->pp_instance());
255 255
256 pp::URLLoader loader(*instance_); 256 pp::URLLoader loader(*instance_);
257 int32_t rv = loader.Open(request, callback); 257 int32_t rv = loader.Open(request, callback);
258 if (rv == PP_ERROR_WOULDBLOCK) 258 if (rv == PP_ERROR_WOULDBLOCK)
259 rv = callback.WaitForResult(); 259 rv = callback.WaitForResult();
260 260
261 // We expect a failure. 261 // We expect a failure.
262 if (rv != PP_ERROR_NOACCESS) { 262 if (rv != PP_ERROR_NOACCESS) {
263 if (rv == PP_OK) { 263 if (rv == PP_OK) {
264 return "URLLoader::Open() failed to block a cross-origin request."; 264 return "URLLoader::Open() failed to block a cross-origin request.";
265 } else { 265 } else {
266 return ReportError("URLLoader::Open()", rv); 266 return ReportError("URLLoader::Open()", rv);
267 } 267 }
268 } 268 }
269 269
270 PASS(); 270 PASS();
271 } 271 }
272 272
273 // This test should cause a redirect and ensure that the loader runs 273 // This test should cause a redirect and ensure that the loader runs
274 // the callback, rather than following the redirect. 274 // the callback, rather than following the redirect.
275 std::string TestURLLoader::TestAuditURLRedirect() { 275 std::string TestURLLoader::TestAuditURLRedirect() {
276 pp::URLRequestInfo request; 276 pp::URLRequestInfo request;
277 // This path will cause the server to return a 301 redirect. 277 // This path will cause the server to return a 301 redirect.
278 request.SetURL("/server-redirect?www.google.com"); 278 request.SetURL("/server-redirect?www.google.com");
279 request.SetFollowRedirects(false); 279 request.SetFollowRedirects(false);
280 280
281 TestCompletionCallback callback; 281 TestCompletionCallback callback(instance_->pp_instance());
282 282
283 pp::URLLoader loader(*instance_); 283 pp::URLLoader loader(*instance_);
284 int32_t rv = loader.Open(request, callback); 284 int32_t rv = loader.Open(request, callback);
285 if (rv == PP_ERROR_WOULDBLOCK) 285 if (rv == PP_ERROR_WOULDBLOCK)
286 rv = callback.WaitForResult(); 286 rv = callback.WaitForResult();
287 if (rv != PP_OK) 287 if (rv != PP_OK)
288 return ReportError("URLLoader::Open", rv); 288 return ReportError("URLLoader::Open", rv);
289 289
290 // Checks that the response indicates a redirect, and that the URL 290 // Checks that the response indicates a redirect, and that the URL
291 // is correct. 291 // is correct.
292 pp::URLResponseInfo response_info(loader.GetResponseInfo()); 292 pp::URLResponseInfo response_info(loader.GetResponseInfo());
293 if (response_info.is_null()) 293 if (response_info.is_null())
294 return "URLLoader::GetResponseInfo returned null"; 294 return "URLLoader::GetResponseInfo returned null";
295 int32_t status_code = response_info.GetStatusCode(); 295 int32_t status_code = response_info.GetStatusCode();
296 if (status_code != 301) 296 if (status_code != 301)
297 return "Response status should be 301"; 297 return "Response status should be 301";
298 if (response_info.GetRedirectURL().AsString() != "www.google.com") 298 if (response_info.GetRedirectURL().AsString() != "www.google.com")
299 return "Redirect URL should be www.google.com"; 299 return "Redirect URL should be www.google.com";
300 300
301 PASS(); 301 PASS();
302 } 302 }
303 303
304 std::string TestURLLoader::TestAbortCalls() { 304 std::string TestURLLoader::TestAbortCalls() {
305 pp::URLRequestInfo request; 305 pp::URLRequestInfo request;
306 request.SetURL("test_url_loader_data/hello.txt"); 306 request.SetURL("test_url_loader_data/hello.txt");
307 307
308 TestCompletionCallback callback; 308 TestCompletionCallback callback(instance_->pp_instance());
309 int32_t rv; 309 int32_t rv;
310 310
311 // Abort |Open()|. 311 // Abort |Open()|.
312 { 312 {
313 callback.reset_run_count(); 313 callback.reset_run_count();
314 rv = pp::URLLoader(*instance_).Open(request, callback); 314 rv = pp::URLLoader(*instance_).Open(request, callback);
315 if (callback.run_count() > 0) 315 if (callback.run_count() > 0)
316 return "URLLoader::Open ran callback synchronously."; 316 return "URLLoader::Open ran callback synchronously.";
317 if (rv == PP_ERROR_WOULDBLOCK) { 317 if (rv == PP_ERROR_WOULDBLOCK) {
318 rv = callback.WaitForResult(); 318 rv = callback.WaitForResult();
(...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after
354 354
355 // TODO(viettrungluu): More abort tests (but add basic tests first). 355 // TODO(viettrungluu): More abort tests (but add basic tests first).
356 // Also test that Close() aborts properly. crbug.com/69457 356 // Also test that Close() aborts properly. crbug.com/69457
357 357
358 PASS(); 358 PASS();
359 } 359 }
360 360
361 // TODO(viettrungluu): Add tests for FollowRedirect, 361 // TODO(viettrungluu): Add tests for FollowRedirect,
362 // Get{Upload,Download}Progress, Close (including abort tests if applicable). 362 // Get{Upload,Download}Progress, Close (including abort tests if applicable).
363 // TODO(darin): Add a test for GrantUniversalAccess. 363 // TODO(darin): Add a test for GrantUniversalAccess.
OLDNEW
« no previous file with comments | « ppapi/tests/test_graphics_2d.cc ('k') | ppapi/tests/test_utils.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698