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

Unified Diff: net/base/directory_lister_unittest.cc

Issue 992733002: Remove //net (except for Android test stuff) and sdch (Closed) Base URL: git@github.com:domokit/mojo.git@master
Patch Set: Created 5 years, 9 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 | « net/base/directory_lister.cc ('k') | net/base/dns_reloader.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: net/base/directory_lister_unittest.cc
diff --git a/net/base/directory_lister_unittest.cc b/net/base/directory_lister_unittest.cc
deleted file mode 100644
index adc3d5e08d8682def77118c4d4fe68281da007be..0000000000000000000000000000000000000000
--- a/net/base/directory_lister_unittest.cc
+++ /dev/null
@@ -1,310 +0,0 @@
-// Copyright (c) 2012 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 <list>
-#include <utility>
-#include <vector>
-
-#include "base/bind.h"
-#include "base/files/file_path.h"
-#include "base/files/file_util.h"
-#include "base/files/scoped_temp_dir.h"
-#include "base/i18n/file_util_icu.h"
-#include "base/message_loop/message_loop.h"
-#include "base/run_loop.h"
-#include "base/strings/stringprintf.h"
-#include "net/base/directory_lister.h"
-#include "net/base/net_errors.h"
-#include "testing/gtest/include/gtest/gtest.h"
-#include "testing/platform_test.h"
-
-namespace net {
-
-namespace {
-
-const int kMaxDepth = 3;
-const int kBranchingFactor = 4;
-const int kFilesPerDirectory = 5;
-
-class ListerDelegate : public DirectoryLister::DirectoryListerDelegate {
- public:
- explicit ListerDelegate(bool recursive)
- : cancel_lister_on_list_file_(false),
- cancel_lister_on_list_done_(false),
- lister_(nullptr),
- done_(false),
- error_(-1),
- recursive_(recursive) {
- }
-
- // When set to true, this signals that the directory list operation should be
- // cancelled (And the run loop quit) in the first call to OnListFile.
- void set_cancel_lister_on_list_file(bool cancel_lister_on_list_file) {
- cancel_lister_on_list_file_ = cancel_lister_on_list_file;
- }
-
- // When set to true, this signals that the directory list operation should be
- // cancelled (And the run loop quit) when OnDone is called.
- void set_cancel_lister_on_list_done(bool cancel_lister_on_list_done) {
- cancel_lister_on_list_done_ = cancel_lister_on_list_done;
- }
-
- void OnListFile(const DirectoryLister::DirectoryListerData& data) override {
- ASSERT_FALSE(done_);
-
- file_list_.push_back(data.info);
- paths_.push_back(data.path);
- if (cancel_lister_on_list_file_) {
- lister_->Cancel();
- run_loop.Quit();
- }
- }
-
- void OnListDone(int error) override {
- ASSERT_FALSE(done_);
-
- done_ = true;
- error_ = error;
- if (recursive_)
- CheckRecursiveSort();
- else
- CheckSort();
-
- if (cancel_lister_on_list_done_)
- lister_->Cancel();
- run_loop.Quit();
- }
-
- void CheckRecursiveSort() {
- // Check that we got files in the right order.
- if (!file_list_.empty()) {
- for (size_t previous = 0, current = 1;
- current < file_list_.size();
- previous++, current++) {
- EXPECT_TRUE(base::i18n::LocaleAwareCompareFilenames(
- paths_[previous], paths_[current]));
- }
- }
- }
-
- void CheckSort() {
- // Check that we got files in the right order.
- if (!file_list_.empty()) {
- for (size_t previous = 0, current = 1;
- current < file_list_.size();
- previous++, current++) {
- // Directories should come before files.
- if (file_list_[previous].IsDirectory() &&
- !file_list_[current].IsDirectory()) {
- continue;
- }
- EXPECT_NE(FILE_PATH_LITERAL(".."),
- file_list_[current].GetName().BaseName().value());
- EXPECT_EQ(file_list_[previous].IsDirectory(),
- file_list_[current].IsDirectory());
- EXPECT_TRUE(base::i18n::LocaleAwareCompareFilenames(
- file_list_[previous].GetName(),
- file_list_[current].GetName()));
- }
- }
- }
-
- void Run(DirectoryLister* lister) {
- lister_ = lister;
- lister_->Start();
- run_loop.Run();
- }
-
- int error() const { return error_; }
-
- int num_files() const { return file_list_.size(); }
-
- bool done() const { return done_; }
-
- private:
- bool cancel_lister_on_list_file_;
- bool cancel_lister_on_list_done_;
-
- // This is owned by the individual tests, rather than the ListerDelegate.
- DirectoryLister* lister_;
-
- base::RunLoop run_loop;
-
- bool done_;
- int error_;
- bool recursive_;
-
- std::vector<base::FileEnumerator::FileInfo> file_list_;
- std::vector<base::FilePath> paths_;
-};
-
-} // namespace
-
-class DirectoryListerTest : public PlatformTest {
- public:
- DirectoryListerTest()
- : total_created_file_system_objects_in_temp_root_dir_(0),
- created_file_system_objects_in_temp_root_dir_(0) {
- }
-
- void SetUp() override {
- // Randomly create a directory structure of depth 3 in a temporary root
- // directory.
- std::list<std::pair<base::FilePath, int> > directories;
- ASSERT_TRUE(temp_root_dir_.CreateUniqueTempDir());
- directories.push_back(std::make_pair(temp_root_dir_.path(), 0));
- while (!directories.empty()) {
- std::pair<base::FilePath, int> dir_data = directories.front();
- directories.pop_front();
- for (int i = 0; i < kFilesPerDirectory; i++) {
- std::string file_name = base::StringPrintf("file_id_%d", i);
- base::FilePath file_path = dir_data.first.AppendASCII(file_name);
- base::File file(file_path,
- base::File::FLAG_CREATE | base::File::FLAG_WRITE);
- ASSERT_TRUE(file.IsValid());
- ++total_created_file_system_objects_in_temp_root_dir_;
- if (dir_data.first == temp_root_dir_.path())
- ++created_file_system_objects_in_temp_root_dir_;
- }
- if (dir_data.second < kMaxDepth - 1) {
- for (int i = 0; i < kBranchingFactor; i++) {
- std::string dir_name = base::StringPrintf("child_dir_%d", i);
- base::FilePath dir_path = dir_data.first.AppendASCII(dir_name);
- ASSERT_TRUE(base::CreateDirectory(dir_path));
- ++total_created_file_system_objects_in_temp_root_dir_;
- if (dir_data.first == temp_root_dir_.path())
- ++created_file_system_objects_in_temp_root_dir_;
- directories.push_back(std::make_pair(dir_path, dir_data.second + 1));
- }
- }
- }
- PlatformTest::SetUp();
- }
-
- const base::FilePath& root_path() const {
- return temp_root_dir_.path();
- }
-
- int expected_list_length_recursive() const {
- // List should include everything but the top level directory, and does not
- // include "..".
- return total_created_file_system_objects_in_temp_root_dir_;
- }
-
- int expected_list_length_non_recursive() const {
- // List should include everything in the top level directory, and "..".
- return created_file_system_objects_in_temp_root_dir_ + 1;
- }
-
- private:
- // Number of files and directories created in SetUp, excluding
- // |temp_root_dir_| itself. Includes all nested directories and their files.
- int total_created_file_system_objects_in_temp_root_dir_;
- // Number of files and directories created directly in |temp_root_dir_|.
- int created_file_system_objects_in_temp_root_dir_;
-
- base::ScopedTempDir temp_root_dir_;
-};
-
-TEST_F(DirectoryListerTest, BigDirTest) {
- ListerDelegate delegate(false);
- DirectoryLister lister(root_path(), &delegate);
- delegate.Run(&lister);
-
- EXPECT_TRUE(delegate.done());
- EXPECT_EQ(OK, delegate.error());
- EXPECT_EQ(expected_list_length_non_recursive(), delegate.num_files());
-}
-
-TEST_F(DirectoryListerTest, BigDirRecursiveTest) {
- ListerDelegate delegate(true);
- DirectoryLister lister(
- root_path(), true, DirectoryLister::FULL_PATH, &delegate);
- delegate.Run(&lister);
-
- EXPECT_TRUE(delegate.done());
- EXPECT_EQ(OK, delegate.error());
- EXPECT_EQ(expected_list_length_recursive(), delegate.num_files());
-}
-
-TEST_F(DirectoryListerTest, EmptyDirTest) {
- base::ScopedTempDir tempDir;
- EXPECT_TRUE(tempDir.CreateUniqueTempDir());
-
- ListerDelegate delegate(false);
- DirectoryLister lister(tempDir.path(), &delegate);
- delegate.Run(&lister);
-
- EXPECT_TRUE(delegate.done());
- EXPECT_EQ(OK, delegate.error());
- // Contains only the parent directory ("..").
- EXPECT_EQ(1, delegate.num_files());
-}
-
-// This doesn't really test much, except make sure calling cancel before any
-// callbacks are invoked doesn't crash. Can't wait for all tasks running on a
-// worker pool to complete, unfortunately.
-// TODO(mmenke): See if there's a way to make this fail more reliably on
-// regression.
-TEST_F(DirectoryListerTest, BasicCancelTest) {
- ListerDelegate delegate(false);
- scoped_ptr<DirectoryLister> lister(new DirectoryLister(
- root_path(), &delegate));
- lister->Start();
- lister->Cancel();
- base::RunLoop().RunUntilIdle();
-
- EXPECT_FALSE(delegate.done());
- EXPECT_EQ(0, delegate.num_files());
-}
-
-TEST_F(DirectoryListerTest, CancelOnListFileTest) {
- ListerDelegate delegate(false);
- DirectoryLister lister(root_path(), &delegate);
- delegate.set_cancel_lister_on_list_file(true);
- delegate.Run(&lister);
-
- EXPECT_FALSE(delegate.done());
- EXPECT_EQ(1, delegate.num_files());
-}
-
-TEST_F(DirectoryListerTest, CancelOnListDoneTest) {
- ListerDelegate delegate(false);
- DirectoryLister lister(root_path(), &delegate);
- delegate.set_cancel_lister_on_list_done(true);
- delegate.Run(&lister);
-
- EXPECT_TRUE(delegate.done());
- EXPECT_EQ(OK, delegate.error());
- EXPECT_EQ(expected_list_length_non_recursive(), delegate.num_files());
-}
-
-TEST_F(DirectoryListerTest, CancelOnLastElementTest) {
- base::ScopedTempDir tempDir;
- EXPECT_TRUE(tempDir.CreateUniqueTempDir());
-
- ListerDelegate delegate(false);
- DirectoryLister lister(tempDir.path(), &delegate);
- delegate.set_cancel_lister_on_list_file(true);
- delegate.Run(&lister);
-
- EXPECT_FALSE(delegate.done());
- // Contains only the parent directory ("..").
- EXPECT_EQ(1, delegate.num_files());
-}
-
-TEST_F(DirectoryListerTest, NoSuchDirTest) {
- base::ScopedTempDir tempDir;
- EXPECT_TRUE(tempDir.CreateUniqueTempDir());
-
- ListerDelegate delegate(false);
- DirectoryLister lister(
- tempDir.path().AppendASCII("this_path_does_not_exist"), &delegate);
- delegate.Run(&lister);
-
- EXPECT_EQ(ERR_FILE_NOT_FOUND, delegate.error());
- EXPECT_EQ(0, delegate.num_files());
-}
-
-} // namespace net
« no previous file with comments | « net/base/directory_lister.cc ('k') | net/base/dns_reloader.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698