refactor
This commit is contained in:
parent
6e7b030afa
commit
52df12493b
@ -149,7 +149,7 @@ public:
|
|||||||
|
|
||||||
[[nodiscard]] auto get_used_drive_space() const -> std::uint64_t override;
|
[[nodiscard]] auto get_used_drive_space() const -> std::uint64_t override;
|
||||||
|
|
||||||
[[nodiscard]] auto is_direct_only() const -> bool override { return true; }
|
[[nodiscard]] auto is_read_only() const -> bool override { return true; }
|
||||||
|
|
||||||
[[nodiscard]] auto is_directory(const std::string &api_path,
|
[[nodiscard]] auto is_directory(const std::string &api_path,
|
||||||
bool &exists) const -> api_error override;
|
bool &exists) const -> api_error override;
|
||||||
|
@ -31,13 +31,14 @@ class i_provider {
|
|||||||
INTERFACE_SETUP(i_provider);
|
INTERFACE_SETUP(i_provider);
|
||||||
|
|
||||||
public:
|
public:
|
||||||
[[nodiscard]] virtual auto
|
[[nodiscard]] virtual auto create_directory(const std::string &api_path,
|
||||||
create_directory(const std::string &api_path,
|
api_meta_map &meta)
|
||||||
api_meta_map &meta) -> api_error = 0;
|
-> api_error = 0;
|
||||||
|
|
||||||
[[nodiscard]] virtual auto create_directory_clone_source_meta(
|
[[nodiscard]] virtual auto
|
||||||
const std::string &source_api_path,
|
create_directory_clone_source_meta(const std::string &source_api_path,
|
||||||
const std::string &api_path) -> api_error = 0;
|
const std::string &api_path)
|
||||||
|
-> api_error = 0;
|
||||||
|
|
||||||
[[nodiscard]] virtual auto create_file(const std::string &api_path,
|
[[nodiscard]] virtual auto create_file(const std::string &api_path,
|
||||||
api_meta_map &meta) -> api_error = 0;
|
api_meta_map &meta) -> api_error = 0;
|
||||||
@ -46,8 +47,9 @@ public:
|
|||||||
get_api_path_from_source(const std::string &source_path,
|
get_api_path_from_source(const std::string &source_path,
|
||||||
std::string &api_path) const -> api_error = 0;
|
std::string &api_path) const -> api_error = 0;
|
||||||
|
|
||||||
[[nodiscard]] virtual auto get_directory_item_count(
|
[[nodiscard]] virtual auto
|
||||||
const std::string &api_path) const -> std::uint64_t = 0;
|
get_directory_item_count(const std::string &api_path) const
|
||||||
|
-> std::uint64_t = 0;
|
||||||
|
|
||||||
[[nodiscard]] virtual auto
|
[[nodiscard]] virtual auto
|
||||||
get_directory_items(const std::string &api_path,
|
get_directory_items(const std::string &api_path,
|
||||||
@ -56,35 +58,38 @@ public:
|
|||||||
[[nodiscard]] virtual auto get_file(const std::string &api_path,
|
[[nodiscard]] virtual auto get_file(const std::string &api_path,
|
||||||
api_file &file) const -> api_error = 0;
|
api_file &file) const -> api_error = 0;
|
||||||
|
|
||||||
[[nodiscard]] virtual auto
|
[[nodiscard]] virtual auto get_file_list(api_file_list &list) const
|
||||||
get_file_list(api_file_list &list) const -> api_error = 0;
|
-> api_error = 0;
|
||||||
|
|
||||||
[[nodiscard]] virtual auto
|
[[nodiscard]] virtual auto get_file_size(const std::string &api_path,
|
||||||
get_file_size(const std::string &api_path,
|
std::uint64_t &file_size) const
|
||||||
std::uint64_t &file_size) const -> api_error = 0;
|
-> api_error = 0;
|
||||||
|
|
||||||
[[nodiscard]] virtual auto
|
[[nodiscard]] virtual auto get_filesystem_item(const std::string &api_path,
|
||||||
get_filesystem_item(const std::string &api_path, bool directory,
|
bool directory,
|
||||||
filesystem_item &fsi) const -> api_error = 0;
|
filesystem_item &fsi) const
|
||||||
|
-> api_error = 0;
|
||||||
|
|
||||||
[[nodiscard]] virtual auto
|
[[nodiscard]] virtual auto
|
||||||
get_filesystem_item_and_file(const std::string &api_path, api_file &file,
|
get_filesystem_item_and_file(const std::string &api_path, api_file &file,
|
||||||
filesystem_item &fsi) const -> api_error = 0;
|
filesystem_item &fsi) const -> api_error = 0;
|
||||||
|
|
||||||
[[nodiscard]] virtual auto get_filesystem_item_from_source_path(
|
|
||||||
const std::string &source_path,
|
|
||||||
filesystem_item &fsi) const -> api_error = 0;
|
|
||||||
|
|
||||||
[[nodiscard]] virtual auto
|
[[nodiscard]] virtual auto
|
||||||
get_item_meta(const std::string &api_path,
|
get_filesystem_item_from_source_path(const std::string &source_path,
|
||||||
api_meta_map &meta) const -> api_error = 0;
|
filesystem_item &fsi) const
|
||||||
|
-> api_error = 0;
|
||||||
|
|
||||||
[[nodiscard]] virtual auto
|
[[nodiscard]] virtual auto get_item_meta(const std::string &api_path,
|
||||||
get_item_meta(const std::string &api_path, const std::string &key,
|
api_meta_map &meta) const
|
||||||
std::string &value) const -> api_error = 0;
|
-> api_error = 0;
|
||||||
|
|
||||||
[[nodiscard]] virtual auto
|
[[nodiscard]] virtual auto get_item_meta(const std::string &api_path,
|
||||||
get_pinned_files() const -> std::vector<std::string> = 0;
|
const std::string &key,
|
||||||
|
std::string &value) const
|
||||||
|
-> api_error = 0;
|
||||||
|
|
||||||
|
[[nodiscard]] virtual auto get_pinned_files() const
|
||||||
|
-> std::vector<std::string> = 0;
|
||||||
|
|
||||||
[[nodiscard]] virtual auto get_provider_type() const -> provider_type = 0;
|
[[nodiscard]] virtual auto get_provider_type() const -> provider_type = 0;
|
||||||
|
|
||||||
@ -94,8 +99,6 @@ public:
|
|||||||
|
|
||||||
[[nodiscard]] virtual auto get_used_drive_space() const -> std::uint64_t = 0;
|
[[nodiscard]] virtual auto get_used_drive_space() const -> std::uint64_t = 0;
|
||||||
|
|
||||||
[[nodiscard]] virtual auto is_direct_only() const -> bool = 0;
|
|
||||||
|
|
||||||
[[nodiscard]] virtual auto is_directory(const std::string &api_path,
|
[[nodiscard]] virtual auto is_directory(const std::string &api_path,
|
||||||
bool &exists) const -> api_error = 0;
|
bool &exists) const -> api_error = 0;
|
||||||
|
|
||||||
@ -107,6 +110,8 @@ public:
|
|||||||
|
|
||||||
[[nodiscard]] virtual auto is_online() const -> bool = 0;
|
[[nodiscard]] virtual auto is_online() const -> bool = 0;
|
||||||
|
|
||||||
|
[[nodiscard]] virtual auto is_read_only() const -> bool = 0;
|
||||||
|
|
||||||
[[nodiscard]] virtual auto is_rename_supported() const -> bool = 0;
|
[[nodiscard]] virtual auto is_rename_supported() const -> bool = 0;
|
||||||
|
|
||||||
[[nodiscard]] virtual auto
|
[[nodiscard]] virtual auto
|
||||||
@ -114,36 +119,38 @@ public:
|
|||||||
std::uint64_t offset, data_buffer &data,
|
std::uint64_t offset, data_buffer &data,
|
||||||
stop_type &stop_requested) -> api_error = 0;
|
stop_type &stop_requested) -> api_error = 0;
|
||||||
|
|
||||||
[[nodiscard]] virtual auto
|
[[nodiscard]] virtual auto remove_directory(const std::string &api_path)
|
||||||
remove_directory(const std::string &api_path) -> api_error = 0;
|
-> api_error = 0;
|
||||||
|
|
||||||
[[nodiscard]] virtual auto
|
[[nodiscard]] virtual auto remove_file(const std::string &api_path)
|
||||||
remove_file(const std::string &api_path) -> api_error = 0;
|
-> api_error = 0;
|
||||||
|
|
||||||
[[nodiscard]] virtual auto
|
[[nodiscard]] virtual auto remove_item_meta(const std::string &api_path,
|
||||||
remove_item_meta(const std::string &api_path,
|
const std::string &key)
|
||||||
const std::string &key) -> api_error = 0;
|
-> api_error = 0;
|
||||||
|
|
||||||
[[nodiscard]] virtual auto
|
[[nodiscard]] virtual auto rename_file(const std::string &from_api_path,
|
||||||
rename_file(const std::string &from_api_path,
|
const std::string &to_api_path)
|
||||||
const std::string &to_api_path) -> api_error = 0;
|
-> api_error = 0;
|
||||||
|
|
||||||
[[nodiscard]] virtual auto
|
[[nodiscard]] virtual auto set_item_meta(const std::string &api_path,
|
||||||
set_item_meta(const std::string &api_path, const std::string &key,
|
const std::string &key,
|
||||||
const std::string &value) -> api_error = 0;
|
const std::string &value)
|
||||||
|
-> api_error = 0;
|
||||||
|
|
||||||
[[nodiscard]] virtual auto
|
[[nodiscard]] virtual auto set_item_meta(const std::string &api_path,
|
||||||
set_item_meta(const std::string &api_path,
|
const api_meta_map &meta)
|
||||||
const api_meta_map &meta) -> api_error = 0;
|
-> api_error = 0;
|
||||||
|
|
||||||
[[nodiscard]] virtual auto start(api_item_added_callback api_item_added,
|
[[nodiscard]] virtual auto start(api_item_added_callback api_item_added,
|
||||||
i_file_manager *mgr) -> bool = 0;
|
i_file_manager *mgr) -> bool = 0;
|
||||||
|
|
||||||
virtual void stop() = 0;
|
virtual void stop() = 0;
|
||||||
|
|
||||||
[[nodiscard]] virtual auto
|
[[nodiscard]] virtual auto upload_file(const std::string &api_path,
|
||||||
upload_file(const std::string &api_path, const std::string &source_path,
|
const std::string &source_path,
|
||||||
stop_type &stop_requested) -> api_error = 0;
|
stop_type &stop_requested)
|
||||||
|
-> api_error = 0;
|
||||||
};
|
};
|
||||||
} // namespace repertory
|
} // namespace repertory
|
||||||
|
|
||||||
|
@ -117,7 +117,7 @@ public:
|
|||||||
return type;
|
return type;
|
||||||
}
|
}
|
||||||
|
|
||||||
[[nodiscard]] auto is_direct_only() const -> bool override { return false; }
|
[[nodiscard]] auto is_read_only() const -> bool override { return false; }
|
||||||
|
|
||||||
[[nodiscard]] auto is_directory(const std::string &api_path,
|
[[nodiscard]] auto is_directory(const std::string &api_path,
|
||||||
bool &exists) const -> api_error override;
|
bool &exists) const -> api_error override;
|
||||||
|
@ -90,7 +90,7 @@ public:
|
|||||||
|
|
||||||
[[nodiscard]] auto get_total_drive_space() const -> std::uint64_t override;
|
[[nodiscard]] auto get_total_drive_space() const -> std::uint64_t override;
|
||||||
|
|
||||||
[[nodiscard]] auto is_direct_only() const -> bool override { return false; }
|
[[nodiscard]] auto is_read_only() const -> bool override { return false; }
|
||||||
|
|
||||||
[[nodiscard]] auto is_directory(const std::string &api_path,
|
[[nodiscard]] auto is_directory(const std::string &api_path,
|
||||||
bool &exists) const -> api_error override;
|
bool &exists) const -> api_error override;
|
||||||
|
@ -564,7 +564,7 @@ void *fuse_drive::init_impl(struct fuse_conn_info *conn) {
|
|||||||
|
|
||||||
fm_ = std::make_unique<file_manager>(config_, provider_);
|
fm_ = std::make_unique<file_manager>(config_, provider_);
|
||||||
server_ = std::make_unique<full_server>(config_, provider_, *fm_);
|
server_ = std::make_unique<full_server>(config_, provider_, *fm_);
|
||||||
if (not provider_.is_direct_only()) {
|
if (not provider_.is_read_only()) {
|
||||||
eviction_ = std::make_unique<eviction>(provider_, config_, *fm_);
|
eviction_ = std::make_unique<eviction>(provider_, config_, *fm_);
|
||||||
}
|
}
|
||||||
directory_cache_ = std::make_unique<directory_cache>();
|
directory_cache_ = std::make_unique<directory_cache>();
|
||||||
|
@ -609,7 +609,7 @@ auto winfsp_drive::Mounted(PVOID host) -> NTSTATUS {
|
|||||||
polling::instance().start(&config_);
|
polling::instance().start(&config_);
|
||||||
fm_ = std::make_unique<file_manager>(config_, provider_);
|
fm_ = std::make_unique<file_manager>(config_, provider_);
|
||||||
server_ = std::make_unique<full_server>(config_, provider_, *fm_);
|
server_ = std::make_unique<full_server>(config_, provider_, *fm_);
|
||||||
if (not provider_.is_direct_only()) {
|
if (not provider_.is_read_only()) {
|
||||||
eviction_ = std::make_unique<eviction>(provider_, config_, *fm_);
|
eviction_ = std::make_unique<eviction>(provider_, config_, *fm_);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -110,7 +110,7 @@ file_manager::file_manager(app_config &config, i_provider &provider)
|
|||||||
utils::path::combine(config_.get_data_directory(), {"file_manager.db"}),
|
utils::path::combine(config_.get_data_directory(), {"file_manager.db"}),
|
||||||
sql_create_tables);
|
sql_create_tables);
|
||||||
|
|
||||||
if (not provider_.is_direct_only()) {
|
if (not provider_.is_read_only()) {
|
||||||
E_SUBSCRIBE_EXACT(file_upload_completed,
|
E_SUBSCRIBE_EXACT(file_upload_completed,
|
||||||
[this](const file_upload_completed &completed) {
|
[this](const file_upload_completed &completed) {
|
||||||
this->upload_completed(completed);
|
this->upload_completed(completed);
|
||||||
@ -190,7 +190,7 @@ auto file_manager::create(const std::string &api_path, api_meta_map &meta,
|
|||||||
auto file_manager::evict_file(const std::string &api_path) -> bool {
|
auto file_manager::evict_file(const std::string &api_path) -> bool {
|
||||||
REPERTORY_USES_FUNCTION_NAME();
|
REPERTORY_USES_FUNCTION_NAME();
|
||||||
|
|
||||||
if (provider_.is_direct_only()) {
|
if (provider_.is_read_only()) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -330,7 +330,7 @@ auto file_manager::get_open_handle_count() const -> std::size_t {
|
|||||||
auto file_manager::get_stored_downloads() const -> std::vector<json> {
|
auto file_manager::get_stored_downloads() const -> std::vector<json> {
|
||||||
REPERTORY_USES_FUNCTION_NAME();
|
REPERTORY_USES_FUNCTION_NAME();
|
||||||
|
|
||||||
if (provider_.is_direct_only()) {
|
if (provider_.is_read_only()) {
|
||||||
return {};
|
return {};
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -408,7 +408,7 @@ auto file_manager::has_no_open_file_handles() const -> bool {
|
|||||||
}
|
}
|
||||||
|
|
||||||
auto file_manager::is_processing(const std::string &api_path) const -> bool {
|
auto file_manager::is_processing(const std::string &api_path) const -> bool {
|
||||||
if (provider_.is_direct_only()) {
|
if (provider_.is_read_only()) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -491,7 +491,7 @@ void file_manager::queue_upload(const i_open_file &file) {
|
|||||||
|
|
||||||
void file_manager::queue_upload(const std::string &api_path,
|
void file_manager::queue_upload(const std::string &api_path,
|
||||||
const std::string &source_path, bool no_lock) {
|
const std::string &source_path, bool no_lock) {
|
||||||
if (provider_.is_direct_only()) {
|
if (provider_.is_read_only()) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -581,7 +581,7 @@ void file_manager::remove_upload(const std::string &api_path) {
|
|||||||
void file_manager::remove_upload(const std::string &api_path, bool no_lock) {
|
void file_manager::remove_upload(const std::string &api_path, bool no_lock) {
|
||||||
REPERTORY_USES_FUNCTION_NAME();
|
REPERTORY_USES_FUNCTION_NAME();
|
||||||
|
|
||||||
if (provider_.is_direct_only()) {
|
if (provider_.is_read_only()) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -786,7 +786,7 @@ void file_manager::start() {
|
|||||||
{"timed_out_close", polling::frequency::second,
|
{"timed_out_close", polling::frequency::second,
|
||||||
[this]() { this->close_timed_out_files(); }});
|
[this]() { this->close_timed_out_files(); }});
|
||||||
|
|
||||||
if (provider_.is_direct_only()) {
|
if (provider_.is_read_only()) {
|
||||||
stop_requested_ = false;
|
stop_requested_ = false;
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@ -933,7 +933,7 @@ void file_manager::stop() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
void file_manager::store_resume(const i_open_file &file) {
|
void file_manager::store_resume(const i_open_file &file) {
|
||||||
if (provider_.is_direct_only()) {
|
if (provider_.is_read_only()) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -69,7 +69,7 @@ open_file::open_file(std::uint64_t chunk_size, std::uint8_t chunk_timeout,
|
|||||||
|
|
||||||
if (not fsi.directory) {
|
if (not fsi.directory) {
|
||||||
nf_ = utils::file::file::open_or_create_file(fsi.source_path,
|
nf_ = utils::file::file::open_or_create_file(fsi.source_path,
|
||||||
provider_.is_direct_only());
|
provider_.is_read_only());
|
||||||
set_api_error(*nf_ ? api_error::success : api_error::os_error);
|
set_api_error(*nf_ ? api_error::success : api_error::os_error);
|
||||||
if (get_api_error() == api_error::success) {
|
if (get_api_error() == api_error::success) {
|
||||||
if (read_state.has_value()) {
|
if (read_state.has_value()) {
|
||||||
@ -81,7 +81,7 @@ open_file::open_file(std::uint64_t chunk_size, std::uint8_t chunk_timeout,
|
|||||||
false);
|
false);
|
||||||
|
|
||||||
auto file_size = nf_->size();
|
auto file_size = nf_->size();
|
||||||
if (provider_.is_direct_only() || file_size == fsi.size) {
|
if (provider_.is_read_only() || file_size == fsi.size) {
|
||||||
read_state_.set(0U, read_state_.size(), true);
|
read_state_.set(0U, read_state_.size(), true);
|
||||||
} else if (not nf_->truncate(fsi.size)) {
|
} else if (not nf_->truncate(fsi.size)) {
|
||||||
set_api_error(api_error::os_error);
|
set_api_error(api_error::os_error);
|
||||||
@ -351,7 +351,7 @@ auto open_file::read(std::size_t read_size, std::uint64_t read_offset,
|
|||||||
const auto read_from_source = [this, &data, &read_offset,
|
const auto read_from_source = [this, &data, &read_offset,
|
||||||
&read_size]() -> api_error {
|
&read_size]() -> api_error {
|
||||||
return do_io([this, &data, &read_offset, &read_size]() -> api_error {
|
return do_io([this, &data, &read_offset, &read_size]() -> api_error {
|
||||||
if (provider_.is_direct_only()) {
|
if (provider_.is_read_only()) {
|
||||||
return provider_.read_file_bytes(fsi_.api_path, read_size, read_offset,
|
return provider_.read_file_bytes(fsi_.api_path, read_size, read_offset,
|
||||||
data, stop_requested_);
|
data, stop_requested_);
|
||||||
}
|
}
|
||||||
@ -531,7 +531,7 @@ auto open_file::write(std::uint64_t write_offset, const data_buffer &data,
|
|||||||
|
|
||||||
bytes_written = 0U;
|
bytes_written = 0U;
|
||||||
|
|
||||||
if (fsi_.directory || provider_.is_direct_only()) {
|
if (fsi_.directory || provider_.is_read_only()) {
|
||||||
return api_error::invalid_operation;
|
return api_error::invalid_operation;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -119,7 +119,7 @@ auto open_file_base::can_close() const -> bool {
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (provider_.is_direct_only()) {
|
if (provider_.is_read_only()) {
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -431,7 +431,7 @@ auto base_provider::is_file_writeable(const std::string &api_path) const
|
|||||||
void base_provider::remove_deleted_files(bool source_only) {
|
void base_provider::remove_deleted_files(bool source_only) {
|
||||||
REPERTORY_USES_FUNCTION_NAME();
|
REPERTORY_USES_FUNCTION_NAME();
|
||||||
|
|
||||||
if (not is_direct_only()) {
|
if (not is_read_only()) {
|
||||||
auto source_list =
|
auto source_list =
|
||||||
utils::file::directory{config_.get_cache_directory()}.get_files();
|
utils::file::directory{config_.get_cache_directory()}.get_files();
|
||||||
for (auto &&source_file : source_list) {
|
for (auto &&source_file : source_list) {
|
||||||
|
@ -101,7 +101,7 @@ public:
|
|||||||
|
|
||||||
MOCK_METHOD(std::uint64_t, get_used_drive_space, (), (const, override));
|
MOCK_METHOD(std::uint64_t, get_used_drive_space, (), (const, override));
|
||||||
|
|
||||||
MOCK_METHOD(bool, is_direct_only, (), (const, override));
|
MOCK_METHOD(bool, is_read_only, (), (const, override));
|
||||||
|
|
||||||
MOCK_METHOD(api_error, is_directory,
|
MOCK_METHOD(api_error, is_directory,
|
||||||
(const std::string &api_path, bool &exists), (const, override));
|
(const std::string &api_path, bool &exists), (const, override));
|
||||||
|
@ -76,7 +76,7 @@ protected:
|
|||||||
std::atomic<std::size_t> file_manager_test::inst{0U};
|
std::atomic<std::size_t> file_manager_test::inst{0U};
|
||||||
|
|
||||||
TEST_F(file_manager_test, can_start_and_stop) {
|
TEST_F(file_manager_test, can_start_and_stop) {
|
||||||
EXPECT_CALL(mp, is_direct_only()).WillRepeatedly(Return(false));
|
EXPECT_CALL(mp, is_read_only()).WillRepeatedly(Return(false));
|
||||||
|
|
||||||
event_consumer es("service_started", [](const event &e) {
|
event_consumer es("service_started", [](const event &e) {
|
||||||
const auto &ee = dynamic_cast<const service_started &>(e);
|
const auto &ee = dynamic_cast<const service_started &>(e);
|
||||||
@ -107,7 +107,7 @@ TEST_F(file_manager_test, can_start_and_stop) {
|
|||||||
TEST_F(file_manager_test, can_create_and_close_file) {
|
TEST_F(file_manager_test, can_create_and_close_file) {
|
||||||
cfg->set_enable_chunk_downloader_timeout(true);
|
cfg->set_enable_chunk_downloader_timeout(true);
|
||||||
|
|
||||||
EXPECT_CALL(mp, is_direct_only()).WillRepeatedly(Return(false));
|
EXPECT_CALL(mp, is_read_only()).WillRepeatedly(Return(false));
|
||||||
|
|
||||||
polling::instance().start(cfg.get());
|
polling::instance().start(cfg.get());
|
||||||
|
|
||||||
@ -215,7 +215,7 @@ TEST_F(file_manager_test, can_create_and_close_file) {
|
|||||||
TEST_F(file_manager_test, can_open_and_close_file) {
|
TEST_F(file_manager_test, can_open_and_close_file) {
|
||||||
cfg->set_enable_chunk_downloader_timeout(true);
|
cfg->set_enable_chunk_downloader_timeout(true);
|
||||||
|
|
||||||
EXPECT_CALL(mp, is_direct_only()).WillRepeatedly(Return(false));
|
EXPECT_CALL(mp, is_read_only()).WillRepeatedly(Return(false));
|
||||||
|
|
||||||
polling::instance().start(cfg.get());
|
polling::instance().start(cfg.get());
|
||||||
file_manager fm(*cfg, mp);
|
file_manager fm(*cfg, mp);
|
||||||
@ -319,7 +319,7 @@ TEST_F(file_manager_test, can_open_and_close_file) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
TEST_F(file_manager_test, can_open_and_close_multiple_handles_for_same_file) {
|
TEST_F(file_manager_test, can_open_and_close_multiple_handles_for_same_file) {
|
||||||
EXPECT_CALL(mp, is_direct_only()).WillRepeatedly(Return(false));
|
EXPECT_CALL(mp, is_read_only()).WillRepeatedly(Return(false));
|
||||||
|
|
||||||
polling::instance().start(cfg.get());
|
polling::instance().start(cfg.get());
|
||||||
file_manager fm(*cfg, mp);
|
file_manager fm(*cfg, mp);
|
||||||
@ -381,7 +381,7 @@ TEST_F(file_manager_test, can_open_and_close_multiple_handles_for_same_file) {
|
|||||||
|
|
||||||
TEST_F(file_manager_test,
|
TEST_F(file_manager_test,
|
||||||
download_is_stored_after_write_if_partially_downloaded) {
|
download_is_stored_after_write_if_partially_downloaded) {
|
||||||
EXPECT_CALL(mp, is_direct_only()).WillRepeatedly(Return(false));
|
EXPECT_CALL(mp, is_read_only()).WillRepeatedly(Return(false));
|
||||||
|
|
||||||
file_manager fm(*cfg, mp);
|
file_manager fm(*cfg, mp);
|
||||||
fm.start();
|
fm.start();
|
||||||
@ -531,7 +531,7 @@ TEST_F(file_manager_test,
|
|||||||
TEST_F(file_manager_test, upload_occurs_after_write_if_fully_downloaded) {
|
TEST_F(file_manager_test, upload_occurs_after_write_if_fully_downloaded) {
|
||||||
cfg->set_enable_chunk_downloader_timeout(true);
|
cfg->set_enable_chunk_downloader_timeout(true);
|
||||||
|
|
||||||
EXPECT_CALL(mp, is_direct_only()).WillRepeatedly(Return(false));
|
EXPECT_CALL(mp, is_read_only()).WillRepeatedly(Return(false));
|
||||||
|
|
||||||
polling::instance().start(cfg.get());
|
polling::instance().start(cfg.get());
|
||||||
file_manager fm(*cfg, mp);
|
file_manager fm(*cfg, mp);
|
||||||
@ -639,7 +639,7 @@ TEST_F(file_manager_test, upload_occurs_after_write_if_fully_downloaded) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
TEST_F(file_manager_test, can_evict_file) {
|
TEST_F(file_manager_test, can_evict_file) {
|
||||||
EXPECT_CALL(mp, is_direct_only()).WillRepeatedly(Return(false));
|
EXPECT_CALL(mp, is_read_only()).WillRepeatedly(Return(false));
|
||||||
|
|
||||||
file_manager fm(*cfg, mp);
|
file_manager fm(*cfg, mp);
|
||||||
fm.start();
|
fm.start();
|
||||||
@ -730,7 +730,7 @@ TEST_F(file_manager_test, can_evict_file) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
TEST_F(file_manager_test, evict_file_fails_if_file_is_pinned) {
|
TEST_F(file_manager_test, evict_file_fails_if_file_is_pinned) {
|
||||||
EXPECT_CALL(mp, is_direct_only()).WillRepeatedly(Return(false));
|
EXPECT_CALL(mp, is_read_only()).WillRepeatedly(Return(false));
|
||||||
file_manager fm(*cfg, mp);
|
file_manager fm(*cfg, mp);
|
||||||
|
|
||||||
EXPECT_CALL(mp, get_item_meta(_, META_PINNED, _))
|
EXPECT_CALL(mp, get_item_meta(_, META_PINNED, _))
|
||||||
@ -745,14 +745,14 @@ TEST_F(file_manager_test, evict_file_fails_if_file_is_pinned) {
|
|||||||
EXPECT_FALSE(fm.evict_file("/test_open.txt"));
|
EXPECT_FALSE(fm.evict_file("/test_open.txt"));
|
||||||
}
|
}
|
||||||
|
|
||||||
TEST_F(file_manager_test, evict_file_fails_if_provider_is_direct_only) {
|
TEST_F(file_manager_test, evict_file_fails_if_provider_is_read_only) {
|
||||||
EXPECT_CALL(mp, is_direct_only()).WillRepeatedly(Return(true));
|
EXPECT_CALL(mp, is_read_only()).WillRepeatedly(Return(true));
|
||||||
file_manager fm(*cfg, mp);
|
file_manager fm(*cfg, mp);
|
||||||
EXPECT_FALSE(fm.evict_file("/test.txt"));
|
EXPECT_FALSE(fm.evict_file("/test.txt"));
|
||||||
}
|
}
|
||||||
|
|
||||||
TEST_F(file_manager_test, evict_file_fails_if_file_is_open) {
|
TEST_F(file_manager_test, evict_file_fails_if_file_is_open) {
|
||||||
EXPECT_CALL(mp, is_direct_only()).WillRepeatedly(Return(false));
|
EXPECT_CALL(mp, is_read_only()).WillRepeatedly(Return(false));
|
||||||
file_manager fm(*cfg, mp);
|
file_manager fm(*cfg, mp);
|
||||||
|
|
||||||
EXPECT_CALL(mp, get_filesystem_item)
|
EXPECT_CALL(mp, get_filesystem_item)
|
||||||
@ -793,7 +793,7 @@ TEST_F(file_manager_test, evict_file_fails_if_file_is_open) {
|
|||||||
|
|
||||||
TEST_F(file_manager_test,
|
TEST_F(file_manager_test,
|
||||||
evict_file_fails_if_unable_to_get_source_path_from_item_meta) {
|
evict_file_fails_if_unable_to_get_source_path_from_item_meta) {
|
||||||
EXPECT_CALL(mp, is_direct_only()).WillRepeatedly(Return(false));
|
EXPECT_CALL(mp, is_read_only()).WillRepeatedly(Return(false));
|
||||||
file_manager fm(*cfg, mp);
|
file_manager fm(*cfg, mp);
|
||||||
|
|
||||||
EXPECT_CALL(mp, get_item_meta(_, META_SOURCE, _))
|
EXPECT_CALL(mp, get_item_meta(_, META_SOURCE, _))
|
||||||
@ -817,7 +817,7 @@ TEST_F(file_manager_test,
|
|||||||
}
|
}
|
||||||
|
|
||||||
TEST_F(file_manager_test, evict_file_fails_if_source_path_is_empty) {
|
TEST_F(file_manager_test, evict_file_fails_if_source_path_is_empty) {
|
||||||
EXPECT_CALL(mp, is_direct_only()).WillRepeatedly(Return(false));
|
EXPECT_CALL(mp, is_read_only()).WillRepeatedly(Return(false));
|
||||||
file_manager fm(*cfg, mp);
|
file_manager fm(*cfg, mp);
|
||||||
|
|
||||||
EXPECT_CALL(mp, get_item_meta(_, META_SOURCE, _))
|
EXPECT_CALL(mp, get_item_meta(_, META_SOURCE, _))
|
||||||
@ -841,7 +841,7 @@ TEST_F(file_manager_test, evict_file_fails_if_source_path_is_empty) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
TEST_F(file_manager_test, evict_file_fails_if_file_is_uploading) {
|
TEST_F(file_manager_test, evict_file_fails_if_file_is_uploading) {
|
||||||
EXPECT_CALL(mp, is_direct_only()).WillRepeatedly(Return(false));
|
EXPECT_CALL(mp, is_read_only()).WillRepeatedly(Return(false));
|
||||||
|
|
||||||
file_manager fm(*cfg, mp);
|
file_manager fm(*cfg, mp);
|
||||||
fm.start();
|
fm.start();
|
||||||
@ -924,7 +924,7 @@ TEST_F(file_manager_test, evict_file_fails_if_file_is_uploading) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
TEST_F(file_manager_test, evict_file_fails_if_file_is_in_upload_queue) {
|
TEST_F(file_manager_test, evict_file_fails_if_file_is_in_upload_queue) {
|
||||||
EXPECT_CALL(mp, is_direct_only()).WillRepeatedly(Return(false));
|
EXPECT_CALL(mp, is_read_only()).WillRepeatedly(Return(false));
|
||||||
|
|
||||||
file_manager fm(*cfg, mp);
|
file_manager fm(*cfg, mp);
|
||||||
|
|
||||||
@ -939,7 +939,7 @@ TEST_F(file_manager_test, evict_file_fails_if_file_is_in_upload_queue) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
TEST_F(file_manager_test, evict_file_fails_if_file_is_modified) {
|
TEST_F(file_manager_test, evict_file_fails_if_file_is_modified) {
|
||||||
EXPECT_CALL(mp, is_direct_only()).WillRepeatedly(Return(false));
|
EXPECT_CALL(mp, is_read_only()).WillRepeatedly(Return(false));
|
||||||
|
|
||||||
file_manager fm(*cfg, mp);
|
file_manager fm(*cfg, mp);
|
||||||
EXPECT_CALL(mp, get_filesystem_item)
|
EXPECT_CALL(mp, get_filesystem_item)
|
||||||
@ -975,7 +975,7 @@ TEST_F(file_manager_test, evict_file_fails_if_file_is_modified) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
TEST_F(file_manager_test, evict_file_fails_if_file_is_not_complete) {
|
TEST_F(file_manager_test, evict_file_fails_if_file_is_not_complete) {
|
||||||
EXPECT_CALL(mp, is_direct_only()).WillRepeatedly(Return(false));
|
EXPECT_CALL(mp, is_read_only()).WillRepeatedly(Return(false));
|
||||||
|
|
||||||
file_manager fm(*cfg, mp);
|
file_manager fm(*cfg, mp);
|
||||||
EXPECT_CALL(mp, get_filesystem_item)
|
EXPECT_CALL(mp, get_filesystem_item)
|
||||||
@ -1013,7 +1013,7 @@ TEST_F(file_manager_test, evict_file_fails_if_file_is_not_complete) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
TEST_F(file_manager_test, can_get_directory_items) {
|
TEST_F(file_manager_test, can_get_directory_items) {
|
||||||
EXPECT_CALL(mp, is_direct_only()).WillRepeatedly(Return(false));
|
EXPECT_CALL(mp, is_read_only()).WillRepeatedly(Return(false));
|
||||||
|
|
||||||
file_manager fm(*cfg, mp);
|
file_manager fm(*cfg, mp);
|
||||||
EXPECT_CALL(mp, get_directory_items)
|
EXPECT_CALL(mp, get_directory_items)
|
||||||
@ -1037,7 +1037,7 @@ TEST_F(file_manager_test, can_get_directory_items) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
TEST_F(file_manager_test, file_is_not_opened_if_provider_create_file_fails) {
|
TEST_F(file_manager_test, file_is_not_opened_if_provider_create_file_fails) {
|
||||||
EXPECT_CALL(mp, is_direct_only()).WillRepeatedly(Return(false));
|
EXPECT_CALL(mp, is_read_only()).WillRepeatedly(Return(false));
|
||||||
|
|
||||||
const auto now = utils::time::get_time_now();
|
const auto now = utils::time::get_time_now();
|
||||||
auto meta = create_meta_attributes(
|
auto meta = create_meta_attributes(
|
||||||
@ -1062,7 +1062,7 @@ TEST_F(file_manager_test, file_is_not_opened_if_provider_create_file_fails) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
TEST_F(file_manager_test, create_fails_if_provider_create_is_unsuccessful) {
|
TEST_F(file_manager_test, create_fails_if_provider_create_is_unsuccessful) {
|
||||||
EXPECT_CALL(mp, is_direct_only()).WillRepeatedly(Return(false));
|
EXPECT_CALL(mp, is_read_only()).WillRepeatedly(Return(false));
|
||||||
|
|
||||||
file_manager fm(*cfg, mp);
|
file_manager fm(*cfg, mp);
|
||||||
|
|
||||||
@ -1083,7 +1083,7 @@ TEST_F(file_manager_test, create_fails_if_provider_create_is_unsuccessful) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
TEST_F(file_manager_test, get_open_file_fails_if_file_is_not_open) {
|
TEST_F(file_manager_test, get_open_file_fails_if_file_is_not_open) {
|
||||||
EXPECT_CALL(mp, is_direct_only()).WillRepeatedly(Return(false));
|
EXPECT_CALL(mp, is_read_only()).WillRepeatedly(Return(false));
|
||||||
|
|
||||||
file_manager fm(*cfg, mp);
|
file_manager fm(*cfg, mp);
|
||||||
|
|
||||||
@ -1097,7 +1097,7 @@ TEST_F(file_manager_test, get_open_file_fails_if_file_is_not_open) {
|
|||||||
|
|
||||||
TEST_F(file_manager_test,
|
TEST_F(file_manager_test,
|
||||||
get_open_file_promotes_non_writeable_file_if_writeable_is_specified) {
|
get_open_file_promotes_non_writeable_file_if_writeable_is_specified) {
|
||||||
EXPECT_CALL(mp, is_direct_only()).WillRepeatedly(Return(false));
|
EXPECT_CALL(mp, is_read_only()).WillRepeatedly(Return(false));
|
||||||
|
|
||||||
file_manager fm(*cfg, mp);
|
file_manager fm(*cfg, mp);
|
||||||
|
|
||||||
@ -1173,7 +1173,7 @@ TEST_F(file_manager_test,
|
|||||||
}
|
}
|
||||||
|
|
||||||
TEST_F(file_manager_test, open_file_fails_if_file_is_not_found) {
|
TEST_F(file_manager_test, open_file_fails_if_file_is_not_found) {
|
||||||
EXPECT_CALL(mp, is_direct_only()).WillRepeatedly(Return(false));
|
EXPECT_CALL(mp, is_read_only()).WillRepeatedly(Return(false));
|
||||||
|
|
||||||
file_manager fm(*cfg, mp);
|
file_manager fm(*cfg, mp);
|
||||||
|
|
||||||
@ -1189,7 +1189,7 @@ TEST_F(file_manager_test, open_file_fails_if_file_is_not_found) {
|
|||||||
|
|
||||||
TEST_F(file_manager_test,
|
TEST_F(file_manager_test,
|
||||||
open_file_fails_if_provider_get_filesystem_item_fails) {
|
open_file_fails_if_provider_get_filesystem_item_fails) {
|
||||||
EXPECT_CALL(mp, is_direct_only()).WillRepeatedly(Return(false));
|
EXPECT_CALL(mp, is_read_only()).WillRepeatedly(Return(false));
|
||||||
|
|
||||||
file_manager fm(*cfg, mp);
|
file_manager fm(*cfg, mp);
|
||||||
|
|
||||||
@ -1223,7 +1223,7 @@ TEST_F(file_manager_test,
|
|||||||
}
|
}
|
||||||
|
|
||||||
TEST_F(file_manager_test, open_file_fails_if_provider_set_item_meta_fails) {
|
TEST_F(file_manager_test, open_file_fails_if_provider_set_item_meta_fails) {
|
||||||
EXPECT_CALL(mp, is_direct_only()).WillRepeatedly(Return(false));
|
EXPECT_CALL(mp, is_read_only()).WillRepeatedly(Return(false));
|
||||||
|
|
||||||
file_manager fm(*cfg, mp);
|
file_manager fm(*cfg, mp);
|
||||||
|
|
||||||
@ -1264,7 +1264,7 @@ TEST_F(file_manager_test, open_file_fails_if_provider_set_item_meta_fails) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
TEST_F(file_manager_test, open_file_creates_source_path_if_empty) {
|
TEST_F(file_manager_test, open_file_creates_source_path_if_empty) {
|
||||||
EXPECT_CALL(mp, is_direct_only()).WillRepeatedly(Return(false));
|
EXPECT_CALL(mp, is_read_only()).WillRepeatedly(Return(false));
|
||||||
|
|
||||||
file_manager fm(*cfg, mp);
|
file_manager fm(*cfg, mp);
|
||||||
|
|
||||||
@ -1317,7 +1317,7 @@ TEST_F(file_manager_test, open_file_creates_source_path_if_empty) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
TEST_F(file_manager_test, open_file_first_file_handle_is_not_zero) {
|
TEST_F(file_manager_test, open_file_first_file_handle_is_not_zero) {
|
||||||
EXPECT_CALL(mp, is_direct_only()).WillRepeatedly(Return(false));
|
EXPECT_CALL(mp, is_read_only()).WillRepeatedly(Return(false));
|
||||||
|
|
||||||
file_manager fm(*cfg, mp);
|
file_manager fm(*cfg, mp);
|
||||||
|
|
||||||
@ -1355,7 +1355,7 @@ TEST_F(file_manager_test, open_file_first_file_handle_is_not_zero) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
TEST_F(file_manager_test, can_remove_file) {
|
TEST_F(file_manager_test, can_remove_file) {
|
||||||
EXPECT_CALL(mp, is_direct_only()).WillRepeatedly(Return(false));
|
EXPECT_CALL(mp, is_read_only()).WillRepeatedly(Return(false));
|
||||||
|
|
||||||
file_manager fm(*cfg, mp);
|
file_manager fm(*cfg, mp);
|
||||||
|
|
||||||
@ -1391,7 +1391,7 @@ TEST_F(file_manager_test, can_queue_and_remove_upload) {
|
|||||||
"download_resume_removed",
|
"download_resume_removed",
|
||||||
});
|
});
|
||||||
|
|
||||||
EXPECT_CALL(mp, is_direct_only()).WillRepeatedly(Return(false));
|
EXPECT_CALL(mp, is_read_only()).WillRepeatedly(Return(false));
|
||||||
|
|
||||||
file_manager fm(*cfg, mp);
|
file_manager fm(*cfg, mp);
|
||||||
|
|
||||||
@ -1415,7 +1415,7 @@ TEST_F(file_manager_test, file_is_closed_after_download_timeout) {
|
|||||||
|
|
||||||
polling::instance().start(cfg.get());
|
polling::instance().start(cfg.get());
|
||||||
|
|
||||||
EXPECT_CALL(mp, is_direct_only()).WillRepeatedly(Return(false));
|
EXPECT_CALL(mp, is_read_only()).WillRepeatedly(Return(false));
|
||||||
|
|
||||||
file_manager fm(*cfg, mp);
|
file_manager fm(*cfg, mp);
|
||||||
fm.start();
|
fm.start();
|
||||||
@ -1499,7 +1499,7 @@ TEST_F(file_manager_test, file_is_closed_after_download_timeout) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
TEST_F(file_manager_test, remove_file_fails_if_file_does_not_exist) {
|
TEST_F(file_manager_test, remove_file_fails_if_file_does_not_exist) {
|
||||||
EXPECT_CALL(mp, is_direct_only()).WillRepeatedly(Return(false));
|
EXPECT_CALL(mp, is_read_only()).WillRepeatedly(Return(false));
|
||||||
|
|
||||||
file_manager fm(*cfg, mp);
|
file_manager fm(*cfg, mp);
|
||||||
|
|
||||||
@ -1515,7 +1515,7 @@ TEST_F(file_manager_test, remove_file_fails_if_file_does_not_exist) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
TEST_F(file_manager_test, remove_file_fails_if_provider_remove_file_fails) {
|
TEST_F(file_manager_test, remove_file_fails_if_provider_remove_file_fails) {
|
||||||
EXPECT_CALL(mp, is_direct_only()).WillRepeatedly(Return(false));
|
EXPECT_CALL(mp, is_read_only()).WillRepeatedly(Return(false));
|
||||||
|
|
||||||
file_manager fm(*cfg, mp);
|
file_manager fm(*cfg, mp);
|
||||||
|
|
||||||
|
@ -59,7 +59,7 @@ TEST(open_file, properly_initializes_state_for_0_byte_file) {
|
|||||||
mock_provider mp;
|
mock_provider mp;
|
||||||
mock_upload_manager um;
|
mock_upload_manager um;
|
||||||
|
|
||||||
EXPECT_CALL(mp, is_direct_only()).WillRepeatedly(Return(false));
|
EXPECT_CALL(mp, is_read_only()).WillRepeatedly(Return(false));
|
||||||
|
|
||||||
filesystem_item fsi;
|
filesystem_item fsi;
|
||||||
fsi.directory = false;
|
fsi.directory = false;
|
||||||
@ -80,7 +80,7 @@ TEST(open_file, properly_initializes_state_based_on_chunk_size) {
|
|||||||
mock_provider mp;
|
mock_provider mp;
|
||||||
mock_upload_manager um;
|
mock_upload_manager um;
|
||||||
|
|
||||||
EXPECT_CALL(mp, is_direct_only()).WillRepeatedly(Return(false));
|
EXPECT_CALL(mp, is_read_only()).WillRepeatedly(Return(false));
|
||||||
|
|
||||||
filesystem_item fsi;
|
filesystem_item fsi;
|
||||||
fsi.directory = false;
|
fsi.directory = false;
|
||||||
@ -113,7 +113,7 @@ TEST(open_file, will_not_change_source_path_for_0_byte_file) {
|
|||||||
mock_provider mp;
|
mock_provider mp;
|
||||||
mock_upload_manager um;
|
mock_upload_manager um;
|
||||||
|
|
||||||
EXPECT_CALL(mp, is_direct_only()).WillRepeatedly(Return(false));
|
EXPECT_CALL(mp, is_read_only()).WillRepeatedly(Return(false));
|
||||||
|
|
||||||
filesystem_item fsi;
|
filesystem_item fsi;
|
||||||
fsi.directory = false;
|
fsi.directory = false;
|
||||||
@ -137,7 +137,7 @@ TEST(open_file, will_change_source_path_if_file_size_is_greater_than_0) {
|
|||||||
mock_provider mp;
|
mock_provider mp;
|
||||||
mock_upload_manager um;
|
mock_upload_manager um;
|
||||||
|
|
||||||
EXPECT_CALL(mp, is_direct_only()).WillRepeatedly(Return(false));
|
EXPECT_CALL(mp, is_read_only()).WillRepeatedly(Return(false));
|
||||||
|
|
||||||
filesystem_item fsi;
|
filesystem_item fsi;
|
||||||
fsi.api_path = "/test.txt";
|
fsi.api_path = "/test.txt";
|
||||||
@ -177,7 +177,7 @@ TEST(open_file,
|
|||||||
mock_provider mp;
|
mock_provider mp;
|
||||||
mock_upload_manager um;
|
mock_upload_manager um;
|
||||||
|
|
||||||
EXPECT_CALL(mp, is_direct_only()).WillRepeatedly(Return(false));
|
EXPECT_CALL(mp, is_read_only()).WillRepeatedly(Return(false));
|
||||||
|
|
||||||
filesystem_item fsi;
|
filesystem_item fsi;
|
||||||
fsi.api_path = "/test.txt";
|
fsi.api_path = "/test.txt";
|
||||||
@ -201,7 +201,7 @@ TEST(open_file, write_with_incomplete_download) {
|
|||||||
mock_provider mp;
|
mock_provider mp;
|
||||||
mock_upload_manager um;
|
mock_upload_manager um;
|
||||||
|
|
||||||
EXPECT_CALL(mp, is_direct_only()).WillRepeatedly(Return(false));
|
EXPECT_CALL(mp, is_read_only()).WillRepeatedly(Return(false));
|
||||||
|
|
||||||
filesystem_item fsi;
|
filesystem_item fsi;
|
||||||
fsi.api_path = "/test.txt";
|
fsi.api_path = "/test.txt";
|
||||||
@ -289,7 +289,7 @@ TEST(open_file, write_new_file) {
|
|||||||
mock_provider mp;
|
mock_provider mp;
|
||||||
mock_upload_manager um;
|
mock_upload_manager um;
|
||||||
|
|
||||||
EXPECT_CALL(mp, is_direct_only()).WillRepeatedly(Return(false));
|
EXPECT_CALL(mp, is_read_only()).WillRepeatedly(Return(false));
|
||||||
|
|
||||||
filesystem_item fsi;
|
filesystem_item fsi;
|
||||||
fsi.api_path = "/test.txt";
|
fsi.api_path = "/test.txt";
|
||||||
@ -362,7 +362,7 @@ TEST(open_file, write_new_file_multiple_chunks) {
|
|||||||
mock_provider mp;
|
mock_provider mp;
|
||||||
mock_upload_manager um;
|
mock_upload_manager um;
|
||||||
|
|
||||||
EXPECT_CALL(mp, is_direct_only()).WillRepeatedly(Return(false));
|
EXPECT_CALL(mp, is_read_only()).WillRepeatedly(Return(false));
|
||||||
|
|
||||||
filesystem_item fsi;
|
filesystem_item fsi;
|
||||||
fsi.api_path = "/test.txt";
|
fsi.api_path = "/test.txt";
|
||||||
@ -455,7 +455,7 @@ TEST(open_file, resize_file_to_0_bytes) {
|
|||||||
mock_provider mp;
|
mock_provider mp;
|
||||||
mock_upload_manager um;
|
mock_upload_manager um;
|
||||||
|
|
||||||
EXPECT_CALL(mp, is_direct_only()).WillRepeatedly(Return(false));
|
EXPECT_CALL(mp, is_read_only()).WillRepeatedly(Return(false));
|
||||||
|
|
||||||
filesystem_item fsi;
|
filesystem_item fsi;
|
||||||
fsi.api_path = "/test.txt";
|
fsi.api_path = "/test.txt";
|
||||||
@ -505,7 +505,7 @@ TEST(open_file, resize_file_by_full_chunk) {
|
|||||||
mock_provider mp;
|
mock_provider mp;
|
||||||
mock_upload_manager um;
|
mock_upload_manager um;
|
||||||
|
|
||||||
EXPECT_CALL(mp, is_direct_only()).WillRepeatedly(Return(false));
|
EXPECT_CALL(mp, is_read_only()).WillRepeatedly(Return(false));
|
||||||
|
|
||||||
filesystem_item fsi;
|
filesystem_item fsi;
|
||||||
fsi.api_path = "/test.txt";
|
fsi.api_path = "/test.txt";
|
||||||
@ -556,7 +556,7 @@ TEST(open_file, can_add_handle) {
|
|||||||
mock_provider mp;
|
mock_provider mp;
|
||||||
mock_upload_manager um;
|
mock_upload_manager um;
|
||||||
|
|
||||||
EXPECT_CALL(mp, is_direct_only()).WillRepeatedly(Return(false));
|
EXPECT_CALL(mp, is_read_only()).WillRepeatedly(Return(false));
|
||||||
|
|
||||||
filesystem_item fsi;
|
filesystem_item fsi;
|
||||||
fsi.api_path = "/test.txt";
|
fsi.api_path = "/test.txt";
|
||||||
@ -618,7 +618,7 @@ TEST(open_file, can_remove_handle) {
|
|||||||
mock_provider mp;
|
mock_provider mp;
|
||||||
mock_upload_manager um;
|
mock_upload_manager um;
|
||||||
|
|
||||||
EXPECT_CALL(mp, is_direct_only()).WillRepeatedly(Return(false));
|
EXPECT_CALL(mp, is_read_only()).WillRepeatedly(Return(false));
|
||||||
|
|
||||||
filesystem_item fsi;
|
filesystem_item fsi;
|
||||||
fsi.api_path = "/test.txt";
|
fsi.api_path = "/test.txt";
|
||||||
|
@ -178,7 +178,7 @@ const auto decrypt_parts = [](const repertory::app_config &cfg,
|
|||||||
|
|
||||||
namespace repertory {
|
namespace repertory {
|
||||||
static void can_create_and_remove_directory(i_provider &provider) {
|
static void can_create_and_remove_directory(i_provider &provider) {
|
||||||
if (provider.is_direct_only()) {
|
if (provider.is_read_only()) {
|
||||||
api_meta_map meta{};
|
api_meta_map meta{};
|
||||||
EXPECT_EQ(api_error::not_implemented,
|
EXPECT_EQ(api_error::not_implemented,
|
||||||
provider.create_directory("/moose", meta));
|
provider.create_directory("/moose", meta));
|
||||||
@ -196,7 +196,7 @@ static void can_create_and_remove_directory(i_provider &provider) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
static void create_directory_fails_if_already_exists(i_provider &provider) {
|
static void create_directory_fails_if_already_exists(i_provider &provider) {
|
||||||
if (provider.is_direct_only()) {
|
if (provider.is_read_only()) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -210,7 +210,7 @@ static void create_directory_fails_if_already_exists(i_provider &provider) {
|
|||||||
|
|
||||||
static void
|
static void
|
||||||
create_directory_fails_if_file_already_exists(i_provider &provider) {
|
create_directory_fails_if_file_already_exists(i_provider &provider) {
|
||||||
if (provider.is_direct_only()) {
|
if (provider.is_read_only()) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -223,7 +223,7 @@ create_directory_fails_if_file_already_exists(i_provider &provider) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
static void create_directory_clone_source_meta(i_provider &provider) {
|
static void create_directory_clone_source_meta(i_provider &provider) {
|
||||||
if (provider.is_direct_only()) {
|
if (provider.is_read_only()) {
|
||||||
EXPECT_EQ(api_error::not_implemented,
|
EXPECT_EQ(api_error::not_implemented,
|
||||||
provider.create_directory_clone_source_meta("/moose", "/moose"));
|
provider.create_directory_clone_source_meta("/moose", "/moose"));
|
||||||
return;
|
return;
|
||||||
@ -257,7 +257,7 @@ static void create_directory_clone_source_meta(i_provider &provider) {
|
|||||||
|
|
||||||
static void create_directory_clone_source_meta_fails_if_already_exists(
|
static void create_directory_clone_source_meta_fails_if_already_exists(
|
||||||
i_provider &provider) {
|
i_provider &provider) {
|
||||||
if (provider.is_direct_only()) {
|
if (provider.is_read_only()) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
create_directory(provider, "/clone");
|
create_directory(provider, "/clone");
|
||||||
@ -272,7 +272,7 @@ static void create_directory_clone_source_meta_fails_if_already_exists(
|
|||||||
|
|
||||||
static void create_directory_clone_source_meta_fails_if_directory_not_found(
|
static void create_directory_clone_source_meta_fails_if_directory_not_found(
|
||||||
i_provider &provider) {
|
i_provider &provider) {
|
||||||
if (provider.is_direct_only()) {
|
if (provider.is_read_only()) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -282,7 +282,7 @@ static void create_directory_clone_source_meta_fails_if_directory_not_found(
|
|||||||
|
|
||||||
static void create_directory_clone_source_meta_fails_if_file_already_exists(
|
static void create_directory_clone_source_meta_fails_if_file_already_exists(
|
||||||
i_provider &provider) {
|
i_provider &provider) {
|
||||||
if (provider.is_direct_only()) {
|
if (provider.is_read_only()) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -297,7 +297,7 @@ static void create_directory_clone_source_meta_fails_if_file_already_exists(
|
|||||||
}
|
}
|
||||||
|
|
||||||
static void can_create_and_remove_file(i_provider &provider) {
|
static void can_create_and_remove_file(i_provider &provider) {
|
||||||
if (provider.is_direct_only()) {
|
if (provider.is_read_only()) {
|
||||||
api_meta_map meta{};
|
api_meta_map meta{};
|
||||||
EXPECT_EQ(api_error::not_implemented,
|
EXPECT_EQ(api_error::not_implemented,
|
||||||
provider.create_file("/moose.txt", meta));
|
provider.create_file("/moose.txt", meta));
|
||||||
@ -317,7 +317,7 @@ static void can_create_and_remove_file(i_provider &provider) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
static void create_file_fails_if_already_exists(i_provider &provider) {
|
static void create_file_fails_if_already_exists(i_provider &provider) {
|
||||||
if (provider.is_direct_only()) {
|
if (provider.is_read_only()) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -331,7 +331,7 @@ static void create_file_fails_if_already_exists(i_provider &provider) {
|
|||||||
|
|
||||||
static void
|
static void
|
||||||
create_file_fails_if_directory_already_exists(i_provider &provider) {
|
create_file_fails_if_directory_already_exists(i_provider &provider) {
|
||||||
if (provider.is_direct_only()) {
|
if (provider.is_read_only()) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -659,7 +659,7 @@ TEST(providers, encrypt_provider) {
|
|||||||
},
|
},
|
||||||
&mgr));
|
&mgr));
|
||||||
EXPECT_EQ(provider_type::encrypt, provider.get_provider_type());
|
EXPECT_EQ(provider_type::encrypt, provider.get_provider_type());
|
||||||
EXPECT_TRUE(provider.is_direct_only());
|
EXPECT_TRUE(provider.is_read_only());
|
||||||
EXPECT_TRUE(provider.is_online());
|
EXPECT_TRUE(provider.is_online());
|
||||||
EXPECT_FALSE(provider.is_rename_supported());
|
EXPECT_FALSE(provider.is_rename_supported());
|
||||||
|
|
||||||
@ -698,7 +698,7 @@ TEST(providers, s3_provider) {
|
|||||||
},
|
},
|
||||||
&mgr));
|
&mgr));
|
||||||
EXPECT_EQ(provider_type::s3, provider.get_provider_type());
|
EXPECT_EQ(provider_type::s3, provider.get_provider_type());
|
||||||
EXPECT_FALSE(provider.is_direct_only());
|
EXPECT_FALSE(provider.is_read_only());
|
||||||
EXPECT_TRUE(provider.is_online());
|
EXPECT_TRUE(provider.is_online());
|
||||||
EXPECT_FALSE(provider.is_rename_supported());
|
EXPECT_FALSE(provider.is_rename_supported());
|
||||||
|
|
||||||
@ -737,7 +737,7 @@ TEST(providers, sia_provider) {
|
|||||||
},
|
},
|
||||||
&mgr));
|
&mgr));
|
||||||
EXPECT_EQ(provider_type::sia, provider.get_provider_type());
|
EXPECT_EQ(provider_type::sia, provider.get_provider_type());
|
||||||
EXPECT_FALSE(provider.is_direct_only());
|
EXPECT_FALSE(provider.is_read_only());
|
||||||
EXPECT_TRUE(provider.is_online());
|
EXPECT_TRUE(provider.is_online());
|
||||||
EXPECT_TRUE(provider.is_rename_supported());
|
EXPECT_TRUE(provider.is_rename_supported());
|
||||||
|
|
||||||
|
@ -39,7 +39,7 @@ TEST(ring_buffer_open_file, can_forward_to_last_chunk) {
|
|||||||
|
|
||||||
mock_provider mp;
|
mock_provider mp;
|
||||||
|
|
||||||
EXPECT_CALL(mp, is_direct_only()).WillRepeatedly(Return(false));
|
EXPECT_CALL(mp, is_read_only()).WillRepeatedly(Return(false));
|
||||||
|
|
||||||
filesystem_item fsi;
|
filesystem_item fsi;
|
||||||
fsi.directory = false;
|
fsi.directory = false;
|
||||||
@ -71,7 +71,7 @@ TEST(ring_buffer_open_file,
|
|||||||
|
|
||||||
mock_provider mp;
|
mock_provider mp;
|
||||||
|
|
||||||
EXPECT_CALL(mp, is_direct_only()).WillRepeatedly(Return(false));
|
EXPECT_CALL(mp, is_read_only()).WillRepeatedly(Return(false));
|
||||||
|
|
||||||
filesystem_item fsi;
|
filesystem_item fsi;
|
||||||
fsi.directory = false;
|
fsi.directory = false;
|
||||||
@ -102,7 +102,7 @@ TEST(ring_buffer_open_file, can_forward_after_last_chunk) {
|
|||||||
|
|
||||||
mock_provider mp;
|
mock_provider mp;
|
||||||
|
|
||||||
EXPECT_CALL(mp, is_direct_only()).WillRepeatedly(Return(false));
|
EXPECT_CALL(mp, is_read_only()).WillRepeatedly(Return(false));
|
||||||
|
|
||||||
filesystem_item fsi;
|
filesystem_item fsi;
|
||||||
fsi.directory = false;
|
fsi.directory = false;
|
||||||
@ -134,7 +134,7 @@ TEST(ring_buffer_open_file, can_forward_and_rollover_after_last_chunk) {
|
|||||||
|
|
||||||
mock_provider mp;
|
mock_provider mp;
|
||||||
|
|
||||||
EXPECT_CALL(mp, is_direct_only()).WillRepeatedly(Return(false));
|
EXPECT_CALL(mp, is_read_only()).WillRepeatedly(Return(false));
|
||||||
|
|
||||||
filesystem_item fsi;
|
filesystem_item fsi;
|
||||||
fsi.directory = false;
|
fsi.directory = false;
|
||||||
@ -162,7 +162,7 @@ TEST(ring_buffer_open_file, can_reverse_to_first_chunk) {
|
|||||||
|
|
||||||
mock_provider mp;
|
mock_provider mp;
|
||||||
|
|
||||||
EXPECT_CALL(mp, is_direct_only()).WillRepeatedly(Return(false));
|
EXPECT_CALL(mp, is_read_only()).WillRepeatedly(Return(false));
|
||||||
|
|
||||||
filesystem_item fsi;
|
filesystem_item fsi;
|
||||||
fsi.directory = false;
|
fsi.directory = false;
|
||||||
@ -194,7 +194,7 @@ TEST(ring_buffer_open_file,
|
|||||||
|
|
||||||
mock_provider mp;
|
mock_provider mp;
|
||||||
|
|
||||||
EXPECT_CALL(mp, is_direct_only()).WillRepeatedly(Return(false));
|
EXPECT_CALL(mp, is_read_only()).WillRepeatedly(Return(false));
|
||||||
|
|
||||||
filesystem_item fsi;
|
filesystem_item fsi;
|
||||||
fsi.directory = false;
|
fsi.directory = false;
|
||||||
@ -225,7 +225,7 @@ TEST(ring_buffer_open_file, can_reverse_before_first_chunk) {
|
|||||||
|
|
||||||
mock_provider mp;
|
mock_provider mp;
|
||||||
|
|
||||||
EXPECT_CALL(mp, is_direct_only()).WillRepeatedly(Return(false));
|
EXPECT_CALL(mp, is_read_only()).WillRepeatedly(Return(false));
|
||||||
|
|
||||||
filesystem_item fsi;
|
filesystem_item fsi;
|
||||||
fsi.directory = false;
|
fsi.directory = false;
|
||||||
@ -257,7 +257,7 @@ TEST(ring_buffer_open_file, can_reverse_and_rollover_before_first_chunk) {
|
|||||||
|
|
||||||
mock_provider mp;
|
mock_provider mp;
|
||||||
|
|
||||||
EXPECT_CALL(mp, is_direct_only()).WillRepeatedly(Return(false));
|
EXPECT_CALL(mp, is_read_only()).WillRepeatedly(Return(false));
|
||||||
|
|
||||||
filesystem_item fsi;
|
filesystem_item fsi;
|
||||||
fsi.directory = false;
|
fsi.directory = false;
|
||||||
@ -293,7 +293,7 @@ TEST(ring_buffer_open_file, can_reverse_full_ring) {
|
|||||||
|
|
||||||
mock_provider mp;
|
mock_provider mp;
|
||||||
|
|
||||||
EXPECT_CALL(mp, is_direct_only()).WillRepeatedly(Return(false));
|
EXPECT_CALL(mp, is_read_only()).WillRepeatedly(Return(false));
|
||||||
|
|
||||||
filesystem_item fsi;
|
filesystem_item fsi;
|
||||||
fsi.directory = false;
|
fsi.directory = false;
|
||||||
@ -327,7 +327,7 @@ TEST(ring_buffer_open_file, read_full_file) {
|
|||||||
|
|
||||||
mock_provider mp;
|
mock_provider mp;
|
||||||
|
|
||||||
EXPECT_CALL(mp, is_direct_only()).WillRepeatedly(Return(false));
|
EXPECT_CALL(mp, is_read_only()).WillRepeatedly(Return(false));
|
||||||
|
|
||||||
filesystem_item fsi;
|
filesystem_item fsi;
|
||||||
fsi.directory = false;
|
fsi.directory = false;
|
||||||
@ -392,7 +392,7 @@ TEST(ring_buffer_open_file, read_full_file_in_reverse) {
|
|||||||
|
|
||||||
mock_provider mp;
|
mock_provider mp;
|
||||||
|
|
||||||
EXPECT_CALL(mp, is_direct_only()).WillRepeatedly(Return(false));
|
EXPECT_CALL(mp, is_read_only()).WillRepeatedly(Return(false));
|
||||||
|
|
||||||
filesystem_item fsi;
|
filesystem_item fsi;
|
||||||
fsi.directory = false;
|
fsi.directory = false;
|
||||||
@ -457,7 +457,7 @@ TEST(ring_buffer_open_file, read_full_file_in_partial_chunks) {
|
|||||||
|
|
||||||
mock_provider mp;
|
mock_provider mp;
|
||||||
|
|
||||||
EXPECT_CALL(mp, is_direct_only()).WillRepeatedly(Return(false));
|
EXPECT_CALL(mp, is_read_only()).WillRepeatedly(Return(false));
|
||||||
|
|
||||||
filesystem_item fsi;
|
filesystem_item fsi;
|
||||||
fsi.directory = false;
|
fsi.directory = false;
|
||||||
@ -523,7 +523,7 @@ TEST(ring_buffer_open_file, read_full_file_in_partial_chunks_in_reverse) {
|
|||||||
|
|
||||||
mock_provider mp;
|
mock_provider mp;
|
||||||
|
|
||||||
EXPECT_CALL(mp, is_direct_only()).WillRepeatedly(Return(false));
|
EXPECT_CALL(mp, is_read_only()).WillRepeatedly(Return(false));
|
||||||
|
|
||||||
filesystem_item fsi;
|
filesystem_item fsi;
|
||||||
fsi.directory = false;
|
fsi.directory = false;
|
||||||
|
@ -37,7 +37,7 @@ TEST(upload, can_upload_a_valid_file) {
|
|||||||
|
|
||||||
mock_provider mock_prov;
|
mock_provider mock_prov;
|
||||||
|
|
||||||
EXPECT_CALL(mock_prov, is_direct_only()).WillRepeatedly(Return(false));
|
EXPECT_CALL(mock_prov, is_read_only()).WillRepeatedly(Return(false));
|
||||||
|
|
||||||
filesystem_item fsi;
|
filesystem_item fsi;
|
||||||
fsi.api_path = "/test.txt";
|
fsi.api_path = "/test.txt";
|
||||||
@ -80,7 +80,7 @@ TEST(upload, can_cancel_upload) {
|
|||||||
|
|
||||||
mock_provider mock_provider;
|
mock_provider mock_provider;
|
||||||
|
|
||||||
EXPECT_CALL(mock_provider, is_direct_only()).WillRepeatedly(Return(false));
|
EXPECT_CALL(mock_provider, is_read_only()).WillRepeatedly(Return(false));
|
||||||
|
|
||||||
filesystem_item fsi;
|
filesystem_item fsi;
|
||||||
fsi.api_path = "/test.txt";
|
fsi.api_path = "/test.txt";
|
||||||
@ -146,7 +146,7 @@ TEST(upload, can_stop_upload) {
|
|||||||
|
|
||||||
mock_provider mock_provider;
|
mock_provider mock_provider;
|
||||||
|
|
||||||
EXPECT_CALL(mock_provider, is_direct_only()).WillRepeatedly(Return(false));
|
EXPECT_CALL(mock_provider, is_read_only()).WillRepeatedly(Return(false));
|
||||||
|
|
||||||
filesystem_item fsi;
|
filesystem_item fsi;
|
||||||
fsi.api_path = "/test.txt";
|
fsi.api_path = "/test.txt";
|
||||||
|
@ -220,6 +220,10 @@ TYPED_TEST(winfsp_test, can_get_and_set_basic_info_test) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
TYPED_TEST(winfsp_test, run_winfsp_tests) {
|
TYPED_TEST(winfsp_test, run_winfsp_tests) {
|
||||||
|
if (this->provider->is_read_only()) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
auto cur = std::filesystem::current_path();
|
auto cur = std::filesystem::current_path();
|
||||||
std::filesystem::current_path(this->mount_location);
|
std::filesystem::current_path(this->mount_location);
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user