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

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

Issue 9937001: PPAPI: Refactor ppapi test callbacks to ease testing blocking callbacks. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: sync Created 8 years, 8 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_url_loader.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) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 // 4 //
5 // Tests PPB_URLRequestInfo interface. 5 // Tests PPB_URLRequestInfo interface.
6 6
7 #include "ppapi/tests/test_url_request.h" 7 #include "ppapi/tests/test_url_request.h"
8 8
9 #include <string.h> 9 #include <string.h>
10 #include <string> 10 #include <string>
(...skipping 256 matching lines...) Expand 10 before | Expand all | Expand 10 after
267 } 267 }
268 ppb_var_interface_->Release(test_data[i].var); 268 ppb_var_interface_->Release(test_data[i].var);
269 } 269 }
270 270
271 ppb_core_interface_->ReleaseResource(url_request); 271 ppb_core_interface_->ReleaseResource(url_request);
272 return error; // == PASS() if empty. 272 return error; // == PASS() if empty.
273 } 273 }
274 274
275 std::string TestURLRequest::LoadAndCompareBody( 275 std::string TestURLRequest::LoadAndCompareBody(
276 PP_Resource url_request, const std::string& expected_body) { 276 PP_Resource url_request, const std::string& expected_body) {
277 TestCompletionCallback test_callback(instance_->pp_instance(), true); 277 TestCompletionCallback callback(instance_->pp_instance(), PP_REQUIRED);
278 pp::CompletionCallback callback = 278 callback.WaitForResult(ppb_url_loader_interface_->Open(
279 static_cast<pp::CompletionCallback>(test_callback); 279 url_loader_, url_request,
280 int32_t result = ppb_url_loader_interface_->Open( 280 callback.GetCallback().pp_completion_callback()));
281 url_loader_, url_request, callback.pp_completion_callback()); 281 CHECK_CALLBACK_BEHAVIOR(callback);
282 ASSERT_EQ(PP_OK_COMPLETIONPENDING, result); 282 ASSERT_EQ(PP_OK, callback.result());
283 result = test_callback.WaitForResult();
284 ASSERT_EQ(PP_OK, result);
285 283
286 std::string error; 284 std::string error;
287 PP_Resource url_response = 285 PP_Resource url_response =
288 ppb_url_loader_interface_->GetResponseInfo(url_loader_); 286 ppb_url_loader_interface_->GetResponseInfo(url_loader_);
289 if (url_response == kInvalidResource) { 287 if (url_response == kInvalidResource) {
290 error = "PPB_URLLoader::GetResponseInfo() returned invalid resource"; 288 error = "PPB_URLLoader::GetResponseInfo() returned invalid resource";
291 } else { 289 } else {
292 PP_Var status = ppb_url_response_interface_->GetProperty( 290 PP_Var status = ppb_url_response_interface_->GetProperty(
293 url_response, PP_URLRESPONSEPROPERTY_STATUSCODE); 291 url_response, PP_URLRESPONSEPROPERTY_STATUSCODE);
294 if (status.type != PP_VARTYPE_INT32 && status.value.as_int != 200) 292 if (status.type != PP_VARTYPE_INT32 && status.value.as_int != 200)
295 error = ReportError("PPB_URLLoader::Open() status", status.value.as_int); 293 error = ReportError("PPB_URLLoader::Open() status", status.value.as_int);
296 294
297 std::string actual_body; 295 std::string actual_body;
298 for (; error.empty();) { // Read the entire body in this loop. 296 for (; error.empty();) { // Read the entire body in this loop.
299 const size_t kBufferSize = 32; 297 const size_t kBufferSize = 32;
300 char buf[kBufferSize]; 298 char buf[kBufferSize];
301 result = ppb_url_loader_interface_->ReadResponseBody( 299 callback.WaitForResult(ppb_url_loader_interface_->ReadResponseBody(
302 url_loader_, buf, kBufferSize, 300 url_loader_, buf, kBufferSize,
303 callback.pp_completion_callback()); 301 callback.GetCallback().pp_completion_callback()));
304 if (PP_OK_COMPLETIONPENDING != result) { 302 if (callback.failed())
305 error = ReportError("PPB_URLLoader::ReadResponseBody()", result); 303 error.assign(callback.errors());
304 else if (callback.result() < PP_OK)
305 error.assign(ReportError("PPB_URLLoader::ReadResponseBody()",
306 callback.result()));
307 if (callback.result() <= PP_OK || callback.failed())
306 break; 308 break;
307 } 309 actual_body.append(buf, callback.result());
308 result = test_callback.WaitForResult();
309 if (result < PP_OK)
310 error = ReportError("PPB_URLLoader::ReadResponseBody()", result);
311 if (result <= PP_OK)
312 break;
313 actual_body.append(buf, result);
314 } 310 }
315 if (actual_body != expected_body) 311 if (actual_body != expected_body)
316 error = "PPB_URLLoader::ReadResponseBody() read unexpected response"; 312 error = "PPB_URLLoader::ReadResponseBody() read unexpected response";
317 } 313 }
318 ppb_core_interface_->ReleaseResource(url_response); 314 ppb_core_interface_->ReleaseResource(url_response);
319 return error; 315 return error;
320 } 316 }
321 317
322 // Tests 318 // Tests
323 // PP_Bool AppendDataToBody( 319 // PP_Bool AppendDataToBody(
(...skipping 67 matching lines...) Expand 10 before | Expand all | Expand 10 after
391 } 387 }
392 } 388 }
393 for (int i = 0; i < num_created; i++) { 389 for (int i = 0; i < num_created; i++) {
394 ppb_core_interface_->ReleaseResource(url_request_info[i]); 390 ppb_core_interface_->ReleaseResource(url_request_info[i]);
395 if (PP_TRUE == 391 if (PP_TRUE ==
396 ppb_url_request_interface_->IsURLRequestInfo(url_request_info[i])) 392 ppb_url_request_interface_->IsURLRequestInfo(url_request_info[i]))
397 error = "IsURLREquestInfo() succeeded after release"; 393 error = "IsURLREquestInfo() succeeded after release";
398 } 394 }
399 return error; // == PASS() if empty. 395 return error; // == PASS() if empty.
400 } 396 }
OLDNEW
« no previous file with comments | « ppapi/tests/test_url_loader.cc ('k') | ppapi/tests/test_utils.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698