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(); |
} |