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 "net/disk_cache/cache_util.h"
      6 #include "base/file_util.h"
      7 #include "base/memory/scoped_temp_dir.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   void SetUp() {
     16     PlatformTest::SetUp();
     17     ASSERT_TRUE(tmp_dir_.CreateUniqueTempDir());
     18     cache_dir_ = tmp_dir_.path().Append(FILE_PATH_LITERAL("Cache"));
     19     file1_ = FilePath(cache_dir_.Append(FILE_PATH_LITERAL("file01")));
     20     file2_ = FilePath(cache_dir_.Append(FILE_PATH_LITERAL(".file02")));
     21     dir1_ = FilePath(cache_dir_.Append(FILE_PATH_LITERAL("dir01")));
     22     ASSERT_TRUE(file_util::CreateDirectory(cache_dir_));
     23     FILE *fp = file_util::OpenFile(file1_, "w");
     24     ASSERT_TRUE(fp != NULL);
     25     file_util::CloseFile(fp);
     26     fp = file_util::OpenFile(file2_, "w");
     27     ASSERT_TRUE(fp != NULL);
     28     file_util::CloseFile(fp);
     29     ASSERT_TRUE(file_util::CreateDirectory(dir1_));
     30     dest_dir_ = tmp_dir_.path().Append(FILE_PATH_LITERAL("old_Cache_001"));
     31     dest_file1_ = FilePath(dest_dir_.Append(FILE_PATH_LITERAL("file01")));
     32     dest_file2_ = FilePath(dest_dir_.Append(FILE_PATH_LITERAL(".file02")));
     33     dest_dir1_ = FilePath(dest_dir_.Append(FILE_PATH_LITERAL("dir01")));
     34   }
     35 
     36  protected:
     37   ScopedTempDir tmp_dir_;
     38   FilePath cache_dir_;
     39   FilePath file1_;
     40   FilePath file2_;
     41   FilePath dir1_;
     42   FilePath dest_dir_;
     43   FilePath dest_file1_;
     44   FilePath dest_file2_;
     45   FilePath dest_dir1_;
     46 };
     47 
     48 TEST_F(CacheUtilTest, MoveCache) {
     49   EXPECT_TRUE(disk_cache::MoveCache(cache_dir_, dest_dir_));
     50   EXPECT_TRUE(file_util::PathExists(dest_dir_));
     51   EXPECT_TRUE(file_util::PathExists(dest_file1_));
     52   EXPECT_TRUE(file_util::PathExists(dest_file2_));
     53   EXPECT_TRUE(file_util::PathExists(dest_dir1_));
     54 #if defined(OS_CHROMEOS)
     55   EXPECT_TRUE(file_util::PathExists(cache_dir_)); // old cache dir stays
     56 #else
     57   EXPECT_FALSE(file_util::PathExists(cache_dir_)); // old cache is gone
     58 #endif
     59   EXPECT_FALSE(file_util::PathExists(file1_));
     60   EXPECT_FALSE(file_util::PathExists(file2_));
     61   EXPECT_FALSE(file_util::PathExists(dir1_));
     62 }
     63 
     64 TEST_F(CacheUtilTest, DeleteCache) {
     65   // DeleteCache won't delete subdirs, so let's not start with this
     66   // one around.
     67   file_util::Delete(dir1_, false);
     68   disk_cache::DeleteCache(cache_dir_, false);
     69   EXPECT_TRUE(file_util::PathExists(cache_dir_)); // cache dir stays
     70   EXPECT_FALSE(file_util::PathExists(file1_));
     71   EXPECT_FALSE(file_util::PathExists(file2_));
     72 }
     73 
     74 TEST_F(CacheUtilTest, DeleteCacheAndDir) {
     75   // DeleteCache won't delete subdirs, so let's not start with this
     76   // one around.
     77   file_util::Delete(dir1_, false);
     78   disk_cache::DeleteCache(cache_dir_, true);
     79   EXPECT_FALSE(file_util::PathExists(cache_dir_)); // cache dir is gone
     80   EXPECT_FALSE(file_util::PathExists(file1_));
     81   EXPECT_FALSE(file_util::PathExists(file2_));
     82 }
     83 
     84 TEST_F(CacheUtilTest, DeleteCacheFile) {
     85   EXPECT_TRUE(disk_cache::DeleteCacheFile(file1_));
     86   EXPECT_FALSE(file_util::PathExists(file1_));
     87   EXPECT_TRUE(file_util::PathExists(cache_dir_)); // cache dir stays
     88 }
     89 
     90 }  // namespace disk_cache
     91