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

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

Issue 6538025: Temp dir cleanup:... (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src/
Patch Set: '' Created 9 years, 10 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) 2010 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2010 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/path_service.h" 12 #include "base/path_service.h"
13 #include "base/process_util.h" 13 #include "base/process_util.h"
14 #include "base/scoped_ptr.h" 14 #include "base/scoped_ptr.h"
15 #include "base/scoped_temp_dir.h"
15 #include "base/string_util.h" 16 #include "base/string_util.h"
16 #include "chrome/installer/util/delete_tree_work_item.h" 17 #include "chrome/installer/util/delete_tree_work_item.h"
17 #include "chrome/installer/util/work_item.h" 18 #include "chrome/installer/util/work_item.h"
18 #include "testing/gtest/include/gtest/gtest.h" 19 #include "testing/gtest/include/gtest/gtest.h"
19 20
20 namespace { 21 namespace {
21 class DeleteTreeWorkItemTest : public testing::Test { 22 class DeleteTreeWorkItemTest : public testing::Test {
22 protected: 23 protected:
23 virtual void SetUp() { 24 virtual void SetUp() {
24 // Name a subdirectory of the user temp directory. 25 // Name a subdirectory of the user temp directory.
(...skipping 53 matching lines...) Expand 10 before | Expand all | Expand 10 after
78 file_name_delete_1 = file_name_delete_1.AppendASCII("File_1.txt"); 79 file_name_delete_1 = file_name_delete_1.AppendASCII("File_1.txt");
79 CreateTextFile(file_name_delete_1.value(), text_content_1); 80 CreateTextFile(file_name_delete_1.value(), text_content_1);
80 ASSERT_TRUE(file_util::PathExists(file_name_delete_1)); 81 ASSERT_TRUE(file_util::PathExists(file_name_delete_1));
81 82
82 FilePath file_name_delete_2(dir_name_delete_2); 83 FilePath file_name_delete_2(dir_name_delete_2);
83 file_name_delete_2 = file_name_delete_2.AppendASCII("File_2.txt"); 84 file_name_delete_2 = file_name_delete_2.AppendASCII("File_2.txt");
84 CreateTextFile(file_name_delete_2.value(), text_content_1); 85 CreateTextFile(file_name_delete_2.value(), text_content_1);
85 ASSERT_TRUE(file_util::PathExists(file_name_delete_2)); 86 ASSERT_TRUE(file_util::PathExists(file_name_delete_2));
86 87
87 // test Do() 88 // test Do()
89 ScopedTempDir temp_dir;
90 ASSERT_TRUE(temp_dir.CreateUniqueTempDir());
91
88 std::vector<FilePath> key_files; 92 std::vector<FilePath> key_files;
89 scoped_ptr<DeleteTreeWorkItem> work_item( 93 scoped_ptr<DeleteTreeWorkItem> work_item(
90 WorkItem::CreateDeleteTreeWorkItem(dir_name_delete, key_files)); 94 WorkItem::CreateDeleteTreeWorkItem(dir_name_delete, temp_dir.path(),
95 key_files));
91 EXPECT_TRUE(work_item->Do()); 96 EXPECT_TRUE(work_item->Do());
92 97
93 // everything should be gone 98 // everything should be gone
94 EXPECT_FALSE(file_util::PathExists(file_name_delete_1)); 99 EXPECT_FALSE(file_util::PathExists(file_name_delete_1));
95 EXPECT_FALSE(file_util::PathExists(file_name_delete_2)); 100 EXPECT_FALSE(file_util::PathExists(file_name_delete_2));
96 EXPECT_FALSE(file_util::PathExists(dir_name_delete)); 101 EXPECT_FALSE(file_util::PathExists(dir_name_delete));
97 102
98 work_item->Rollback(); 103 work_item->Rollback();
99 // everything should come back 104 // everything should come back
100 EXPECT_TRUE(file_util::PathExists(file_name_delete_1)); 105 EXPECT_TRUE(file_util::PathExists(file_name_delete_1));
(...skipping 25 matching lines...) Expand all
126 file_name_delete_1 = file_name_delete_1.AppendASCII("File_1.txt"); 131 file_name_delete_1 = file_name_delete_1.AppendASCII("File_1.txt");
127 CreateTextFile(file_name_delete_1.value(), text_content_1); 132 CreateTextFile(file_name_delete_1.value(), text_content_1);
128 ASSERT_TRUE(file_util::PathExists(file_name_delete_1)); 133 ASSERT_TRUE(file_util::PathExists(file_name_delete_1));
129 134
130 FilePath file_name_delete_2(dir_name_delete_2); 135 FilePath file_name_delete_2(dir_name_delete_2);
131 file_name_delete_2 = file_name_delete_2.AppendASCII("File_2.txt"); 136 file_name_delete_2 = file_name_delete_2.AppendASCII("File_2.txt");
132 CreateTextFile(file_name_delete_2.value(), text_content_1); 137 CreateTextFile(file_name_delete_2.value(), text_content_1);
133 ASSERT_TRUE(file_util::PathExists(file_name_delete_2)); 138 ASSERT_TRUE(file_util::PathExists(file_name_delete_2));
134 139
135 // test Do() 140 // test Do()
141 ScopedTempDir temp_dir;
142 ASSERT_TRUE(temp_dir.CreateUniqueTempDir());
143
136 std::vector<FilePath> key_files(1, file_name_delete_1); 144 std::vector<FilePath> key_files(1, file_name_delete_1);
137 scoped_ptr<DeleteTreeWorkItem> work_item( 145 scoped_ptr<DeleteTreeWorkItem> work_item(
138 WorkItem::CreateDeleteTreeWorkItem(dir_name_delete, key_files)); 146 WorkItem::CreateDeleteTreeWorkItem(dir_name_delete, temp_dir.path(),
147 key_files));
139 EXPECT_TRUE(work_item->Do()); 148 EXPECT_TRUE(work_item->Do());
140 149
141 // everything should be gone 150 // everything should be gone
142 EXPECT_FALSE(file_util::PathExists(file_name_delete_1)); 151 EXPECT_FALSE(file_util::PathExists(file_name_delete_1));
143 EXPECT_FALSE(file_util::PathExists(file_name_delete_2)); 152 EXPECT_FALSE(file_util::PathExists(file_name_delete_2));
144 EXPECT_FALSE(file_util::PathExists(dir_name_delete)); 153 EXPECT_FALSE(file_util::PathExists(dir_name_delete));
145 154
146 work_item->Rollback(); 155 work_item->Rollback();
147 // everything should come back 156 // everything should come back
148 EXPECT_TRUE(file_util::PathExists(file_name_delete_1)); 157 EXPECT_TRUE(file_util::PathExists(file_name_delete_1));
(...skipping 46 matching lines...) Expand 10 before | Expand all | Expand 10 after
195 // Run the key path file to keep it in use. 204 // Run the key path file to keep it in use.
196 STARTUPINFOW si = {sizeof(si)}; 205 STARTUPINFOW si = {sizeof(si)};
197 PROCESS_INFORMATION pi = {0}; 206 PROCESS_INFORMATION pi = {0};
198 ASSERT_TRUE( 207 ASSERT_TRUE(
199 ::CreateProcessW(NULL, const_cast<wchar_t*>(key_path.value().c_str()), 208 ::CreateProcessW(NULL, const_cast<wchar_t*>(key_path.value().c_str()),
200 NULL, NULL, FALSE, CREATE_NO_WINDOW | CREATE_SUSPENDED, 209 NULL, NULL, FALSE, CREATE_NO_WINDOW | CREATE_SUSPENDED,
201 NULL, NULL, &si, &pi)); 210 NULL, NULL, &si, &pi));
202 211
203 // test Do(). 212 // test Do().
204 { 213 {
214 ScopedTempDir temp_dir;
215 ASSERT_TRUE(temp_dir.CreateUniqueTempDir());
216
205 std::vector<FilePath> key_paths(1, key_path); 217 std::vector<FilePath> key_paths(1, key_path);
206 scoped_ptr<DeleteTreeWorkItem> work_item( 218 scoped_ptr<DeleteTreeWorkItem> work_item(
207 WorkItem::CreateDeleteTreeWorkItem(dir_name_delete, key_paths)); 219 WorkItem::CreateDeleteTreeWorkItem(dir_name_delete, temp_dir.path(),
220 key_paths));
208 221
209 // delete should fail as file in use. 222 // delete should fail as file in use.
210 EXPECT_FALSE(work_item->Do()); 223 EXPECT_FALSE(work_item->Do());
211 } 224 }
212 225
213 // verify everything is still there. 226 // verify everything is still there.
214 EXPECT_TRUE(file_util::PathExists(key_path)); 227 EXPECT_TRUE(file_util::PathExists(key_path));
215 EXPECT_TRUE(file_util::PathExists(file_name_delete_1)); 228 EXPECT_TRUE(file_util::PathExists(file_name_delete_1));
216 EXPECT_TRUE(file_util::PathExists(file_name_delete_2)); 229 EXPECT_TRUE(file_util::PathExists(file_name_delete_2));
217 230
218 TerminateProcess(pi.hProcess, 0); 231 TerminateProcess(pi.hProcess, 0);
219 // make sure the handle is closed. 232 // make sure the handle is closed.
220 WaitForSingleObject(pi.hProcess, INFINITE); 233 WaitForSingleObject(pi.hProcess, INFINITE);
221 } 234 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698