Home | History | Annotate | Download | only in base
      1 // Copyright (c) 2009 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/file_util.h"
      6 #include "base/scoped_temp_dir.h"
      7 #include "testing/gtest/include/gtest/gtest.h"
      8 
      9 TEST(ScopedTempDir, FullPath) {
     10   FilePath test_path;
     11   file_util::CreateNewTempDirectory(FILE_PATH_LITERAL("scoped_temp_dir"),
     12                                     &test_path);
     13 
     14   // Against an existing dir, it should get destroyed when leaving scope.
     15   EXPECT_TRUE(file_util::DirectoryExists(test_path));
     16   {
     17     ScopedTempDir dir;
     18     EXPECT_TRUE(dir.Set(test_path));
     19     EXPECT_TRUE(dir.IsValid());
     20   }
     21   EXPECT_FALSE(file_util::DirectoryExists(test_path));
     22 
     23   {
     24     ScopedTempDir dir;
     25     dir.Set(test_path);
     26     // Now the dir doesn't exist, so ensure that it gets created.
     27     EXPECT_TRUE(file_util::DirectoryExists(test_path));
     28     // When we call Release(), it shouldn't get destroyed when leaving scope.
     29     FilePath path = dir.Take();
     30     EXPECT_EQ(path.value(), test_path.value());
     31     EXPECT_FALSE(dir.IsValid());
     32   }
     33   EXPECT_TRUE(file_util::DirectoryExists(test_path));
     34 
     35   // Clean up.
     36   {
     37     ScopedTempDir dir;
     38     dir.Set(test_path);
     39   }
     40   EXPECT_FALSE(file_util::DirectoryExists(test_path));
     41 }
     42 
     43 TEST(ScopedTempDir, TempDir) {
     44   // In this case, just verify that a directory was created and that it's a
     45   // child of TempDir.
     46   FilePath test_path;
     47   {
     48     ScopedTempDir dir;
     49     EXPECT_TRUE(dir.CreateUniqueTempDir());
     50     test_path = dir.path();
     51     EXPECT_TRUE(file_util::DirectoryExists(test_path));
     52     FilePath tmp_dir;
     53     EXPECT_TRUE(file_util::GetTempDir(&tmp_dir));
     54     EXPECT_TRUE(test_path.value().find(tmp_dir.value()) != std::string::npos);
     55   }
     56   EXPECT_FALSE(file_util::DirectoryExists(test_path));
     57 }
     58