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

Unified Diff: ppapi/tests/test_url_loader.cc

Issue 8682023: ppapi/tests: Enable URLLoader test out-of-process and via NaCl. (Closed) Base URL: svn://chrome-svn/chrome/trunk/src/
Patch Set: '' Created 9 years, 1 month 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
« no previous file with comments | « ppapi/ppapi_tests.gypi ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: ppapi/tests/test_url_loader.cc
===================================================================
--- ppapi/tests/test_url_loader.cc (revision 112058)
+++ ppapi/tests/test_url_loader.cc (working copy)
@@ -64,24 +64,53 @@
}
bool TestURLLoader::Init() {
+ if (!InitTestingInterface()) {
+ instance_->AppendError("Testing interface not available");
+ return false;
+ }
+
+ const PPB_FileIO* file_io_interface = static_cast<const PPB_FileIO*>(
+ pp::Module::Get()->GetBrowserInterface(PPB_FILEIO_INTERFACE));
+ if (testing_interface_->IsOutOfProcess() && file_io_interface) {
+ instance_->AppendError(
+ "FileIO interface is now supported by ppapi proxy: update this test!");
+ } else if (!testing_interface_->IsOutOfProcess() && !file_io_interface) {
+ instance_->AppendError("FileIO interface not available");
+ }
+
file_io_trusted_interface_ = static_cast<const PPB_FileIOTrusted*>(
pp::Module::Get()->GetBrowserInterface(PPB_FILEIOTRUSTED_INTERFACE));
- if (!file_io_trusted_interface_) {
- instance_->AppendError("FileIOTrusted interface not available");
- }
url_loader_trusted_interface_ = static_cast<const PPB_URLLoaderTrusted*>(
pp::Module::Get()->GetBrowserInterface(PPB_URLLOADERTRUSTED_INTERFACE));
- if (!url_loader_trusted_interface_) {
- instance_->AppendError("URLLoaderTrusted interface not available");
+ if (testing_interface_->IsOutOfProcess() && file_io_trusted_interface_) {
+ instance_->AppendError(
+ "FileIOTrusted interface is now supported by ppapi proxy: "
+ "update this test!");
+ } else if (!testing_interface_->IsOutOfProcess()) {
+ // Trusted interfaces are not supported under NaCl.
+#if !(defined __native_client__)
+ if (!file_io_trusted_interface_)
+ instance_->AppendError("FileIOTrusted interface not available");
+ if (!url_loader_trusted_interface_)
+ instance_->AppendError("URLLoaderTrusted interface not available");
+#else
+ if (file_io_trusted_interface_)
+ instance_->AppendError("FileIOTrusted interface is supported by NaCl");
+ if (url_loader_trusted_interface_)
+ instance_->AppendError("URLLoaderTrusted interface is supported by NaCl");
+#endif
}
- return InitTestingInterface() && EnsureRunningOverHTTP();
+ return EnsureRunningOverHTTP();
}
void TestURLLoader::RunTests(const std::string& filter) {
RUN_TEST_FORCEASYNC_AND_NOT(BasicGET, filter);
RUN_TEST_FORCEASYNC_AND_NOT(BasicPOST, filter);
- RUN_TEST_FORCEASYNC_AND_NOT(BasicFilePOST, filter);
- RUN_TEST_FORCEASYNC_AND_NOT(BasicFileRangePOST, filter);
+ // FileIO interface is not yet supported by ppapi/proxy.
+ if (!testing_interface_->IsOutOfProcess()) {
+ RUN_TEST_FORCEASYNC_AND_NOT(BasicFilePOST, filter);
+ RUN_TEST_FORCEASYNC_AND_NOT(BasicFileRangePOST, filter);
+ }
RUN_TEST_FORCEASYNC_AND_NOT(CompoundBodyPOST, filter);
RUN_TEST_FORCEASYNC_AND_NOT(EmptyDataPOST, filter);
RUN_TEST_FORCEASYNC_AND_NOT(BinaryDataPOST, filter);
@@ -434,31 +463,38 @@
if (rv != PP_OK)
return ReportError("URLLoader::FinishStreamingToFile", rv);
- pp::FileIO reader(instance_);
- rv = reader.Open(body, PP_FILEOPENFLAG_READ, callback);
- if (force_async_ && rv != PP_OK_COMPLETIONPENDING)
- return ReportError("FileIO::Open force_async", rv);
- if (rv == PP_OK_COMPLETIONPENDING)
- rv = callback.WaitForResult();
- if (rv != PP_OK)
- return ReportError("FileIO::Open", rv);
+ // FileIO is not yet supported by ppapi/proxy.
+ if (!testing_interface_->IsOutOfProcess()) {
+ pp::FileIO reader(instance_);
+ rv = reader.Open(body, PP_FILEOPENFLAG_READ, callback);
+ if (force_async_ && rv != PP_OK_COMPLETIONPENDING)
+ return ReportError("FileIO::Open force_async", rv);
+ if (rv == PP_OK_COMPLETIONPENDING)
+ rv = callback.WaitForResult();
+ if (rv != PP_OK)
+ return ReportError("FileIO::Open", rv);
- std::string data;
- std::string error = ReadEntireFile(&reader, &data);
- if (!error.empty())
- return error;
+ std::string data;
+ std::string error = ReadEntireFile(&reader, &data);
+ if (!error.empty())
+ return error;
- std::string expected_body = "hello\n";
- if (data.size() != expected_body.size())
- return "ReadEntireFile returned unexpected content length";
- if (data != expected_body)
- return "ReadEntireFile returned unexpected content";
+ std::string expected_body = "hello\n";
+ if (data.size() != expected_body.size())
+ return "ReadEntireFile returned unexpected content length";
+ if (data != expected_body)
+ return "ReadEntireFile returned unexpected content";
- int32_t file_descriptor = file_io_trusted_interface_->GetOSFileDescriptor(
- reader.pp_resource());
- if (file_descriptor < 0)
- return "FileIO::GetOSFileDescriptor() returned a bad file descriptor.";
-
+ // FileIOTrusted is not supported by NaCl or ppapi/proxy.
+ if (!testing_interface_->IsOutOfProcess()) {
+#if !(defined __native_client__)
+ int32_t file_descriptor = file_io_trusted_interface_->GetOSFileDescriptor(
+ reader.pp_resource());
+ if (file_descriptor < 0)
+ return "FileIO::GetOSFileDescriptor() returned a bad file descriptor.";
+#endif
+ }
+ }
PASS();
}
@@ -474,9 +510,11 @@
if (rv != PP_ERROR_NOACCESS)
return ReportError(
"Untrusted, unintended cross-origin request restriction", rv);
+#if !(defined __native_client__)
rv = OpenTrusted(request);
if (rv != PP_OK)
return ReportError("Trusted cross-origin request", rv);
+#endif
PASS();
}
@@ -511,12 +549,14 @@
if (rv != PP_ERROR_NOACCESS)
return ReportError(
"Untrusted Javascript URL request restriction", rv);
+#if !(defined __native_client__)
// TODO(bbudge) Fix Javascript URLs for trusted loaders.
// http://code.google.com/p/chromium/issues/detail?id=103062
// rv = OpenTrusted(request);
// if (rv == PP_ERROR_NOACCESS)
// return ReportError(
// "Trusted Javascript URL request", rv);
+#endif
PASS();
}
@@ -531,10 +571,11 @@
ASSERT_EQ(OpenUntrusted("tRaCe", ""), PP_ERROR_NOACCESS);
ASSERT_EQ(OpenUntrusted("POST\x0d\x0ax-csrf-token:\x20test1234", ""),
PP_ERROR_NOACCESS);
-
+#if !(defined __native_client__)
ASSERT_EQ(OpenTrusted("cOnNeCt", ""), PP_OK);
ASSERT_EQ(OpenTrusted("tRaCk", ""), PP_OK);
ASSERT_EQ(OpenTrusted("tRaCe", ""), PP_OK);
+#endif
PASS();
}
@@ -566,6 +607,7 @@
PP_ERROR_NOACCESS);
ASSERT_EQ(OpenUntrusted("GET", "Sec-foo:\n"), PP_ERROR_NOACCESS);
+#if !(defined __native_client__)
ASSERT_EQ(OpenTrusted("GET", "Accept-Charset:\n"), PP_OK);
ASSERT_EQ(OpenTrusted("GET", "Accept-Encoding:\n"), PP_OK);
ASSERT_EQ(OpenTrusted("GET", "Connection:\n"), PP_OK);
@@ -588,6 +630,7 @@
ASSERT_EQ(OpenTrusted(
"GET", "Proxy-Authorization: Basic dXNlcjpwYXNzd29yZA==:\n"), PP_OK);
ASSERT_EQ(OpenTrusted("GET", "Sec-foo:\n"), PP_OK);
+#endif
PASS();
}
@@ -602,10 +645,11 @@
if (rv != PP_ERROR_NOACCESS)
return ReportError(
"Untrusted request with custom referrer restriction", rv);
+#if !(defined __native_client__)
rv = OpenTrusted(request);
if (rv != PP_OK)
return ReportError("Trusted request with custom referrer", rv);
-
+#endif
PASS();
}
@@ -619,10 +663,11 @@
if (rv != PP_ERROR_NOACCESS)
return ReportError(
"Untrusted request with content-transfer-encoding restriction", rv);
+#if !(defined __native_client__)
rv = OpenTrusted(request);
if (rv != PP_OK)
return ReportError("Trusted request with content-transfer-encoding", rv);
-
+#endif
PASS();
}
« no previous file with comments | « ppapi/ppapi_tests.gypi ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698