Home | History | Annotate | Download | only in disk_cache
      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.
      4 
      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"
     10 
     11 namespace disk_cache {
     12 
     13 class CacheUtilTest : public PlatformTest {
     14  public:
     15   virtual void SetUp() {
     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);
     26     base::CloseFile(fp);
     27     fp = base::OpenFile(file2_, "w");
     28     ASSERT_TRUE(fp != NULL);
     29     base::CloseFile(fp);
     30     ASSERT_TRUE(base::CreateDirectory(dir1_));
     31     fp = base::OpenFile(file3_, "w");
     32     ASSERT_TRUE(fp != NULL);
     33     base::CloseFile(fp);
     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")));
     36     dest_file2_ =
     37         base::FilePath(dest_dir_.Append(FILE_PATH_LITERAL(".file02")));
     38     dest_dir1_ = base::FilePath(dest_dir_.Append(FILE_PATH_LITERAL("dir01")));
     39   }
     40 
     41  protected:
     42   base::ScopedTempDir tmp_dir_;
     43   base::FilePath cache_dir_;
     44   base::FilePath file1_;
     45   base::FilePath file2_;
     46   base::FilePath dir1_;
     47   base::FilePath file3_;
     48   base::FilePath dest_dir_;
     49   base::FilePath dest_file1_;
     50   base::FilePath dest_file2_;
     51   base::FilePath dest_dir1_;
     52 };
     53 
     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
     62 #else
     63   EXPECT_FALSE(base::PathExists(cache_dir_)); // old cache is gone
     64 #endif
     65   EXPECT_FALSE(base::PathExists(file1_));
     66   EXPECT_FALSE(base::PathExists(file2_));
     67   EXPECT_FALSE(base::PathExists(dir1_));
     68 }
     69 
     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_));
     77 }
     78 
     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_));
     86 }
     87 
     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_));
     94 }
     95 
     96 }  // namespace disk_cache
     97