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

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

Issue 5429002: Support for checking multiple keyfiles when removing an installation package.... (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src/
Patch Set: '' Created 10 years 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
« no previous file with comments | « chrome/installer/util/delete_tree_work_item.cc ('k') | chrome/installer/util/package.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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"
(...skipping 67 matching lines...) Expand 10 before | Expand all | Expand 10 after
78 file_name_delete_1 = file_name_delete_1.AppendASCII("File_1.txt"); 78 file_name_delete_1 = file_name_delete_1.AppendASCII("File_1.txt");
79 CreateTextFile(file_name_delete_1.value(), text_content_1); 79 CreateTextFile(file_name_delete_1.value(), text_content_1);
80 ASSERT_TRUE(file_util::PathExists(file_name_delete_1)); 80 ASSERT_TRUE(file_util::PathExists(file_name_delete_1));
81 81
82 FilePath file_name_delete_2(dir_name_delete_2); 82 FilePath file_name_delete_2(dir_name_delete_2);
83 file_name_delete_2 = file_name_delete_2.AppendASCII("File_2.txt"); 83 file_name_delete_2 = file_name_delete_2.AppendASCII("File_2.txt");
84 CreateTextFile(file_name_delete_2.value(), text_content_1); 84 CreateTextFile(file_name_delete_2.value(), text_content_1);
85 ASSERT_TRUE(file_util::PathExists(file_name_delete_2)); 85 ASSERT_TRUE(file_util::PathExists(file_name_delete_2));
86 86
87 // test Do() 87 // test Do()
88 std::vector<FilePath> key_files;
88 scoped_ptr<DeleteTreeWorkItem> work_item( 89 scoped_ptr<DeleteTreeWorkItem> work_item(
89 WorkItem::CreateDeleteTreeWorkItem(dir_name_delete.ToWStringHack(), 90 WorkItem::CreateDeleteTreeWorkItem(dir_name_delete, key_files));
90 std::wstring()));
91 EXPECT_TRUE(work_item->Do()); 91 EXPECT_TRUE(work_item->Do());
92 92
93 // everything should be gone 93 // everything should be gone
94 EXPECT_FALSE(file_util::PathExists(file_name_delete_1)); 94 EXPECT_FALSE(file_util::PathExists(file_name_delete_1));
95 EXPECT_FALSE(file_util::PathExists(file_name_delete_2)); 95 EXPECT_FALSE(file_util::PathExists(file_name_delete_2));
96 EXPECT_FALSE(file_util::PathExists(dir_name_delete)); 96 EXPECT_FALSE(file_util::PathExists(dir_name_delete));
97 97
98 work_item->Rollback(); 98 work_item->Rollback();
99 // everything should come back 99 // everything should come back
100 EXPECT_TRUE(file_util::PathExists(file_name_delete_1)); 100 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"); 126 file_name_delete_1 = file_name_delete_1.AppendASCII("File_1.txt");
127 CreateTextFile(file_name_delete_1.value(), text_content_1); 127 CreateTextFile(file_name_delete_1.value(), text_content_1);
128 ASSERT_TRUE(file_util::PathExists(file_name_delete_1)); 128 ASSERT_TRUE(file_util::PathExists(file_name_delete_1));
129 129
130 FilePath file_name_delete_2(dir_name_delete_2); 130 FilePath file_name_delete_2(dir_name_delete_2);
131 file_name_delete_2 = file_name_delete_2.AppendASCII("File_2.txt"); 131 file_name_delete_2 = file_name_delete_2.AppendASCII("File_2.txt");
132 CreateTextFile(file_name_delete_2.value(), text_content_1); 132 CreateTextFile(file_name_delete_2.value(), text_content_1);
133 ASSERT_TRUE(file_util::PathExists(file_name_delete_2)); 133 ASSERT_TRUE(file_util::PathExists(file_name_delete_2));
134 134
135 // test Do() 135 // test Do()
136 std::vector<FilePath> key_files(1, file_name_delete_1);
136 scoped_ptr<DeleteTreeWorkItem> work_item( 137 scoped_ptr<DeleteTreeWorkItem> work_item(
137 WorkItem::CreateDeleteTreeWorkItem(dir_name_delete.ToWStringHack(), 138 WorkItem::CreateDeleteTreeWorkItem(dir_name_delete, key_files));
138 file_name_delete_1.ToWStringHack()));
139 EXPECT_TRUE(work_item->Do()); 139 EXPECT_TRUE(work_item->Do());
140 140
141 // everything should be gone 141 // everything should be gone
142 EXPECT_FALSE(file_util::PathExists(file_name_delete_1)); 142 EXPECT_FALSE(file_util::PathExists(file_name_delete_1));
143 EXPECT_FALSE(file_util::PathExists(file_name_delete_2)); 143 EXPECT_FALSE(file_util::PathExists(file_name_delete_2));
144 EXPECT_FALSE(file_util::PathExists(dir_name_delete)); 144 EXPECT_FALSE(file_util::PathExists(dir_name_delete));
145 145
146 work_item->Rollback(); 146 work_item->Rollback();
147 // everything should come back 147 // everything should come back
148 EXPECT_TRUE(file_util::PathExists(file_name_delete_1)); 148 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. 195 // Run the key path file to keep it in use.
196 STARTUPINFOW si = {sizeof(si)}; 196 STARTUPINFOW si = {sizeof(si)};
197 PROCESS_INFORMATION pi = {0}; 197 PROCESS_INFORMATION pi = {0};
198 ASSERT_TRUE( 198 ASSERT_TRUE(
199 ::CreateProcessW(NULL, const_cast<wchar_t*>(key_path.value().c_str()), 199 ::CreateProcessW(NULL, const_cast<wchar_t*>(key_path.value().c_str()),
200 NULL, NULL, FALSE, CREATE_NO_WINDOW | CREATE_SUSPENDED, 200 NULL, NULL, FALSE, CREATE_NO_WINDOW | CREATE_SUSPENDED,
201 NULL, NULL, &si, &pi)); 201 NULL, NULL, &si, &pi));
202 202
203 // test Do(). 203 // test Do().
204 { 204 {
205 std::vector<FilePath> key_paths(1, key_path);
205 scoped_ptr<DeleteTreeWorkItem> work_item( 206 scoped_ptr<DeleteTreeWorkItem> work_item(
206 WorkItem::CreateDeleteTreeWorkItem(dir_name_delete.ToWStringHack(), 207 WorkItem::CreateDeleteTreeWorkItem(dir_name_delete, key_paths));
207 key_path.ToWStringHack()));
208 208
209 // delete should fail as file in use. 209 // delete should fail as file in use.
210 EXPECT_FALSE(work_item->Do()); 210 EXPECT_FALSE(work_item->Do());
211 } 211 }
212 212
213 // verify everything is still there. 213 // verify everything is still there.
214 EXPECT_TRUE(file_util::PathExists(key_path)); 214 EXPECT_TRUE(file_util::PathExists(key_path));
215 EXPECT_TRUE(file_util::PathExists(file_name_delete_1)); 215 EXPECT_TRUE(file_util::PathExists(file_name_delete_1));
216 EXPECT_TRUE(file_util::PathExists(file_name_delete_2)); 216 EXPECT_TRUE(file_util::PathExists(file_name_delete_2));
217 217
218 TerminateProcess(pi.hProcess, 0); 218 TerminateProcess(pi.hProcess, 0);
219 // make sure the handle is closed. 219 // make sure the handle is closed.
220 WaitForSingleObject(pi.hProcess, INFINITE); 220 WaitForSingleObject(pi.hProcess, INFINITE);
221 } 221 }
OLDNEW
« no previous file with comments | « chrome/installer/util/delete_tree_work_item.cc ('k') | chrome/installer/util/package.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698