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