simple_file_enumerator_unittest.cc 1.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455
  1. // Copyright 2022 The Chromium Authors. All rights reserved.
  2. // Use of this source code is governed by a BSD-style license that can be
  3. // found in the LICENSE file.
  4. #include "net/disk_cache/simple/simple_file_enumerator.h"
  5. #include "base/path_service.h"
  6. #include "net/test/gtest_util.h"
  7. #include "net/test/test_with_task_environment.h"
  8. #include "testing/gtest/include/gtest/gtest.h"
  9. namespace disk_cache {
  10. namespace {
  11. base::FilePath GetRoot() {
  12. base::FilePath root;
  13. base::PathService::Get(base::DIR_SOURCE_ROOT, &root);
  14. return root.AppendASCII("net")
  15. .AppendASCII("data")
  16. .AppendASCII("cache_tests")
  17. .AppendASCII("simple_file_enumerator");
  18. }
  19. TEST(SimpleFileEnumeratorTest, Root) {
  20. const base::FilePath kRoot = GetRoot();
  21. SimpleFileEnumerator enumerator(kRoot);
  22. auto entry = enumerator.Next();
  23. ASSERT_TRUE(entry.has_value());
  24. EXPECT_EQ(entry->path, kRoot.AppendASCII("test.txt"));
  25. EXPECT_EQ(entry->size, 13);
  26. EXPECT_FALSE(enumerator.HasError());
  27. // No directories should be listed, no indirect descendants should be listed.
  28. EXPECT_EQ(absl::nullopt, enumerator.Next());
  29. EXPECT_FALSE(enumerator.HasError());
  30. // We can call enumerator.Next() after the iteration is done.
  31. EXPECT_EQ(absl::nullopt, enumerator.Next());
  32. EXPECT_FALSE(enumerator.HasError());
  33. }
  34. TEST(SimpleFileEnumeratorTest, NotFound) {
  35. const base::FilePath kRoot = GetRoot().AppendASCII("not-found");
  36. SimpleFileEnumerator enumerator(kRoot);
  37. auto entry = enumerator.Next();
  38. EXPECT_EQ(absl::nullopt, enumerator.Next());
  39. #if BUILDFLAG(IS_POSIX) || BUILDFLAG(IS_FUCHSIA)
  40. EXPECT_TRUE(enumerator.HasError());
  41. #endif
  42. }
  43. } // namespace
  44. } // namespace disk_cache