diff --git a/repertory/librepertory/include/types/repertory.hpp b/repertory/librepertory/include/types/repertory.hpp index 4506c3d9..fce1cbc2 100644 --- a/repertory/librepertory/include/types/repertory.hpp +++ b/repertory/librepertory/include/types/repertory.hpp @@ -330,7 +330,6 @@ struct directory_item final { bool directory{false}; std::uint64_t size{}; api_meta_map meta; - bool resolved{false}; }; struct encrypt_config final { diff --git a/repertory/librepertory/src/providers/encrypt/encrypt_provider.cpp b/repertory/librepertory/src/providers/encrypt/encrypt_provider.cpp index 27ecc120..3dbf5fe7 100644 --- a/repertory/librepertory/src/providers/encrypt/encrypt_provider.cpp +++ b/repertory/librepertory/src/providers/encrypt/encrypt_provider.cpp @@ -263,7 +263,6 @@ auto encrypt_provider::get_directory_items(const std::string &api_path, dir_item.api_parent = file.api_parent; dir_item.api_path = file.api_path; dir_item.directory = dir_entry->is_directory_item(); - dir_item.resolved = true; dir_item.size = file.file_size; create_item_meta(dir_item.meta, dir_item.directory, file); diff --git a/repertory/librepertory/src/providers/sia/sia_provider.cpp b/repertory/librepertory/src/providers/sia/sia_provider.cpp index ceced3b7..91b4ef27 100644 --- a/repertory/librepertory/src/providers/sia/sia_provider.cpp +++ b/repertory/librepertory/src/providers/sia/sia_provider.cpp @@ -185,7 +185,6 @@ auto sia_provider::get_directory_items_impl(const std::string &api_path, dir_item.api_path = file.api_path; dir_item.directory = directory; dir_item.meta = meta; - dir_item.resolved = true; dir_item.size = file.file_size; list.emplace_back(std::move(dir_item)); } catch (const std::exception &e) { diff --git a/repertory/repertory_test/src/providers_test.cpp b/repertory/repertory_test/src/providers_test.cpp index 4291e594..b596c036 100644 --- a/repertory/repertory_test/src/providers_test.cpp +++ b/repertory/repertory_test/src/providers_test.cpp @@ -446,11 +446,11 @@ static void get_directory_items(const app_config &cfg, i_provider &provider) { fmt::println("testing|{}|{}", app_config::get_provider_name(provider.get_provider_type()), __FUNCTION__); - directory_item_list list{}; - EXPECT_EQ(api_error::success, provider.get_directory_items("/", list)); - check_forced_dirs(list); - if (provider.get_provider_type() == provider_type::encrypt) { + directory_item_list list{}; + EXPECT_EQ(api_error::success, provider.get_directory_items("/", list)); + check_forced_dirs(list); + EXPECT_EQ(std::size_t(4U), list.size()); directory_item_list list_decrypted{list.begin() + 2U, list.end()}; @@ -511,6 +511,49 @@ static void get_directory_items(const app_config &cfg, i_provider &provider) { EXPECT_EQ(std::size_t(45U), file2->size); #endif } + + create_file(provider, "/pt01.txt"); + create_file(provider, "/pt02.txt"); + create_directory(provider, "/dir01"); + create_directory(provider, "/dir02"); + + directory_item_list list{}; + EXPECT_EQ(api_error::success, provider.get_directory_items("/", list)); + check_forced_dirs(list); + EXPECT_GE(list.size(), std::size_t(6U)); + + auto iter = std::ranges::find_if( + list, [](auto &&item) -> bool { return item.api_path == "/pt01.txt"; }); + EXPECT_NE(iter, list.end()); + EXPECT_STREQ("/", (*iter).api_parent.c_str()); + EXPECT_FALSE((*iter).directory); + EXPECT_EQ(std::uint64_t{0U}, (*iter).size); + + iter = std::ranges::find_if( + list, [](auto &&item) -> bool { return item.api_path == "/pt02.txt"; }); + EXPECT_NE(iter, list.end()); + EXPECT_STREQ("/", (*iter).api_parent.c_str()); + EXPECT_FALSE((*iter).directory); + EXPECT_EQ(std::uint64_t{0U}, (*iter).size); + + iter = std::ranges::find_if( + list, [](auto &&item) -> bool { return item.api_path == "/dir01"; }); + EXPECT_NE(iter, list.end()); + EXPECT_STREQ("/", (*iter).api_parent.c_str()); + EXPECT_TRUE((*iter).directory); + EXPECT_EQ(std::uint64_t{0U}, (*iter).size); + + iter = std::ranges::find_if( + list, [](auto &&item) -> bool { return item.api_path == "/dir02"; }); + EXPECT_NE(iter, list.end()); + EXPECT_STREQ("/", (*iter).api_parent.c_str()); + EXPECT_TRUE((*iter).directory); + EXPECT_EQ(std::uint64_t{0U}, (*iter).size); + + EXPECT_EQ(api_error::success, provider.remove_file("/pt01.txt")); + EXPECT_EQ(api_error::success, provider.remove_file("/pt02.txt")); + EXPECT_EQ(api_error::success, provider.remove_directory("/dir01")); + EXPECT_EQ(api_error::success, provider.remove_directory("/dir02")); } static void @@ -646,9 +689,9 @@ static void run_tests(const app_config &cfg, i_provider &provider) { get_api_path_from_source(cfg, provider); get_api_path_from_source_fails_if_file_not_found(cfg, provider); - // TODO: continue here get_directory_items(cfg, provider); get_directory_items_fails_if_directory_not_found(provider); + // TODO: continue here get_directory_items_fails_if_item_is_file(cfg, provider); get_directory_item_count(cfg, provider);