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

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

Issue 174189: Remove uses of deprecated version of FileUtil::PathExists() in the installer.... (Closed) Base URL: http://src.chromium.org/svn/trunk/src/
Patch Set: wstring_exe_full_path removed Created 11 years, 4 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) 2006-2008 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2006-2008 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 #include <iostream> 8 #include <iostream>
9 9
10 #include "base/base_paths.h" 10 #include "base/base_paths.h"
(...skipping 42 matching lines...) Expand 10 before | Expand all | Expand 10 after
53 file.close(); 53 file.close();
54 } 54 }
55 55
56 wchar_t text_content_1[] = L"delete me"; 56 wchar_t text_content_1[] = L"delete me";
57 wchar_t text_content_2[] = L"delete me as well"; 57 wchar_t text_content_2[] = L"delete me as well";
58 }; 58 };
59 59
60 // Delete a tree without key path. Everything should be deleted. 60 // Delete a tree without key path. Everything should be deleted.
61 TEST_F(DeleteTreeWorkItemTest, DeleteTreeNoKeyPath) { 61 TEST_F(DeleteTreeWorkItemTest, DeleteTreeNoKeyPath) {
62 // Create tree to be deleted 62 // Create tree to be deleted
63 std::wstring dir_name_delete(test_dir_.ToWStringHack()); 63 FilePath dir_name_delete(test_dir_);
64 file_util::AppendToPath(&dir_name_delete, L"to_be_delete"); 64 dir_name_delete = dir_name_delete.AppendASCII("to_be_delete");
65 CreateDirectory(dir_name_delete.c_str(), NULL); 65 CreateDirectory(dir_name_delete.value().c_str(), NULL);
66 ASSERT_TRUE(file_util::PathExists(dir_name_delete)); 66 ASSERT_TRUE(file_util::PathExists(dir_name_delete));
67 67
68 std::wstring dir_name_delete_1(dir_name_delete); 68 FilePath dir_name_delete_1(dir_name_delete);
69 file_util::AppendToPath(&dir_name_delete_1, L"1"); 69 dir_name_delete_1 = dir_name_delete_1.AppendASCII("1");
70 CreateDirectory(dir_name_delete_1.c_str(), NULL); 70 CreateDirectory(dir_name_delete_1.value().c_str(), NULL);
71 ASSERT_TRUE(file_util::PathExists(dir_name_delete_1)); 71 ASSERT_TRUE(file_util::PathExists(dir_name_delete_1));
72 72
73 std::wstring dir_name_delete_2(dir_name_delete); 73 FilePath dir_name_delete_2(dir_name_delete);
74 file_util::AppendToPath(&dir_name_delete_2, L"2"); 74 dir_name_delete_2 = dir_name_delete_2.AppendASCII("2");
75 CreateDirectory(dir_name_delete_2.c_str(), NULL); 75 CreateDirectory(dir_name_delete_2.value().c_str(), NULL);
76 ASSERT_TRUE(file_util::PathExists(dir_name_delete_2)); 76 ASSERT_TRUE(file_util::PathExists(dir_name_delete_2));
77 77
78 std::wstring file_name_delete_1(dir_name_delete_1); 78 FilePath file_name_delete_1(dir_name_delete_1);
79 file_util::AppendToPath(&file_name_delete_1, L"File_1.txt"); 79 file_name_delete_1 = file_name_delete_1.AppendASCII("File_1.txt");
80 CreateTextFile(file_name_delete_1, text_content_1); 80 CreateTextFile(file_name_delete_1.value(), text_content_1);
81 ASSERT_TRUE(file_util::PathExists(file_name_delete_1)); 81 ASSERT_TRUE(file_util::PathExists(file_name_delete_1));
82 82
83 std::wstring file_name_delete_2(dir_name_delete_2); 83 FilePath file_name_delete_2(dir_name_delete_2);
84 file_util::AppendToPath(&file_name_delete_2, L"File_2.txt"); 84 file_name_delete_2 = file_name_delete_2.AppendASCII("File_2.txt");
85 CreateTextFile(file_name_delete_2, text_content_1); 85 CreateTextFile(file_name_delete_2.value(), text_content_1);
86 ASSERT_TRUE(file_util::PathExists(file_name_delete_2)); 86 ASSERT_TRUE(file_util::PathExists(file_name_delete_2));
87 87
88 // test Do() 88 // test Do()
89 scoped_ptr<DeleteTreeWorkItem> work_item( 89 scoped_ptr<DeleteTreeWorkItem> work_item(
90 WorkItem::CreateDeleteTreeWorkItem(dir_name_delete, std::wstring())); 90 WorkItem::CreateDeleteTreeWorkItem(dir_name_delete.ToWStringHack(),
91 std::wstring()));
91 EXPECT_TRUE(work_item->Do()); 92 EXPECT_TRUE(work_item->Do());
92 93
93 // everything should be gone 94 // everything should be gone
94 EXPECT_FALSE(file_util::PathExists(file_name_delete_1)); 95 EXPECT_FALSE(file_util::PathExists(file_name_delete_1));
95 EXPECT_FALSE(file_util::PathExists(file_name_delete_2)); 96 EXPECT_FALSE(file_util::PathExists(file_name_delete_2));
96 EXPECT_FALSE(file_util::PathExists(dir_name_delete)); 97 EXPECT_FALSE(file_util::PathExists(dir_name_delete));
97 98
98 work_item->Rollback(); 99 work_item->Rollback();
99 // everything should come back 100 // everything should come back
100 EXPECT_TRUE(file_util::PathExists(file_name_delete_1)); 101 EXPECT_TRUE(file_util::PathExists(file_name_delete_1));
101 EXPECT_TRUE(file_util::PathExists(file_name_delete_2)); 102 EXPECT_TRUE(file_util::PathExists(file_name_delete_2));
102 EXPECT_TRUE(file_util::PathExists(dir_name_delete)); 103 EXPECT_TRUE(file_util::PathExists(dir_name_delete));
103 } 104 }
104 105
105 106
106 // Delete a tree with keypath but not in use. Everything should be gone. 107 // Delete a tree with keypath but not in use. Everything should be gone.
107 // Rollback should bring back everything 108 // Rollback should bring back everything
108 TEST_F(DeleteTreeWorkItemTest, DeleteTree) { 109 TEST_F(DeleteTreeWorkItemTest, DeleteTree) {
109 // Create tree to be deleted 110 // Create tree to be deleted
110 std::wstring dir_name_delete(test_dir_.ToWStringHack()); 111 FilePath dir_name_delete(test_dir_);
111 file_util::AppendToPath(&dir_name_delete, L"to_be_delete"); 112 dir_name_delete = dir_name_delete.AppendASCII("to_be_delete");
112 CreateDirectory(dir_name_delete.c_str(), NULL); 113 CreateDirectory(dir_name_delete.value().c_str(), NULL);
113 ASSERT_TRUE(file_util::PathExists(dir_name_delete)); 114 ASSERT_TRUE(file_util::PathExists(dir_name_delete));
114 115
115 std::wstring dir_name_delete_1(dir_name_delete); 116 FilePath dir_name_delete_1(dir_name_delete);
116 file_util::AppendToPath(&dir_name_delete_1, L"1"); 117 dir_name_delete_1 = dir_name_delete_1.AppendASCII("1");
117 CreateDirectory(dir_name_delete_1.c_str(), NULL); 118 CreateDirectory(dir_name_delete_1.value().c_str(), NULL);
118 ASSERT_TRUE(file_util::PathExists(dir_name_delete_1)); 119 ASSERT_TRUE(file_util::PathExists(dir_name_delete_1));
119 120
120 std::wstring dir_name_delete_2(dir_name_delete); 121 FilePath dir_name_delete_2(dir_name_delete);
121 file_util::AppendToPath(&dir_name_delete_2, L"2"); 122 dir_name_delete_2 = dir_name_delete_2.AppendASCII("2");
122 CreateDirectory(dir_name_delete_2.c_str(), NULL); 123 CreateDirectory(dir_name_delete_2.value().c_str(), NULL);
123 ASSERT_TRUE(file_util::PathExists(dir_name_delete_2)); 124 ASSERT_TRUE(file_util::PathExists(dir_name_delete_2));
124 125
125 std::wstring file_name_delete_1(dir_name_delete_1); 126 FilePath file_name_delete_1(dir_name_delete_1);
126 file_util::AppendToPath(&file_name_delete_1, L"File_1.txt"); 127 file_name_delete_1 = file_name_delete_1.AppendASCII("File_1.txt");
127 CreateTextFile(file_name_delete_1, text_content_1); 128 CreateTextFile(file_name_delete_1.value(), text_content_1);
128 ASSERT_TRUE(file_util::PathExists(file_name_delete_1)); 129 ASSERT_TRUE(file_util::PathExists(file_name_delete_1));
129 130
130 std::wstring file_name_delete_2(dir_name_delete_2); 131 FilePath file_name_delete_2(dir_name_delete_2);
131 file_util::AppendToPath(&file_name_delete_2, L"File_2.txt"); 132 file_name_delete_2 = file_name_delete_2.AppendASCII("File_2.txt");
132 CreateTextFile(file_name_delete_2, text_content_1); 133 CreateTextFile(file_name_delete_2.value(), text_content_1);
133 ASSERT_TRUE(file_util::PathExists(file_name_delete_2)); 134 ASSERT_TRUE(file_util::PathExists(file_name_delete_2));
134 135
135 // test Do() 136 // test Do()
136 scoped_ptr<DeleteTreeWorkItem> work_item( 137 scoped_ptr<DeleteTreeWorkItem> work_item(
137 WorkItem::CreateDeleteTreeWorkItem(dir_name_delete, file_name_delete_1)); 138 WorkItem::CreateDeleteTreeWorkItem(dir_name_delete.ToWStringHack(),
139 file_name_delete_1.ToWStringHack()));
138 EXPECT_TRUE(work_item->Do()); 140 EXPECT_TRUE(work_item->Do());
139 141
140 // everything should be gone 142 // everything should be gone
141 EXPECT_FALSE(file_util::PathExists(file_name_delete_1)); 143 EXPECT_FALSE(file_util::PathExists(file_name_delete_1));
142 EXPECT_FALSE(file_util::PathExists(file_name_delete_2)); 144 EXPECT_FALSE(file_util::PathExists(file_name_delete_2));
143 EXPECT_FALSE(file_util::PathExists(dir_name_delete)); 145 EXPECT_FALSE(file_util::PathExists(dir_name_delete));
144 146
145 work_item->Rollback(); 147 work_item->Rollback();
146 // everything should come back 148 // everything should come back
147 EXPECT_TRUE(file_util::PathExists(file_name_delete_1)); 149 EXPECT_TRUE(file_util::PathExists(file_name_delete_1));
148 EXPECT_TRUE(file_util::PathExists(file_name_delete_2)); 150 EXPECT_TRUE(file_util::PathExists(file_name_delete_2));
149 EXPECT_TRUE(file_util::PathExists(dir_name_delete)); 151 EXPECT_TRUE(file_util::PathExists(dir_name_delete));
150 } 152 }
151 153
152 // Delete a tree with key_path in use. Everything should still be there. 154 // Delete a tree with key_path in use. Everything should still be there.
153 TEST_F(DeleteTreeWorkItemTest, DeleteTreeInUse) { 155 TEST_F(DeleteTreeWorkItemTest, DeleteTreeInUse) {
154 // Create tree to be deleted 156 // Create tree to be deleted
155 std::wstring dir_name_delete(test_dir_.ToWStringHack()); 157 FilePath dir_name_delete(test_dir_);
156 file_util::AppendToPath(&dir_name_delete, L"to_be_delete"); 158 dir_name_delete = dir_name_delete.AppendASCII("to_be_delete");
157 CreateDirectory(dir_name_delete.c_str(), NULL); 159 CreateDirectory(dir_name_delete.value().c_str(), NULL);
158 ASSERT_TRUE(file_util::PathExists(dir_name_delete)); 160 ASSERT_TRUE(file_util::PathExists(dir_name_delete));
159 161
160 std::wstring dir_name_delete_1(dir_name_delete); 162 FilePath dir_name_delete_1(dir_name_delete);
161 file_util::AppendToPath(&dir_name_delete_1, L"1"); 163 dir_name_delete_1 = dir_name_delete_1.AppendASCII("1");
162 CreateDirectory(dir_name_delete_1.c_str(), NULL); 164 CreateDirectory(dir_name_delete_1.value().c_str(), NULL);
163 ASSERT_TRUE(file_util::PathExists(dir_name_delete_1)); 165 ASSERT_TRUE(file_util::PathExists(dir_name_delete_1));
164 166
165 std::wstring dir_name_delete_2(dir_name_delete); 167 FilePath dir_name_delete_2(dir_name_delete);
166 file_util::AppendToPath(&dir_name_delete_2, L"2"); 168 dir_name_delete_2 = dir_name_delete_2.AppendASCII("2");
167 CreateDirectory(dir_name_delete_2.c_str(), NULL); 169 CreateDirectory(dir_name_delete_2.value().c_str(), NULL);
168 ASSERT_TRUE(file_util::PathExists(dir_name_delete_2)); 170 ASSERT_TRUE(file_util::PathExists(dir_name_delete_2));
169 171
170 std::wstring file_name_delete_1(dir_name_delete_1); 172 FilePath file_name_delete_1(dir_name_delete_1);
171 file_util::AppendToPath(&file_name_delete_1, L"File_1.txt"); 173 file_name_delete_1 = file_name_delete_1.AppendASCII("File_1.txt");
172 CreateTextFile(file_name_delete_1, text_content_1); 174 CreateTextFile(file_name_delete_1.value(), text_content_1);
173 ASSERT_TRUE(file_util::PathExists(file_name_delete_1)); 175 ASSERT_TRUE(file_util::PathExists(file_name_delete_1));
174 176
175 std::wstring file_name_delete_2(dir_name_delete_2); 177 FilePath file_name_delete_2(dir_name_delete_2);
176 file_util::AppendToPath(&file_name_delete_2, L"File_2.txt"); 178 file_name_delete_2 = file_name_delete_2.AppendASCII("File_2.txt");
177 CreateTextFile(file_name_delete_2, text_content_1); 179 CreateTextFile(file_name_delete_2.value(), text_content_1);
178 ASSERT_TRUE(file_util::PathExists(file_name_delete_2)); 180 ASSERT_TRUE(file_util::PathExists(file_name_delete_2));
179 181
180 // Create a key path file. 182 // Create a key path file.
181 std::wstring key_path(dir_name_delete); 183 FilePath key_path(dir_name_delete);
182 file_util::AppendToPath(&key_path, L"key_file.exe"); 184 key_path = key_path.AppendASCII("key_file.exe");
183 185
184 wchar_t exe_full_path_str[MAX_PATH]; 186 wchar_t exe_full_path_str[MAX_PATH];
185 ::GetModuleFileNameW(NULL, exe_full_path_str, MAX_PATH); 187 ::GetModuleFileNameW(NULL, exe_full_path_str, MAX_PATH);
186 std::wstring exe_full_path(exe_full_path_str); 188 FilePath exe_full_path(exe_full_path_str);
187 189
188 file_util::CopyFile(exe_full_path, key_path); 190 file_util::CopyFile(exe_full_path, key_path);
189 ASSERT_TRUE(file_util::PathExists(key_path)); 191 ASSERT_TRUE(file_util::PathExists(key_path));
190 192
191 LOG(INFO) << "copy ourself from " << exe_full_path << " to " << key_path; 193 LOG(INFO) << "copy ourself from "
194 << exe_full_path.value() << " to " << key_path.value();
192 195
193 // Run the key path file to keep it in use. 196 // Run the key path file to keep it in use.
194 STARTUPINFOW si = {sizeof(si)}; 197 STARTUPINFOW si = {sizeof(si)};
195 PROCESS_INFORMATION pi = {0}; 198 PROCESS_INFORMATION pi = {0};
196 ASSERT_TRUE( 199 ASSERT_TRUE(
197 ::CreateProcessW(NULL, const_cast<wchar_t*>(key_path.c_str()), 200 ::CreateProcessW(NULL, const_cast<wchar_t*>(key_path.value().c_str()),
198 NULL, NULL, FALSE, CREATE_NO_WINDOW | CREATE_SUSPENDED, 201 NULL, NULL, FALSE, CREATE_NO_WINDOW | CREATE_SUSPENDED,
199 NULL, NULL, &si, &pi)); 202 NULL, NULL, &si, &pi));
200 203
201 // test Do(). 204 // test Do().
202 { 205 {
203 scoped_ptr<DeleteTreeWorkItem> work_item( 206 scoped_ptr<DeleteTreeWorkItem> work_item(
204 WorkItem::CreateDeleteTreeWorkItem(dir_name_delete, key_path)); 207 WorkItem::CreateDeleteTreeWorkItem(dir_name_delete.ToWStringHack(),
208 key_path.ToWStringHack()));
205 209
206 // delete should fail as file in use. 210 // delete should fail as file in use.
207 EXPECT_FALSE(work_item->Do()); 211 EXPECT_FALSE(work_item->Do());
208 } 212 }
209 213
210 // verify everything is still there. 214 // verify everything is still there.
211 EXPECT_TRUE(file_util::PathExists(key_path)); 215 EXPECT_TRUE(file_util::PathExists(key_path));
212 EXPECT_TRUE(file_util::PathExists(file_name_delete_1)); 216 EXPECT_TRUE(file_util::PathExists(file_name_delete_1));
213 EXPECT_TRUE(file_util::PathExists(file_name_delete_2)); 217 EXPECT_TRUE(file_util::PathExists(file_name_delete_2));
214 218
215 TerminateProcess(pi.hProcess, 0); 219 TerminateProcess(pi.hProcess, 0);
216 // make sure the handle is closed. 220 // make sure the handle is closed.
217 WaitForSingleObject(pi.hProcess, INFINITE); 221 WaitForSingleObject(pi.hProcess, INFINITE);
218 } 222 }
OLDNEW
« no previous file with comments | « chrome/installer/util/create_reg_key_work_item_unittest.cc ('k') | chrome/installer/util/helper_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698