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

Unified Diff: ppapi/tests/test_directory_reader.cc

Issue 14784002: Move DirectoryReader::ReadEntries to FileRef::ReadDirectoryEntries (Closed) Base URL: http://git.chromium.org/chromium/src.git@master
Patch Set: rebased Created 7 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « ppapi/tests/test_directory_reader.h ('k') | ppapi/tests/test_file_ref.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: ppapi/tests/test_directory_reader.cc
diff --git a/ppapi/tests/test_directory_reader.cc b/ppapi/tests/test_directory_reader.cc
deleted file mode 100644
index c0a65d06e423f2c14d97395ee5a437a9bb230d51..0000000000000000000000000000000000000000
--- a/ppapi/tests/test_directory_reader.cc
+++ /dev/null
@@ -1,182 +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.
-
-#include "ppapi/tests/test_directory_reader.h"
-
-#include <stdio.h>
-#include <set>
-#include <vector>
-
-#include "ppapi/c/pp_errors.h"
-#include "ppapi/c/ppb_file_io.h"
-#include "ppapi/cpp/dev/directory_entry_dev.h"
-#include "ppapi/cpp/dev/directory_reader_dev.h"
-#include "ppapi/cpp/file_io.h"
-#include "ppapi/cpp/file_ref.h"
-#include "ppapi/cpp/file_system.h"
-#include "ppapi/cpp/instance.h"
-#include "ppapi/tests/test_utils.h"
-#include "ppapi/tests/testing_instance.h"
-
-REGISTER_TEST_CASE(DirectoryReader);
-
-namespace {
-
-typedef std::vector<pp::DirectoryEntry_Dev> Entries;
-
-std::string IntegerToString(int value) {
- char result[12];
- sprintf(result, "%d", value);
- return result;
-}
-
-} // namespace
-
-bool TestDirectoryReader::Init() {
- return CheckTestingInterface() && EnsureRunningOverHTTP();
-}
-
-void TestDirectoryReader::RunTests(const std::string& filter) {
- RUN_CALLBACK_TEST(TestDirectoryReader, ReadEntries, filter);
-}
-
-int32_t TestDirectoryReader::DeleteDirectoryRecursively(pp::FileRef* dir) {
- if (!dir)
- return PP_ERROR_BADARGUMENT;
-
- TestCompletionCallback callback(instance_->pp_instance(), callback_type());
- TestCompletionCallbackWithOutput<Entries> output_callback(
- instance_->pp_instance(), callback_type());
-
- pp::DirectoryReader_Dev directory_reader(*dir);
- output_callback.WaitForResult(
- directory_reader.ReadEntries(output_callback.GetCallback()));
- int32_t rv = output_callback.result();
- if (rv != PP_OK && rv != PP_ERROR_FILENOTFOUND)
- return rv;
-
- Entries entries = output_callback.output();
- for (Entries::const_iterator it = entries.begin();
- it != entries.end(); ++it) {
- pp::FileRef file_ref = it->file_ref();
- if (it->file_type() == PP_FILETYPE_DIRECTORY) {
- rv = DeleteDirectoryRecursively(&file_ref);
- if (rv != PP_OK && rv != PP_ERROR_FILENOTFOUND)
- return rv;
- } else {
- callback.WaitForResult(file_ref.Delete(callback.GetCallback()));
- rv = callback.result();
- if (rv != PP_OK && rv != PP_ERROR_FILENOTFOUND)
- return rv;
- }
- }
- callback.WaitForResult(dir->Delete(callback.GetCallback()));
- return callback.result();
-}
-
-std::string TestDirectoryReader::TestReadEntries() {
- TestCompletionCallback callback(instance_->pp_instance(), callback_type());
- pp::FileSystem file_system(
- instance_, PP_FILESYSTEMTYPE_LOCALTEMPORARY);
- callback.WaitForResult(file_system.Open(1024, callback.GetCallback()));
- CHECK_CALLBACK_BEHAVIOR(callback);
- ASSERT_EQ(PP_OK, callback.result());
-
- // Setup testing directories and files.
- const char* test_dir_name = "/test_get_next_file";
- const char* file_prefix = "file_";
- const char* dir_prefix = "dir_";
-
- pp::FileRef test_dir(file_system, test_dir_name);
- int32_t rv = DeleteDirectoryRecursively(&test_dir);
- if (rv != PP_OK && rv != PP_ERROR_FILENOTFOUND)
- return ReportError("DeleteDirectoryRecursively", rv);
-
- callback.WaitForResult(test_dir.MakeDirectory(callback.GetCallback()));
- CHECK_CALLBACK_BEHAVIOR(callback);
- ASSERT_EQ(PP_OK, callback.result());
-
- std::set<std::string> expected_file_names;
- for (int i = 1; i < 4; ++i) {
- char buffer[40];
- sprintf(buffer, "%s/%s%d", test_dir_name, file_prefix, i);
- pp::FileRef file_ref(file_system, buffer);
-
- pp::FileIO file_io(instance_);
- callback.WaitForResult(
- file_io.Open(file_ref, PP_FILEOPENFLAG_CREATE, callback.GetCallback()));
- CHECK_CALLBACK_BEHAVIOR(callback);
- ASSERT_EQ(PP_OK, callback.result());
-
- expected_file_names.insert(buffer);
- }
-
- std::set<std::string> expected_dir_names;
- for (int i = 1; i < 4; ++i) {
- char buffer[40];
- sprintf(buffer, "%s/%s%d", test_dir_name, dir_prefix, i);
- pp::FileRef file_ref(file_system, buffer);
-
- callback.WaitForResult(file_ref.MakeDirectory(callback.GetCallback()));
- CHECK_CALLBACK_BEHAVIOR(callback);
- ASSERT_EQ(PP_OK, callback.result());
-
- expected_dir_names.insert(buffer);
- }
-
- // Test that |ReadEntries()| is able to fetch all directories and files that
- // we created.
- {
- TestCompletionCallbackWithOutput<Entries> output_callback(
- instance_->pp_instance(), callback_type());
-
- pp::DirectoryReader_Dev directory_reader(test_dir);
- output_callback.WaitForResult(
- directory_reader.ReadEntries(output_callback.GetCallback()));
- CHECK_CALLBACK_BEHAVIOR(output_callback);
- ASSERT_EQ(PP_OK, output_callback.result());
-
- Entries entries = output_callback.output();
- size_t sum = expected_file_names.size() + expected_dir_names.size();
- if (entries.size() != sum)
- return "Expected " + IntegerToString(sum) + " entries, got " +
- IntegerToString(entries.size());
-
- for (Entries::const_iterator it = entries.begin();
- it != entries.end(); ++it) {
- pp::FileRef file_ref = it->file_ref();
- std::string file_path = file_ref.GetPath().AsString();
- std::set<std::string>::iterator found =
- expected_file_names.find(file_path);
- if (found != expected_file_names.end()) {
- if (it->file_type() != PP_FILETYPE_REGULAR)
- return file_path + " should have been a regular file.";
- expected_file_names.erase(found);
- } else {
- found = expected_dir_names.find(file_path);
- if (found == expected_dir_names.end())
- return "Unexpected file path: " + file_path;
- if (it->file_type() != PP_FILETYPE_DIRECTORY)
- return file_path + " should have been a directory.";
- expected_dir_names.erase(found);
- }
- }
- if (!expected_file_names.empty() || !expected_dir_names.empty())
- return "Expected more file paths.";
- }
-
- // Test cancellation of asynchronous |ReadEntries()|.
- TestCompletionCallbackWithOutput<Entries> output_callback(
- instance_->pp_instance(), callback_type());
- {
-
- // Note that the directory reader will be deleted immediately.
- rv = pp::DirectoryReader_Dev(test_dir).ReadEntries(
- output_callback.GetCallback());
- }
- output_callback.WaitForAbortResult(rv);
- CHECK_CALLBACK_BEHAVIOR(output_callback);
-
- PASS();
-}
« no previous file with comments | « ppapi/tests/test_directory_reader.h ('k') | ppapi/tests/test_file_ref.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698