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

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

Issue 1878313003: Convert //chrome/installer from scoped_ptr to std::unique_ptr (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Revert decompress.cc in mini_installer. Created 4 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
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 "chrome/installer/util/delete_tree_work_item.h"
6
5 #include <windows.h> 7 #include <windows.h>
6 8
7 #include <fstream> 9 #include <fstream>
10 #include <memory>
8 11
9 #include "base/base_paths.h" 12 #include "base/base_paths.h"
10 #include "base/files/file_util.h" 13 #include "base/files/file_util.h"
11 #include "base/files/scoped_temp_dir.h" 14 #include "base/files/scoped_temp_dir.h"
12 #include "base/logging.h" 15 #include "base/logging.h"
13 #include "base/memory/scoped_ptr.h"
14 #include "base/strings/string_util.h" 16 #include "base/strings/string_util.h"
15 #include "chrome/installer/util/delete_tree_work_item.h"
16 #include "chrome/installer/util/work_item.h" 17 #include "chrome/installer/util/work_item.h"
17 #include "testing/gtest/include/gtest/gtest.h" 18 #include "testing/gtest/include/gtest/gtest.h"
18 19
19 namespace { 20 namespace {
20 21
21 class DeleteTreeWorkItemTest : public testing::Test { 22 class DeleteTreeWorkItemTest : public testing::Test {
22 protected: 23 protected:
23 void SetUp() override { ASSERT_TRUE(temp_dir_.CreateUniqueTempDir()); } 24 void SetUp() override { ASSERT_TRUE(temp_dir_.CreateUniqueTempDir()); }
24 25
25 // The temporary directory used to contain the test operations. 26 // The temporary directory used to contain the test operations.
(...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after
66 base::FilePath file_name_delete_2(dir_name_delete_2); 67 base::FilePath file_name_delete_2(dir_name_delete_2);
67 file_name_delete_2 = file_name_delete_2.AppendASCII("File_2.txt"); 68 file_name_delete_2 = file_name_delete_2.AppendASCII("File_2.txt");
68 CreateTextFile(file_name_delete_2.value(), text_content_1); 69 CreateTextFile(file_name_delete_2.value(), text_content_1);
69 ASSERT_TRUE(base::PathExists(file_name_delete_2)); 70 ASSERT_TRUE(base::PathExists(file_name_delete_2));
70 71
71 // Test Do(). 72 // Test Do().
72 base::ScopedTempDir temp_dir; 73 base::ScopedTempDir temp_dir;
73 ASSERT_TRUE(temp_dir.CreateUniqueTempDir()); 74 ASSERT_TRUE(temp_dir.CreateUniqueTempDir());
74 75
75 std::vector<base::FilePath> key_files; 76 std::vector<base::FilePath> key_files;
76 scoped_ptr<DeleteTreeWorkItem> work_item( 77 std::unique_ptr<DeleteTreeWorkItem> work_item(
77 WorkItem::CreateDeleteTreeWorkItem(dir_name_delete, temp_dir.path(), 78 WorkItem::CreateDeleteTreeWorkItem(dir_name_delete, temp_dir.path(),
78 key_files)); 79 key_files));
79 EXPECT_TRUE(work_item->Do()); 80 EXPECT_TRUE(work_item->Do());
80 81
81 // everything should be gone 82 // everything should be gone
82 EXPECT_FALSE(base::PathExists(file_name_delete_1)); 83 EXPECT_FALSE(base::PathExists(file_name_delete_1));
83 EXPECT_FALSE(base::PathExists(file_name_delete_2)); 84 EXPECT_FALSE(base::PathExists(file_name_delete_2));
84 EXPECT_FALSE(base::PathExists(dir_name_delete)); 85 EXPECT_FALSE(base::PathExists(dir_name_delete));
85 86
86 work_item->Rollback(); 87 work_item->Rollback();
(...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after
118 base::FilePath file_name_delete_2(dir_name_delete_2); 119 base::FilePath file_name_delete_2(dir_name_delete_2);
119 file_name_delete_2 = file_name_delete_2.AppendASCII("File_2.txt"); 120 file_name_delete_2 = file_name_delete_2.AppendASCII("File_2.txt");
120 CreateTextFile(file_name_delete_2.value(), text_content_1); 121 CreateTextFile(file_name_delete_2.value(), text_content_1);
121 ASSERT_TRUE(base::PathExists(file_name_delete_2)); 122 ASSERT_TRUE(base::PathExists(file_name_delete_2));
122 123
123 // test Do() 124 // test Do()
124 base::ScopedTempDir temp_dir; 125 base::ScopedTempDir temp_dir;
125 ASSERT_TRUE(temp_dir.CreateUniqueTempDir()); 126 ASSERT_TRUE(temp_dir.CreateUniqueTempDir());
126 127
127 std::vector<base::FilePath> key_files(1, file_name_delete_1); 128 std::vector<base::FilePath> key_files(1, file_name_delete_1);
128 scoped_ptr<DeleteTreeWorkItem> work_item( 129 std::unique_ptr<DeleteTreeWorkItem> work_item(
129 WorkItem::CreateDeleteTreeWorkItem(dir_name_delete, temp_dir.path(), 130 WorkItem::CreateDeleteTreeWorkItem(dir_name_delete, temp_dir.path(),
130 key_files)); 131 key_files));
131 EXPECT_TRUE(work_item->Do()); 132 EXPECT_TRUE(work_item->Do());
132 133
133 // everything should be gone 134 // everything should be gone
134 EXPECT_FALSE(base::PathExists(file_name_delete_1)); 135 EXPECT_FALSE(base::PathExists(file_name_delete_1));
135 EXPECT_FALSE(base::PathExists(file_name_delete_2)); 136 EXPECT_FALSE(base::PathExists(file_name_delete_2));
136 EXPECT_FALSE(base::PathExists(dir_name_delete)); 137 EXPECT_FALSE(base::PathExists(dir_name_delete));
137 138
138 work_item->Rollback(); 139 work_item->Rollback();
(...skipping 53 matching lines...) Expand 10 before | Expand all | Expand 10 after
192 ::CreateProcessW(NULL, &writable_key_path[0], 193 ::CreateProcessW(NULL, &writable_key_path[0],
193 NULL, NULL, FALSE, CREATE_NO_WINDOW | CREATE_SUSPENDED, 194 NULL, NULL, FALSE, CREATE_NO_WINDOW | CREATE_SUSPENDED,
194 NULL, NULL, &si, &pi)); 195 NULL, NULL, &si, &pi));
195 196
196 // test Do(). 197 // test Do().
197 { 198 {
198 base::ScopedTempDir temp_dir; 199 base::ScopedTempDir temp_dir;
199 ASSERT_TRUE(temp_dir.CreateUniqueTempDir()); 200 ASSERT_TRUE(temp_dir.CreateUniqueTempDir());
200 201
201 std::vector<base::FilePath> key_paths(1, key_path); 202 std::vector<base::FilePath> key_paths(1, key_path);
202 scoped_ptr<DeleteTreeWorkItem> work_item( 203 std::unique_ptr<DeleteTreeWorkItem> work_item(
203 WorkItem::CreateDeleteTreeWorkItem(dir_name_delete, temp_dir.path(), 204 WorkItem::CreateDeleteTreeWorkItem(dir_name_delete, temp_dir.path(),
204 key_paths)); 205 key_paths));
205 206
206 // delete should fail as file in use. 207 // delete should fail as file in use.
207 EXPECT_FALSE(work_item->Do()); 208 EXPECT_FALSE(work_item->Do());
208 } 209 }
209 210
210 { 211 {
211 base::ScopedTempDir temp_dir; 212 base::ScopedTempDir temp_dir;
212 ASSERT_TRUE(temp_dir.CreateUniqueTempDir()); 213 ASSERT_TRUE(temp_dir.CreateUniqueTempDir());
213 214
214 // No key paths, the deletion should succeed. 215 // No key paths, the deletion should succeed.
215 std::vector<base::FilePath> key_paths; 216 std::vector<base::FilePath> key_paths;
216 scoped_ptr<DeleteTreeWorkItem> work_item( 217 std::unique_ptr<DeleteTreeWorkItem> work_item(
217 WorkItem::CreateDeleteTreeWorkItem(dir_name_delete, temp_dir.path(), 218 WorkItem::CreateDeleteTreeWorkItem(dir_name_delete, temp_dir.path(),
218 key_paths)); 219 key_paths));
219 220
220 EXPECT_TRUE(work_item->Do()); 221 EXPECT_TRUE(work_item->Do());
221 work_item->Rollback(); 222 work_item->Rollback();
222 } 223 }
223 224
224 // verify everything is still there. 225 // verify everything is still there.
225 EXPECT_TRUE(base::PathExists(key_path)); 226 EXPECT_TRUE(base::PathExists(key_path));
226 EXPECT_TRUE(base::PathExists(file_name_delete_1)); 227 EXPECT_TRUE(base::PathExists(file_name_delete_1));
227 EXPECT_TRUE(base::PathExists(file_name_delete_2)); 228 EXPECT_TRUE(base::PathExists(file_name_delete_2));
228 229
229 TerminateProcess(pi.hProcess, 0); 230 TerminateProcess(pi.hProcess, 0);
230 // make sure the handle is closed. 231 // make sure the handle is closed.
231 WaitForSingleObject(pi.hProcess, INFINITE); 232 WaitForSingleObject(pi.hProcess, INFINITE);
232 } 233 }
OLDNEW
« no previous file with comments | « chrome/installer/util/delete_tree_work_item.h ('k') | chrome/installer/util/firewall_manager_win.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698