Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(33)

Side by Side Diff: chrome/installer/util/delete_tree_work_item_unittest.cc

Issue 6793008: Replacing base::DIR_TEMP with ScopedTempDir when appropriate. (Closed) Base URL: http://git.chromium.org/git/chromium.git@trunk
Patch Set: About a third of the way done. Created 9 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. 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 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include <windows.h> 5 #include <windows.h>
6 6
7 #include <fstream> 7 #include <fstream>
8 8
9 #include "base/base_paths.h" 9 #include "base/base_paths.h"
10 #include "base/file_util.h" 10 #include "base/file_util.h"
11 #include "base/logging.h" 11 #include "base/logging.h"
12 #include "base/memory/scoped_ptr.h" 12 #include "base/memory/scoped_ptr.h"
13 #include "base/memory/scoped_temp_dir.h" 13 #include "base/memory/scoped_temp_dir.h"
14 #include "base/path_service.h" 14 #include "base/path_service.h"
15 #include "base/process_util.h" 15 #include "base/process_util.h"
16 #include "base/string_util.h" 16 #include "base/string_util.h"
17 #include "chrome/installer/util/delete_tree_work_item.h" 17 #include "chrome/installer/util/delete_tree_work_item.h"
18 #include "chrome/installer/util/work_item.h" 18 #include "chrome/installer/util/work_item.h"
19 #include "testing/gtest/include/gtest/gtest.h" 19 #include "testing/gtest/include/gtest/gtest.h"
20 20
21 namespace { 21 namespace {
22 class DeleteTreeWorkItemTest : public testing::Test { 22 class DeleteTreeWorkItemTest : public testing::Test {
23 protected: 23 protected:
24 virtual void SetUp() { 24 virtual void SetUp() {
25 // Name a subdirectory of the user temp directory. 25 // Name a subdirectory of the user temp directory.
Paweł Hajdan Jr. 2011/04/08 15:58:17 nit: This comment seems weird now.
Mike West 2011/04/11 14:47:04 Done.
26 ASSERT_TRUE(PathService::Get(base::DIR_TEMP, &test_dir_)); 26 ASSERT_TRUE(temp_dir_.CreateUniqueTempDir());
27 test_dir_ = test_dir_.AppendASCII("DeleteTreeWorkItemTest");
28
29 // Create a fresh, empty copy of this test directory.
30 file_util::Delete(test_dir_, true);
31 file_util::CreateDirectoryW(test_dir_);
32
33 ASSERT_TRUE(file_util::PathExists(test_dir_));
34 } 27 }
35 28
36 virtual void TearDown() { 29 virtual void TearDown() {
Paweł Hajdan Jr. 2011/04/08 15:58:17 Empty TearDown can be removed.
Mike West 2011/04/11 14:47:04 Done.
37 // Clean up test directory
38 ASSERT_TRUE(file_util::Delete(test_dir_, true));
39 ASSERT_FALSE(file_util::PathExists(test_dir_));
40 } 30 }
41 31
42 // the path to temporary directory used to contain the test operations 32 // the path to temporary directory used to contain the test operations
43 FilePath test_dir_; 33 ScopedTempDir temp_dir_;
44 }; 34 };
45 35
46 // Simple function to dump some text into a new file. 36 // Simple function to dump some text into a new file.
47 void CreateTextFile(const std::wstring& filename, 37 void CreateTextFile(const std::wstring& filename,
48 const std::wstring& contents) { 38 const std::wstring& contents) {
49 std::ofstream file; 39 std::ofstream file;
50 file.open(filename.c_str()); 40 file.open(filename.c_str());
51 ASSERT_TRUE(file.is_open()); 41 ASSERT_TRUE(file.is_open());
52 file << contents; 42 file << contents;
53 file.close(); 43 file.close();
54 } 44 }
55 45
56 wchar_t text_content_1[] = L"delete me"; 46 wchar_t text_content_1[] = L"delete me";
57 wchar_t text_content_2[] = L"delete me as well"; 47 wchar_t text_content_2[] = L"delete me as well";
58 }; 48 };
59 49
60 // Delete a tree without key path. Everything should be deleted. 50 // Delete a tree without key path. Everything should be deleted.
61 TEST_F(DeleteTreeWorkItemTest, DeleteTreeNoKeyPath) { 51 TEST_F(DeleteTreeWorkItemTest, DeleteTreeNoKeyPath) {
62 // Create tree to be deleted 52 // Create tree to be deleted
63 FilePath dir_name_delete(test_dir_); 53 FilePath dir_name_delete(temp_dir_.path());
64 dir_name_delete = dir_name_delete.AppendASCII("to_be_delete"); 54 dir_name_delete = dir_name_delete.AppendASCII("to_be_delete");
65 file_util::CreateDirectory(dir_name_delete); 55 file_util::CreateDirectory(dir_name_delete);
66 ASSERT_TRUE(file_util::PathExists(dir_name_delete)); 56 ASSERT_TRUE(file_util::PathExists(dir_name_delete));
67 57
68 FilePath dir_name_delete_1(dir_name_delete); 58 FilePath dir_name_delete_1(dir_name_delete);
69 dir_name_delete_1 = dir_name_delete_1.AppendASCII("1"); 59 dir_name_delete_1 = dir_name_delete_1.AppendASCII("1");
70 file_util::CreateDirectory(dir_name_delete_1); 60 file_util::CreateDirectory(dir_name_delete_1);
71 ASSERT_TRUE(file_util::PathExists(dir_name_delete_1)); 61 ASSERT_TRUE(file_util::PathExists(dir_name_delete_1));
72 62
73 FilePath dir_name_delete_2(dir_name_delete); 63 FilePath dir_name_delete_2(dir_name_delete);
(...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after
105 EXPECT_TRUE(file_util::PathExists(file_name_delete_1)); 95 EXPECT_TRUE(file_util::PathExists(file_name_delete_1));
106 EXPECT_TRUE(file_util::PathExists(file_name_delete_2)); 96 EXPECT_TRUE(file_util::PathExists(file_name_delete_2));
107 EXPECT_TRUE(file_util::PathExists(dir_name_delete)); 97 EXPECT_TRUE(file_util::PathExists(dir_name_delete));
108 } 98 }
109 99
110 100
111 // Delete a tree with keypath but not in use. Everything should be gone. 101 // Delete a tree with keypath but not in use. Everything should be gone.
112 // Rollback should bring back everything 102 // Rollback should bring back everything
113 TEST_F(DeleteTreeWorkItemTest, DeleteTree) { 103 TEST_F(DeleteTreeWorkItemTest, DeleteTree) {
114 // Create tree to be deleted 104 // Create tree to be deleted
115 FilePath dir_name_delete(test_dir_); 105 FilePath dir_name_delete(temp_dir_.path());
116 dir_name_delete = dir_name_delete.AppendASCII("to_be_delete"); 106 dir_name_delete = dir_name_delete.AppendASCII("to_be_delete");
117 file_util::CreateDirectory(dir_name_delete); 107 file_util::CreateDirectory(dir_name_delete);
118 ASSERT_TRUE(file_util::PathExists(dir_name_delete)); 108 ASSERT_TRUE(file_util::PathExists(dir_name_delete));
119 109
120 FilePath dir_name_delete_1(dir_name_delete); 110 FilePath dir_name_delete_1(dir_name_delete);
121 dir_name_delete_1 = dir_name_delete_1.AppendASCII("1"); 111 dir_name_delete_1 = dir_name_delete_1.AppendASCII("1");
122 file_util::CreateDirectory(dir_name_delete_1); 112 file_util::CreateDirectory(dir_name_delete_1);
123 ASSERT_TRUE(file_util::PathExists(dir_name_delete_1)); 113 ASSERT_TRUE(file_util::PathExists(dir_name_delete_1));
124 114
125 FilePath dir_name_delete_2(dir_name_delete); 115 FilePath dir_name_delete_2(dir_name_delete);
(...skipping 29 matching lines...) Expand all
155 work_item->Rollback(); 145 work_item->Rollback();
156 // everything should come back 146 // everything should come back
157 EXPECT_TRUE(file_util::PathExists(file_name_delete_1)); 147 EXPECT_TRUE(file_util::PathExists(file_name_delete_1));
158 EXPECT_TRUE(file_util::PathExists(file_name_delete_2)); 148 EXPECT_TRUE(file_util::PathExists(file_name_delete_2));
159 EXPECT_TRUE(file_util::PathExists(dir_name_delete)); 149 EXPECT_TRUE(file_util::PathExists(dir_name_delete));
160 } 150 }
161 151
162 // Delete a tree with key_path in use. Everything should still be there. 152 // Delete a tree with key_path in use. Everything should still be there.
163 TEST_F(DeleteTreeWorkItemTest, DeleteTreeInUse) { 153 TEST_F(DeleteTreeWorkItemTest, DeleteTreeInUse) {
164 // Create tree to be deleted 154 // Create tree to be deleted
165 FilePath dir_name_delete(test_dir_); 155 FilePath dir_name_delete(temp_dir_.path());
166 dir_name_delete = dir_name_delete.AppendASCII("to_be_delete"); 156 dir_name_delete = dir_name_delete.AppendASCII("to_be_delete");
167 file_util::CreateDirectory(dir_name_delete); 157 file_util::CreateDirectory(dir_name_delete);
168 ASSERT_TRUE(file_util::PathExists(dir_name_delete)); 158 ASSERT_TRUE(file_util::PathExists(dir_name_delete));
169 159
170 FilePath dir_name_delete_1(dir_name_delete); 160 FilePath dir_name_delete_1(dir_name_delete);
171 dir_name_delete_1 = dir_name_delete_1.AppendASCII("1"); 161 dir_name_delete_1 = dir_name_delete_1.AppendASCII("1");
172 file_util::CreateDirectory(dir_name_delete_1); 162 file_util::CreateDirectory(dir_name_delete_1);
173 ASSERT_TRUE(file_util::PathExists(dir_name_delete_1)); 163 ASSERT_TRUE(file_util::PathExists(dir_name_delete_1));
174 164
175 FilePath dir_name_delete_2(dir_name_delete); 165 FilePath dir_name_delete_2(dir_name_delete);
(...skipping 49 matching lines...) Expand 10 before | Expand all | Expand 10 after
225 215
226 // verify everything is still there. 216 // verify everything is still there.
227 EXPECT_TRUE(file_util::PathExists(key_path)); 217 EXPECT_TRUE(file_util::PathExists(key_path));
228 EXPECT_TRUE(file_util::PathExists(file_name_delete_1)); 218 EXPECT_TRUE(file_util::PathExists(file_name_delete_1));
229 EXPECT_TRUE(file_util::PathExists(file_name_delete_2)); 219 EXPECT_TRUE(file_util::PathExists(file_name_delete_2));
230 220
231 TerminateProcess(pi.hProcess, 0); 221 TerminateProcess(pi.hProcess, 0);
232 // make sure the handle is closed. 222 // make sure the handle is closed.
233 WaitForSingleObject(pi.hProcess, INFINITE); 223 WaitForSingleObject(pi.hProcess, INFINITE);
234 } 224 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698