Index: ppapi/tests/test_file_ref.cc |
diff --git a/ppapi/tests/test_file_ref.cc b/ppapi/tests/test_file_ref.cc |
index 092601209b204068573bd10ed826cf05fa22fbd8..aff80e228f242925ee6b68c95800485f9fcdc21e 100644 |
--- a/ppapi/tests/test_file_ref.cc |
+++ b/ppapi/tests/test_file_ref.cc |
@@ -59,6 +59,7 @@ void TestFileRef::RunTests(const std::string& filter) { |
RUN_TEST_FORCEASYNC_AND_NOT(QueryAndTouchFile, filter); |
RUN_TEST_FORCEASYNC_AND_NOT(DeleteFileAndDirectory, filter); |
RUN_TEST_FORCEASYNC_AND_NOT(RenameFileAndDirectory, filter); |
+ RUN_TEST_FORCEASYNC_AND_NOT(Query, filter); |
#ifndef PPAPI_OS_NACL // NaCl can't run this test yet. |
RUN_TEST_FORCEASYNC_AND_NOT(FileNameEscaping, filter); |
#endif |
@@ -679,6 +680,45 @@ std::string TestFileRef::TestRenameFileAndDirectory() { |
PASS(); |
} |
+std::string TestFileRef::TestQuery() { |
+ TestCompletionCallback callback(instance_->pp_instance()); |
+ |
+ pp::FileSystem file_system(instance_, PP_FILESYSTEMTYPE_LOCALTEMPORARY); |
+ callback.WaitForResult(file_system.Open(1024, callback)); |
+ CHECK_CALLBACK_BEHAVIOR(callback); |
+ ASSERT_EQ(PP_OK, callback.result()); |
+ |
+ pp::FileRef file_ref(file_system, "/file"); |
+ pp::FileIO file_io(instance_); |
+ callback.WaitForResult(file_io.Open(file_ref, PP_FILEOPENFLAG_CREATE, |
+ callback)); |
+ CHECK_CALLBACK_BEHAVIOR(callback); |
+ ASSERT_EQ(PP_OK, callback.result()); |
+ |
+ // We touch the file so we can easily check access and modified time. |
+ callback.WaitForResult(file_io.Touch(0, 0, callback)); |
+ CHECK_CALLBACK_BEHAVIOR(callback); |
+ ASSERT_EQ(PP_OK, callback.result()); |
+ |
+ PP_FileInfo info; |
+ callback.WaitForResult(file_ref.Query(&info, callback)); |
+ CHECK_CALLBACK_BEHAVIOR(callback); |
+ ASSERT_EQ(PP_OK, callback.result()); |
+ |
+ ASSERT_EQ(0, info.size); |
+ ASSERT_EQ(PP_FILETYPE_REGULAR, info.type); |
+ ASSERT_EQ(PP_FILESYSTEMTYPE_LOCALTEMPORARY, info.system_type); |
+ ASSERT_DOUBLE_EQ(0.0, info.last_access_time); |
+ ASSERT_DOUBLE_EQ(0.0, info.last_modified_time); |
+ |
+ pp::FileRef missing_file_ref(file_system, "/missing_file"); |
+ callback.WaitForResult(missing_file_ref.Query(&info, callback)); |
+ CHECK_CALLBACK_BEHAVIOR(callback); |
+ ASSERT_EQ(PP_ERROR_FILENOTFOUND, callback.result()); |
+ |
+ PASS(); |
+} |
+ |
#ifndef PPAPI_OS_NACL |
std::string TestFileRef::TestFileNameEscaping() { |
TestCompletionCallback callback(instance_->pp_instance(), force_async_); |