blob: 175ded6c645e1ffee85a7547a5142e7da1696d3b [file] [log] [blame]
// Copyright 2014 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.
#ifndef STORAGE_BROWSER_TEST_FILE_SYSTEM_TEST_FILE_SET_H_
#define STORAGE_BROWSER_TEST_FILE_SYSTEM_TEST_FILE_SET_H_
#include <stddef.h>
#include <stdint.h>
#include "base/files/file_path.h"
// Common test data structures and test cases.
namespace storage {
// For tests using blocking, this indicates whether a file should be blocked or
// allowed and additionally marks the expectation.
enum class TestBlockAction {
// Allow the transfer of the file/directory. Additionally, this indicates that
// all its children and parents are allowed.
ALLOWED,
// Block the file/directory.
BLOCKED,
// A parent/ancestor of this file/directory is blocked. This file/directory
// should never be reached on a recursive operation (if blocking is enabled).
PARENT_BLOCKED,
// Allow the transfer of the directory. Additionally, this indicates that some
// child/descendant of this directory is blocked.
CHILD_BLOCKED,
};
struct FileSystemTestCaseRecord {
bool is_directory;
const base::FilePath::CharType path[64];
int64_t data_file_size;
TestBlockAction block_action;
};
extern const FileSystemTestCaseRecord kRegularFileSystemTestCases[];
extern const size_t kRegularFileSystemTestCaseSize;
size_t GetRegularFileSystemTestCaseSize();
// Creates one file or directory specified by |record|.
void SetUpOneFileSystemTestCase(const base::FilePath& root_path,
const FileSystemTestCaseRecord& record);
// Creates the files and directories specified in kRegularTestCases.
void SetUpRegularFileSystemTestCases(const base::FilePath& root_path);
} // namespace storage
#endif // STORAGE_BROWSER_TEST_FILE_SYSTEM_TEST_FILE_SET_H_