1 // Copyright (c) 2011 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.
5 #include "base/files/file_util.h"
6 #include "base/files/scoped_temp_dir.h"
7 #include "net/disk_cache/cache_util.h"
8 #include "testing/gtest/include/gtest/gtest.h"
9 #include "testing/platform_test.h"
11 namespace disk_cache
{
13 class CacheUtilTest
: public PlatformTest
{
15 void SetUp() override
{
16 PlatformTest::SetUp();
17 ASSERT_TRUE(tmp_dir_
.CreateUniqueTempDir());
18 cache_dir_
= tmp_dir_
.path().Append(FILE_PATH_LITERAL("Cache"));
19 file1_
= base::FilePath(cache_dir_
.Append(FILE_PATH_LITERAL("file01")));
20 file2_
= base::FilePath(cache_dir_
.Append(FILE_PATH_LITERAL(".file02")));
21 dir1_
= base::FilePath(cache_dir_
.Append(FILE_PATH_LITERAL("dir01")));
22 file3_
= base::FilePath(dir1_
.Append(FILE_PATH_LITERAL("file03")));
23 ASSERT_TRUE(base::CreateDirectory(cache_dir_
));
24 FILE *fp
= base::OpenFile(file1_
, "w");
25 ASSERT_TRUE(fp
!= NULL
);
27 fp
= base::OpenFile(file2_
, "w");
28 ASSERT_TRUE(fp
!= NULL
);
30 ASSERT_TRUE(base::CreateDirectory(dir1_
));
31 fp
= base::OpenFile(file3_
, "w");
32 ASSERT_TRUE(fp
!= NULL
);
34 dest_dir_
= tmp_dir_
.path().Append(FILE_PATH_LITERAL("old_Cache_001"));
35 dest_file1_
= base::FilePath(dest_dir_
.Append(FILE_PATH_LITERAL("file01")));
37 base::FilePath(dest_dir_
.Append(FILE_PATH_LITERAL(".file02")));
38 dest_dir1_
= base::FilePath(dest_dir_
.Append(FILE_PATH_LITERAL("dir01")));
42 base::ScopedTempDir tmp_dir_
;
43 base::FilePath cache_dir_
;
44 base::FilePath file1_
;
45 base::FilePath file2_
;
47 base::FilePath file3_
;
48 base::FilePath dest_dir_
;
49 base::FilePath dest_file1_
;
50 base::FilePath dest_file2_
;
51 base::FilePath dest_dir1_
;
54 TEST_F(CacheUtilTest
, MoveCache
) {
55 EXPECT_TRUE(disk_cache::MoveCache(cache_dir_
, dest_dir_
));
56 EXPECT_TRUE(base::PathExists(dest_dir_
));
57 EXPECT_TRUE(base::PathExists(dest_file1_
));
58 EXPECT_TRUE(base::PathExists(dest_file2_
));
59 EXPECT_TRUE(base::PathExists(dest_dir1_
));
60 #if defined(OS_CHROMEOS)
61 EXPECT_TRUE(base::PathExists(cache_dir_
)); // old cache dir stays
63 EXPECT_FALSE(base::PathExists(cache_dir_
)); // old cache is gone
65 EXPECT_FALSE(base::PathExists(file1_
));
66 EXPECT_FALSE(base::PathExists(file2_
));
67 EXPECT_FALSE(base::PathExists(dir1_
));
70 TEST_F(CacheUtilTest
, DeleteCache
) {
71 disk_cache::DeleteCache(cache_dir_
, false);
72 EXPECT_TRUE(base::PathExists(cache_dir_
)); // cache dir stays
73 EXPECT_FALSE(base::PathExists(dir1_
));
74 EXPECT_FALSE(base::PathExists(file1_
));
75 EXPECT_FALSE(base::PathExists(file2_
));
76 EXPECT_FALSE(base::PathExists(file3_
));
79 TEST_F(CacheUtilTest
, DeleteCacheAndDir
) {
80 disk_cache::DeleteCache(cache_dir_
, true);
81 EXPECT_FALSE(base::PathExists(cache_dir_
)); // cache dir is gone
82 EXPECT_FALSE(base::PathExists(dir1_
));
83 EXPECT_FALSE(base::PathExists(file1_
));
84 EXPECT_FALSE(base::PathExists(file2_
));
85 EXPECT_FALSE(base::PathExists(file3_
));
88 TEST_F(CacheUtilTest
, DeleteCacheFile
) {
89 EXPECT_TRUE(disk_cache::DeleteCacheFile(file1_
));
90 EXPECT_FALSE(base::PathExists(file1_
));
91 EXPECT_TRUE(base::PathExists(cache_dir_
)); // cache dir stays
92 EXPECT_TRUE(base::PathExists(dir1_
));
93 EXPECT_TRUE(base::PathExists(file3_
));
96 } // namespace disk_cache