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

Unified Diff: ppapi/native_client/tests/ppapi_browser/ppb_url_request_info/ppapi_ppb_url_request_info.cc

Issue 10762009: Remove dead NaCl tests and re-enabled fixed tests. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Reupload Created 8 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 side-by-side diff with in-line comments
Download patch
Index: ppapi/native_client/tests/ppapi_browser/ppb_url_request_info/ppapi_ppb_url_request_info.cc
diff --git a/ppapi/native_client/tests/ppapi_browser/ppb_url_request_info/ppapi_ppb_url_request_info.cc b/ppapi/native_client/tests/ppapi_browser/ppb_url_request_info/ppapi_ppb_url_request_info.cc
deleted file mode 100644
index d1c01fb066d4d29128f79c2daf09229242a1a56e..0000000000000000000000000000000000000000
--- a/ppapi/native_client/tests/ppapi_browser/ppb_url_request_info/ppapi_ppb_url_request_info.cc
+++ /dev/null
@@ -1,494 +0,0 @@
-// Copyright (c) 2011 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-// Tests PPB_URLRequestInfo.
-
-#include <string.h>
-
-#include "native_client/src/shared/platform/nacl_check.h"
-#include "native_client/tests/ppapi_test_lib/get_browser_interface.h"
-#include "native_client/tests/ppapi_test_lib/test_interface.h"
-#include "native_client/tests/ppapi_test_lib/testable_callback.h"
-
-#include "ppapi/c/pp_errors.h"
-#include "ppapi/c/ppb_core.h"
-#include "ppapi/c/ppb_file_io.h"
-#include "ppapi/c/ppb_file_ref.h"
-#include "ppapi/c/ppb_file_system.h"
-#include "ppapi/c/ppb_url_loader.h"
-#include "ppapi/c/ppb_url_request_info.h"
-#include "ppapi/c/ppb_url_response_info.h"
-#include "ppapi/c/ppb_var.h"
-
-namespace {
-
-// Tests
-// PP_Resource Create(PP_Instance instance).
-void TestCreate() {
- PP_Resource url_request = kInvalidResource;
-
- // Invalid instance -> invalid resource.
- url_request = PPBURLRequestInfo()->Create(kInvalidInstance);
- EXPECT(url_request == kInvalidResource);
-
- // Valid instance -> valid resource.
- url_request = PPBURLRequestInfo()->Create(pp_instance());
- EXPECT(url_request != kInvalidResource);
-
- PPBCore()->ReleaseResource(url_request);
- TEST_PASSED;
-}
-
-// Tests
-// PP_Bool IsURLRequestInfo(PP_Resource resource).
-void TestIsURLRequestInfo() {
- const PPB_URLRequestInfo* ppb = PPBURLRequestInfo();
-
- // Invalid / non-existent / non-URLRequestInfo resource -> false.
- EXPECT(PP_FALSE == ppb->IsURLRequestInfo(kInvalidResource));
- EXPECT(PP_FALSE == ppb->IsURLRequestInfo(kNotAResource));
- PP_Resource url_loader = PPBURLLoader()->Create(pp_instance());
- EXPECT(url_loader != kInvalidResource);
- EXPECT(PP_FALSE == ppb->IsURLRequestInfo(url_loader));
- PPBCore()->ReleaseResource(url_loader);
-
- // Current URLRequestInfo resource -> true.
- PP_Resource url_request = ppb->Create(pp_instance());
- EXPECT(PP_TRUE == ppb->IsURLRequestInfo(url_request));
-
- // Released URLRequestInfo resource -> false.
- PPBCore()->ReleaseResource(url_request);
- EXPECT(PP_FALSE == ppb->IsURLRequestInfo(url_request));
-
- TEST_PASSED;
-}
-
-// Tests
-// PP_Bool SetProperty(PP_Resource request,
-// PP_URLRequestProperty property,
-// struct PP_Var value);
-void TestSetProperty() {
- struct PropertyTestData {
- PropertyTestData(PP_URLRequestProperty _property,
- const std::string& _property_name,
- PP_Var _var, PP_Bool _expected_value) :
- property(_property), property_name(_property_name),
- var(_var), expected_value(_expected_value) {
- PPBVar()->AddRef(var);
- }
- PP_URLRequestProperty property;
- std::string property_name;
- PP_Var var;
- PP_Bool expected_value;
- };
-
- // All bool properties should accept PP_TRUE and PP_FALSE, while rejecting
- // all other variable types.
- #define ADD_BOOL_PROPERTY(_prop_name) \
- PropertyTestData(ID_STR(_prop_name), PP_MakeBool(PP_TRUE), PP_TRUE), \
- PropertyTestData(ID_STR(_prop_name), PP_MakeBool(PP_FALSE), PP_TRUE), \
- PropertyTestData(ID_STR(_prop_name), PP_MakeUndefined(), PP_FALSE), \
- PropertyTestData(ID_STR(_prop_name), PP_MakeNull(), PP_FALSE), \
- PropertyTestData(ID_STR(_prop_name), PP_MakeInt32(0), PP_FALSE), \
- PropertyTestData(ID_STR(_prop_name), PP_MakeDouble(0.0), PP_FALSE)
-
- // These property types are always invalid for string properties.
- #define ADD_STRING_INVALID_PROPERTIES(_prop_name) \
- PropertyTestData(ID_STR(_prop_name), PP_MakeNull(), PP_FALSE), \
- PropertyTestData(ID_STR(_prop_name), PP_MakeBool(PP_FALSE), PP_FALSE), \
- PropertyTestData(ID_STR(_prop_name), PP_MakeInt32(0), PP_FALSE), \
- PropertyTestData(ID_STR(_prop_name), PP_MakeDouble(0.0), PP_FALSE)
-
- #define ADD_INT_INVALID_PROPERTIES(_prop_name) \
- PropertyTestData(ID_STR(_prop_name), PP_MakeUndefined(), PP_FALSE), \
- PropertyTestData(ID_STR(_prop_name), PP_MakeNull(), PP_FALSE), \
- PropertyTestData(ID_STR(_prop_name), PP_MakeBool(PP_FALSE), PP_FALSE), \
- PropertyTestData(ID_STR(_prop_name), PP_MakeString(""), PP_FALSE), \
- PropertyTestData(ID_STR(_prop_name), PP_MakeDouble(0.0), PP_FALSE)
-
- // SetProperty accepts plenty of invalid values (malformed urls, negative
- // thresholds, etc). Error checking is delayed until request opening (aka url
- // loading).
- #define ID_STR(arg) arg, #arg
- PropertyTestData test_data[] = {
- ADD_BOOL_PROPERTY(PP_URLREQUESTPROPERTY_STREAMTOFILE),
- ADD_BOOL_PROPERTY(PP_URLREQUESTPROPERTY_FOLLOWREDIRECTS),
- ADD_BOOL_PROPERTY(PP_URLREQUESTPROPERTY_RECORDDOWNLOADPROGRESS),
- ADD_BOOL_PROPERTY(PP_URLREQUESTPROPERTY_RECORDUPLOADPROGRESS),
- ADD_BOOL_PROPERTY(PP_URLREQUESTPROPERTY_ALLOWCROSSORIGINREQUESTS),
- ADD_BOOL_PROPERTY(PP_URLREQUESTPROPERTY_ALLOWCREDENTIALS),
- ADD_STRING_INVALID_PROPERTIES(PP_URLREQUESTPROPERTY_URL),
- ADD_STRING_INVALID_PROPERTIES(PP_URLREQUESTPROPERTY_METHOD),
- ADD_STRING_INVALID_PROPERTIES(PP_URLREQUESTPROPERTY_HEADERS),
- ADD_STRING_INVALID_PROPERTIES(
- PP_URLREQUESTPROPERTY_CUSTOMREFERRERURL),
- ADD_STRING_INVALID_PROPERTIES(
- PP_URLREQUESTPROPERTY_CUSTOMCONTENTTRANSFERENCODING),
- ADD_INT_INVALID_PROPERTIES(
- PP_URLREQUESTPROPERTY_PREFETCHBUFFERUPPERTHRESHOLD),
- ADD_INT_INVALID_PROPERTIES(
- PP_URLREQUESTPROPERTY_PREFETCHBUFFERLOWERTHRESHOLD),
- PropertyTestData(ID_STR(PP_URLREQUESTPROPERTY_URL),
- PP_MakeString("http://www.google.com"), PP_TRUE),
- PropertyTestData(ID_STR(PP_URLREQUESTPROPERTY_URL),
- PP_MakeString("foo.jpg"), PP_TRUE),
- PropertyTestData(ID_STR(PP_URLREQUESTPROPERTY_METHOD),
- PP_MakeString("GET"), PP_TRUE),
- PropertyTestData(ID_STR(PP_URLREQUESTPROPERTY_METHOD),
- PP_MakeString("POST"), PP_TRUE),
- PropertyTestData(ID_STR(PP_URLREQUESTPROPERTY_HEADERS),
- PP_MakeString("Accept: text/plain"), PP_TRUE),
- PropertyTestData(ID_STR(PP_URLREQUESTPROPERTY_HEADERS),
- PP_MakeString(""), PP_TRUE),
- PropertyTestData(ID_STR(PP_URLREQUESTPROPERTY_CUSTOMREFERRERURL),
- PP_MakeString("http://www.google.com"), PP_TRUE),
- PropertyTestData(ID_STR(PP_URLREQUESTPROPERTY_CUSTOMREFERRERURL),
- PP_MakeString(""), PP_TRUE),
- PropertyTestData(ID_STR(PP_URLREQUESTPROPERTY_CUSTOMREFERRERURL),
- PP_MakeUndefined(), PP_TRUE),
- PropertyTestData(
- ID_STR(PP_URLREQUESTPROPERTY_CUSTOMCONTENTTRANSFERENCODING),
- PP_MakeString("base64"), PP_TRUE),
- PropertyTestData(
- ID_STR(PP_URLREQUESTPROPERTY_CUSTOMCONTENTTRANSFERENCODING),
- PP_MakeString(""), PP_TRUE),
- PropertyTestData(
- ID_STR(PP_URLREQUESTPROPERTY_CUSTOMCONTENTTRANSFERENCODING),
- PP_MakeUndefined(), PP_TRUE),
- PropertyTestData(ID_STR(PP_URLREQUESTPROPERTY_URL),
- PP_MakeUndefined(), PP_FALSE),
- PropertyTestData(ID_STR(PP_URLREQUESTPROPERTY_METHOD),
- PP_MakeUndefined(), PP_FALSE),
- PropertyTestData(ID_STR(PP_URLREQUESTPROPERTY_HEADERS),
- PP_MakeString("Proxy-Authorization: Basic dXNlcjpwYXNzd29yZA=="),
- PP_TRUE),
- PropertyTestData(ID_STR(PP_URLREQUESTPROPERTY_HEADERS),
- PP_MakeString("Accept-Encoding: *\n"
- "Accept-Charset: iso-8859-5, unicode-1-1;q=0.8"),
- PP_TRUE),
- PropertyTestData(
- ID_STR(PP_URLREQUESTPROPERTY_PREFETCHBUFFERUPPERTHRESHOLD),
- PP_MakeInt32(0), PP_TRUE),
- PropertyTestData(
- ID_STR(PP_URLREQUESTPROPERTY_PREFETCHBUFFERUPPERTHRESHOLD),
- PP_MakeInt32(100), PP_TRUE),
- PropertyTestData(
- ID_STR(PP_URLREQUESTPROPERTY_PREFETCHBUFFERLOWERTHRESHOLD),
- PP_MakeInt32(0), PP_TRUE),
- PropertyTestData(
- ID_STR(PP_URLREQUESTPROPERTY_PREFETCHBUFFERLOWERTHRESHOLD),
- PP_MakeInt32(100), PP_TRUE),
- PropertyTestData(ID_STR(PP_URLREQUESTPROPERTY_URL),
- PP_MakeString("::::::::::::"), PP_TRUE),
- PropertyTestData(ID_STR(PP_URLREQUESTPROPERTY_METHOD),
- PP_MakeString("INVALID"), PP_TRUE),
- PropertyTestData(
- ID_STR(PP_URLREQUESTPROPERTY_CUSTOMCONTENTTRANSFERENCODING),
- PP_MakeString("invalid"), PP_TRUE),
- PropertyTestData(
- ID_STR(PP_URLREQUESTPROPERTY_PREFETCHBUFFERUPPERTHRESHOLD),
- PP_MakeInt32(-100), PP_TRUE),
- PropertyTestData(
- ID_STR(PP_URLREQUESTPROPERTY_PREFETCHBUFFERLOWERTHRESHOLD),
- PP_MakeInt32(-100), PP_TRUE),
-
- };
-
- const PPB_URLRequestInfo* ppb = PPBURLRequestInfo();
- PP_Resource url_request = ppb->Create(pp_instance());
- EXPECT(url_request != kInvalidResource);
-
- for (size_t i = 0;
- i < sizeof(test_data)/sizeof(PropertyTestData);
- ++i) {
- if (test_data[i].expected_value !=
- ppb->SetProperty(url_request,
- test_data[i].property,
- test_data[i].var)) {
- nacl::string error_string = nacl::string("Setting property ") +
- test_data[i].property_name.c_str() + " to " +
- StringifyVar(test_data[i].var) + " did not return " +
- StringifyVar(PP_MakeBool(test_data[i].expected_value));
- // PostTestMessage will signal test failure here.
- PostTestMessage(__FUNCTION__, error_string.c_str());
- }
- PPBVar()->Release(test_data[i].var);
- }
-
- PPBCore()->ReleaseResource(url_request);
- TEST_PASSED;
-}
-
-
-void LoadAndCompareBody(PP_Resource request,
- const nacl::string& expected_body) {
- PP_Resource url_loader = PPBURLLoader()->Create(pp_instance());
- EXPECT(url_loader != kInvalidResource);
-
- TestableCallback callback(pp_instance(), true);
-
- int32_t result = PPBURLLoader()->Open(url_loader,
- request,
- callback.GetCallback());
- EXPECT(PP_OK_COMPLETIONPENDING == result);
- result = callback.WaitForResult();
- EXPECT(PP_OK == result);
-
- PP_Resource response = PPBURLLoader()->GetResponseInfo(url_loader);
- EXPECT(response != kInvalidResource);
-
- PP_Var status =
- PPBURLResponseInfo()->GetProperty(response,
- PP_URLRESPONSEPROPERTY_STATUSCODE);
- EXPECT_VAR_INT(status, 200);
-
- nacl::string actual_body;
-
- // Read the entire body in this loop.
- for (;;) {
- callback.Reset();
- const size_t kBufferSize = 32;
- char buf[kBufferSize];
- result = PPBURLLoader()->ReadResponseBody(url_loader,
- buf, kBufferSize,
- callback.GetCallback());
- EXPECT(PP_OK_COMPLETIONPENDING == result);
- result = callback.WaitForResult();
- EXPECT(result >= PP_OK);
- if (result < 0) {
- return;
- }
- if (PP_OK == result) {
- break;
- }
- actual_body.append(buf, result);
- }
-
- EXPECT(actual_body == expected_body);
-
- PPBCore()->ReleaseResource(response);
- PPBCore()->ReleaseResource(url_loader);
-}
-
-void SetupPOSTURLRequest(PP_Resource request) {
- const PPB_URLRequestInfo* ppb = PPBURLRequestInfo();
- EXPECT(PP_TRUE == ppb->SetProperty(request,
- PP_URLREQUESTPROPERTY_METHOD,
- PP_MakeString("POST")));
- EXPECT(PP_TRUE == ppb->SetProperty(request,
- PP_URLREQUESTPROPERTY_URL,
- PP_MakeString("/echo")));
-}
-
-void TestAppendDataToBody() {
- const PPB_URLRequestInfo* ppb = PPBURLRequestInfo();
- PP_Resource url_request = ppb->Create(pp_instance());
- EXPECT(url_request != kInvalidResource);
- nacl::string postdata("sample postdata");
-
- // Bad pointer passed in should fail to proxy.
- EXPECT(PP_FALSE == ppb->AppendDataToBody(url_request,
- NULL,
- 1));
- // Invalid resource should fail.
- EXPECT(PP_FALSE == ppb->AppendDataToBody(kInvalidResource,
- postdata.data(),
- postdata.length()));
- // Append data and POST to echoing web server.
- SetupPOSTURLRequest(url_request);
- EXPECT(PP_TRUE == ppb->AppendDataToBody(url_request,
- postdata.data(),
- postdata.length()));
- // Check for success.
- LoadAndCompareBody(url_request, postdata);
-
- PPBCore()->ReleaseResource(url_request);
- TEST_PASSED;
-}
-
-// TODO(elijahtaylor): Revisit this function when it is enabled. Parts could be
-// factored out and it could be smaller and more readable in general.
-void TestAppendFileToBody() {
- const int64_t kFileSystemSize = 1024;
- const PPB_URLRequestInfo* ppb = PPBURLRequestInfo();
- PP_Resource url_request = ppb->Create(pp_instance());
- EXPECT(url_request != kInvalidResource);
-
- // Creating a file reference PP_Resource is a multi-stage process.
- // First, create and open a new file system.
- const PPB_FileSystem* ppb_file_sys = PPBFileSystem();
- PP_Resource file_sys =
- ppb_file_sys->Create(pp_instance(),
- PP_FILESYSTEMTYPE_EXTERNAL);
- EXPECT(file_sys != kInvalidResource);
-
- TestableCallback callback(pp_instance(), true);
-
- int32_t result = ppb_file_sys->Open(file_sys,
- kFileSystemSize,
- callback.GetCallback());
- EXPECT(PP_OK_COMPLETIONPENDING == result);
- result = callback.WaitForResult();
-
- EXPECT(PP_OK == result);
-
- // Create a file reference, then tie it to a new writable file io resource.
- PP_Resource file_ref = PPBFileRef()->Create(file_sys, "/foo");
- EXPECT(file_ref != kInvalidResource);
- PP_Resource file_io = PPBFileIO()->Create(pp_instance());
- EXPECT(file_ref != kInvalidResource);
-
- callback.Reset();
- result = PPBFileIO()->Open(file_io,
- file_ref,
- PP_FILEOPENFLAG_WRITE | PP_FILEOPENFLAG_CREATE |
- PP_FILEOPENFLAG_TRUNCATE,
- callback.GetCallback());
-
- EXPECT(PP_OK_COMPLETIONPENDING == result);
- result = callback.WaitForResult();
- EXPECT(PP_OK == result);
-
- // Now we can write the contents of this string to the file io resource.
- nacl::string postdata("sample postdata from file");
- size_t total_written = 0;
- for (;;) {
- callback.Reset();
- result = PPBFileIO()->Write(file_io,
- total_written,
- postdata.data() + total_written,
- postdata.length() - total_written,
- callback.GetCallback());
-
- EXPECT(PP_OK_COMPLETIONPENDING == result);
- result = callback.WaitForResult();
-
- EXPECT(result >= PP_OK);
- if (result < 0)
- return;
- if (result == PP_OK)
- break;
- total_written += result;
- }
- PPBFileIO()->Close(file_io);
-
- const int64_t kReadUntilEOF = -1;
- const PP_Time kDummyTimeValue = 5; // seconds since epoch
-
- // Finally, set up the url_request to post to an echoing web server.
- SetupPOSTURLRequest(url_request);
- EXPECT(PP_TRUE == ppb->AppendFileToBody(url_request,
- file_ref,
- 0, // start offset
- postdata.length(),
- 0)); // expected last modified time
- LOG_TO_BROWSER("testing ordinary 'AppendFileToBody'");
- // Check for success.
- LoadAndCompareBody(url_request, postdata);
-
- // Use a new url_request for another POST request
- PPBCore()->ReleaseResource(url_request);
- url_request = ppb->Create(pp_instance());
- EXPECT(url_request != kInvalidResource);
-
- callback.Reset();
- // Set the timestamps so we can test 'expected last modified time'
- result = PPBFileIO()->Touch(file_ref,
- kDummyTimeValue+1,
- kDummyTimeValue,
- callback.GetCallback());
-
- SetupPOSTURLRequest(url_request);
- EXPECT(PP_TRUE == ppb->AppendFileToBody(url_request,
- file_ref,
- 0, // start offset
- postdata.length(),
- kDummyTimeValue));
- LOG_TO_BROWSER("testing 'expected last modified time'");
- LoadAndCompareBody(url_request, postdata);
-
- PPBCore()->ReleaseResource(url_request);
- url_request = ppb->Create(pp_instance());
- EXPECT(url_request != kInvalidResource);
-
- SetupPOSTURLRequest(url_request);
- // Test for failure on expected last modified time, it won't fail until an
- // actual request is made.
- EXPECT(PP_TRUE == ppb->AppendFileToBody(url_request,
- file_ref,
- 0, // start offset
- kReadUntilEOF, // number of bytes
- kDummyTimeValue - 1));
- LOG_TO_BROWSER("testing 'expected last modified time' failure");
- PP_Resource url_loader = PPBURLLoader()->Create(pp_instance());
- EXPECT(url_loader != kInvalidResource);
- callback.Reset();
-
- result = PPBURLLoader()->Open(url_loader,
- url_request,
- callback.GetCallback());
- EXPECT(PP_OK_COMPLETIONPENDING == result);
- result = callback.WaitForResult();
- EXPECT(PP_ERROR_FILECHANGED == result);
-
- // Invalid Resource is failure.
- EXPECT(PP_FALSE == ppb->AppendFileToBody(url_request,
- kInvalidResource,
- 0, // start offset
- 1, // length
- 0)); // expected last modified time
- // Test bad start offset.
- EXPECT(PP_FALSE == ppb->AppendFileToBody(url_request,
- file_ref,
- -1, // start offset
- 1, // length
- 0)); // expected last modified time
- // Test invalid length. (-1 means read until end of file, hence -2)
- EXPECT(PP_FALSE == ppb->AppendFileToBody(url_request,
- kInvalidResource,
- 0, // start offset
- -2, // length
- 0)); // expected last modified time
- PPBCore()->ReleaseResource(url_request);
- PPBCore()->ReleaseResource(file_ref);
- PPBCore()->ReleaseResource(file_sys);
- TEST_PASSED;
-}
-
-// Allocates and manipulates a large number of resources.
-void TestStress() {
- const int kManyResources = 500;
- PP_Resource url_request_info[kManyResources];
- const PPB_URLRequestInfo* ppb = PPBURLRequestInfo();
-
- for (int i = 0; i < kManyResources; i++) {
- url_request_info[i] = ppb->Create(pp_instance());
- EXPECT(url_request_info[i] != kInvalidResource);
- EXPECT(PP_TRUE == ppb->IsURLRequestInfo(url_request_info[i]));
- EXPECT(PP_TRUE == ppb->SetProperty(url_request_info[i],
- PP_URLREQUESTPROPERTY_STREAMTOFILE,
- PP_MakeBool(PP_FALSE)));
- }
- for (int i = 0; i < kManyResources; i++) {
- PPBCore()->ReleaseResource(url_request_info[i]);
- EXPECT(PP_FALSE == ppb->IsURLRequestInfo(url_request_info[i]));
- }
-
- TEST_PASSED;
-}
-
-} // namespace
-
-void SetupTests() {
- RegisterTest("TestCreate", TestCreate);
- RegisterTest("TestIsURLRequestInfo", TestIsURLRequestInfo);
- RegisterTest("TestSetProperty", TestSetProperty);
- RegisterTest("TestAppendDataToBody", TestAppendDataToBody);
- RegisterTest("TestAppendFileToBody", TestAppendFileToBody);
- RegisterTest("TestStress", TestStress);
-}
-
-void SetupPluginInterfaces() {
- // none
-}

Powered by Google App Engine
This is Rietveld 408576698