| OLD | NEW |
| 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 89 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 100 FilePath dir_name_to(test_dir_); | 100 FilePath dir_name_to(test_dir_); |
| 101 dir_name_to = dir_name_to.AppendASCII("Copy_To_Subdir"); | 101 dir_name_to = dir_name_to.AppendASCII("Copy_To_Subdir"); |
| 102 file_util::CreateDirectory(dir_name_to); | 102 file_util::CreateDirectory(dir_name_to); |
| 103 ASSERT_TRUE(file_util::PathExists(dir_name_to)); | 103 ASSERT_TRUE(file_util::PathExists(dir_name_to)); |
| 104 | 104 |
| 105 FilePath file_name_to(dir_name_to); | 105 FilePath file_name_to(dir_name_to); |
| 106 file_name_to = file_name_to.AppendASCII("File_To.txt"); | 106 file_name_to = file_name_to.AppendASCII("File_To.txt"); |
| 107 | 107 |
| 108 // test Do() | 108 // test Do() |
| 109 scoped_ptr<CopyTreeWorkItem> work_item( | 109 scoped_ptr<CopyTreeWorkItem> work_item( |
| 110 WorkItem::CreateCopyTreeWorkItem(file_name_from.ToWStringHack(), | 110 WorkItem::CreateCopyTreeWorkItem(file_name_from, |
| 111 file_name_to.ToWStringHack(), | 111 file_name_to, |
| 112 temp_dir_.ToWStringHack(), | 112 temp_dir_, |
| 113 WorkItem::ALWAYS)); | 113 WorkItem::ALWAYS, |
| 114 FilePath())); |
| 114 | 115 |
| 115 EXPECT_TRUE(work_item->Do()); | 116 EXPECT_TRUE(work_item->Do()); |
| 116 | 117 |
| 117 EXPECT_TRUE(file_util::PathExists(file_name_from)); | 118 EXPECT_TRUE(file_util::PathExists(file_name_from)); |
| 118 EXPECT_TRUE(file_util::PathExists(file_name_to)); | 119 EXPECT_TRUE(file_util::PathExists(file_name_to)); |
| 119 EXPECT_TRUE(file_util::ContentsEqual(file_name_from, file_name_to)); | 120 EXPECT_TRUE(file_util::ContentsEqual(file_name_from, file_name_to)); |
| 120 | 121 |
| 121 // test rollback() | 122 // test rollback() |
| 122 work_item->Rollback(); | 123 work_item->Rollback(); |
| 123 | 124 |
| (...skipping 17 matching lines...) Expand all Loading... |
| 141 file_util::CreateDirectory(dir_name_to); | 142 file_util::CreateDirectory(dir_name_to); |
| 142 ASSERT_TRUE(file_util::PathExists(dir_name_to)); | 143 ASSERT_TRUE(file_util::PathExists(dir_name_to)); |
| 143 | 144 |
| 144 FilePath file_name_to(dir_name_to); | 145 FilePath file_name_to(dir_name_to); |
| 145 file_name_to = file_name_to.AppendASCII("File_To.txt"); | 146 file_name_to = file_name_to.AppendASCII("File_To.txt"); |
| 146 CreateTextFile(file_name_to.value(), text_content_2); | 147 CreateTextFile(file_name_to.value(), text_content_2); |
| 147 ASSERT_TRUE(file_util::PathExists(file_name_to)); | 148 ASSERT_TRUE(file_util::PathExists(file_name_to)); |
| 148 | 149 |
| 149 // test Do() with always_overwrite being true. | 150 // test Do() with always_overwrite being true. |
| 150 scoped_ptr<CopyTreeWorkItem> work_item( | 151 scoped_ptr<CopyTreeWorkItem> work_item( |
| 151 WorkItem::CreateCopyTreeWorkItem(file_name_from.ToWStringHack(), | 152 WorkItem::CreateCopyTreeWorkItem(file_name_from, |
| 152 file_name_to.ToWStringHack(), | 153 file_name_to, |
| 153 temp_dir_.ToWStringHack(), | 154 temp_dir_, |
| 154 WorkItem::ALWAYS)); | 155 WorkItem::ALWAYS, |
| 156 FilePath())); |
| 155 | 157 |
| 156 EXPECT_TRUE(work_item->Do()); | 158 EXPECT_TRUE(work_item->Do()); |
| 157 | 159 |
| 158 EXPECT_TRUE(file_util::PathExists(file_name_from)); | 160 EXPECT_TRUE(file_util::PathExists(file_name_from)); |
| 159 EXPECT_TRUE(file_util::PathExists(file_name_to)); | 161 EXPECT_TRUE(file_util::PathExists(file_name_to)); |
| 160 EXPECT_EQ(0, ReadTextFile(file_name_from.value()).compare(text_content_1)); | 162 EXPECT_EQ(0, ReadTextFile(file_name_from.value()).compare(text_content_1)); |
| 161 EXPECT_EQ(0, ReadTextFile(file_name_to.value()).compare(text_content_1)); | 163 EXPECT_EQ(0, ReadTextFile(file_name_to.value()).compare(text_content_1)); |
| 162 | 164 |
| 163 // test rollback() | 165 // test rollback() |
| 164 work_item->Rollback(); | 166 work_item->Rollback(); |
| 165 | 167 |
| 166 EXPECT_TRUE(file_util::PathExists(file_name_from)); | 168 EXPECT_TRUE(file_util::PathExists(file_name_from)); |
| 167 EXPECT_TRUE(file_util::PathExists(file_name_to)); | 169 EXPECT_TRUE(file_util::PathExists(file_name_to)); |
| 168 EXPECT_EQ(0, ReadTextFile(file_name_from.value()).compare(text_content_1)); | 170 EXPECT_EQ(0, ReadTextFile(file_name_from.value()).compare(text_content_1)); |
| 169 EXPECT_EQ(0, ReadTextFile(file_name_to.value()).compare(text_content_2)); | 171 EXPECT_EQ(0, ReadTextFile(file_name_to.value()).compare(text_content_2)); |
| 170 | 172 |
| 171 // test Do() with always_overwrite being false. | 173 // test Do() with always_overwrite being false. |
| 172 // the file is still overwritten since the content is different. | 174 // the file is still overwritten since the content is different. |
| 173 work_item.reset( | 175 work_item.reset( |
| 174 WorkItem::CreateCopyTreeWorkItem(file_name_from.ToWStringHack(), | 176 WorkItem::CreateCopyTreeWorkItem(file_name_from, |
| 175 file_name_to.ToWStringHack(), | 177 file_name_to, |
| 176 temp_dir_.ToWStringHack(), | 178 temp_dir_, |
| 177 WorkItem::IF_DIFFERENT)); | 179 WorkItem::IF_DIFFERENT, |
| 180 FilePath())); |
| 178 | 181 |
| 179 EXPECT_TRUE(work_item->Do()); | 182 EXPECT_TRUE(work_item->Do()); |
| 180 | 183 |
| 181 EXPECT_TRUE(file_util::PathExists(file_name_from)); | 184 EXPECT_TRUE(file_util::PathExists(file_name_from)); |
| 182 EXPECT_TRUE(file_util::PathExists(file_name_to)); | 185 EXPECT_TRUE(file_util::PathExists(file_name_to)); |
| 183 EXPECT_EQ(0, ReadTextFile(file_name_from.value()).compare(text_content_1)); | 186 EXPECT_EQ(0, ReadTextFile(file_name_from.value()).compare(text_content_1)); |
| 184 EXPECT_EQ(0, ReadTextFile(file_name_to.value()).compare(text_content_1)); | 187 EXPECT_EQ(0, ReadTextFile(file_name_to.value()).compare(text_content_1)); |
| 185 | 188 |
| 186 // test rollback() | 189 // test rollback() |
| 187 work_item->Rollback(); | 190 work_item->Rollback(); |
| (...skipping 25 matching lines...) Expand all Loading... |
| 213 file_name_to = file_name_to.AppendASCII("File_To.txt"); | 216 file_name_to = file_name_to.AppendASCII("File_To.txt"); |
| 214 CreateTextFile(file_name_to.value(), text_content_1); | 217 CreateTextFile(file_name_to.value(), text_content_1); |
| 215 ASSERT_TRUE(file_util::PathExists(file_name_to)); | 218 ASSERT_TRUE(file_util::PathExists(file_name_to)); |
| 216 | 219 |
| 217 // Get the path of backup file | 220 // Get the path of backup file |
| 218 FilePath backup_file(temp_dir_); | 221 FilePath backup_file(temp_dir_); |
| 219 backup_file = backup_file.AppendASCII("File_To.txt"); | 222 backup_file = backup_file.AppendASCII("File_To.txt"); |
| 220 | 223 |
| 221 // test Do() with always_overwrite being true. | 224 // test Do() with always_overwrite being true. |
| 222 scoped_ptr<CopyTreeWorkItem> work_item( | 225 scoped_ptr<CopyTreeWorkItem> work_item( |
| 223 WorkItem::CreateCopyTreeWorkItem(file_name_from.ToWStringHack(), | 226 WorkItem::CreateCopyTreeWorkItem(file_name_from, |
| 224 file_name_to.ToWStringHack(), | 227 file_name_to, |
| 225 temp_dir_.ToWStringHack(), | 228 temp_dir_, |
| 226 WorkItem::ALWAYS)); | 229 WorkItem::ALWAYS, |
| 230 FilePath())); |
| 227 | 231 |
| 228 EXPECT_TRUE(work_item->Do()); | 232 EXPECT_TRUE(work_item->Do()); |
| 229 | 233 |
| 230 EXPECT_TRUE(file_util::PathExists(file_name_from)); | 234 EXPECT_TRUE(file_util::PathExists(file_name_from)); |
| 231 EXPECT_TRUE(file_util::PathExists(file_name_to)); | 235 EXPECT_TRUE(file_util::PathExists(file_name_to)); |
| 232 EXPECT_EQ(0, ReadTextFile(file_name_from.value()).compare(text_content_1)); | 236 EXPECT_EQ(0, ReadTextFile(file_name_from.value()).compare(text_content_1)); |
| 233 EXPECT_EQ(0, ReadTextFile(file_name_to.value()).compare(text_content_1)); | 237 EXPECT_EQ(0, ReadTextFile(file_name_to.value()).compare(text_content_1)); |
| 234 // we verify the file is overwritten by checking the existence of backup | 238 // we verify the file is overwritten by checking the existence of backup |
| 235 // file. | 239 // file. |
| 236 EXPECT_TRUE(file_util::PathExists(backup_file)); | 240 EXPECT_TRUE(file_util::PathExists(backup_file)); |
| 237 EXPECT_EQ(0, ReadTextFile(backup_file.value()).compare(text_content_1)); | 241 EXPECT_EQ(0, ReadTextFile(backup_file.value()).compare(text_content_1)); |
| 238 | 242 |
| 239 // test rollback() | 243 // test rollback() |
| 240 work_item->Rollback(); | 244 work_item->Rollback(); |
| 241 | 245 |
| 242 EXPECT_TRUE(file_util::PathExists(file_name_from)); | 246 EXPECT_TRUE(file_util::PathExists(file_name_from)); |
| 243 EXPECT_TRUE(file_util::PathExists(file_name_to)); | 247 EXPECT_TRUE(file_util::PathExists(file_name_to)); |
| 244 EXPECT_EQ(0, ReadTextFile(file_name_from.value()).compare(text_content_1)); | 248 EXPECT_EQ(0, ReadTextFile(file_name_from.value()).compare(text_content_1)); |
| 245 EXPECT_EQ(0, ReadTextFile(file_name_to.value()).compare(text_content_1)); | 249 EXPECT_EQ(0, ReadTextFile(file_name_to.value()).compare(text_content_1)); |
| 246 // the backup file should be gone after rollback | 250 // the backup file should be gone after rollback |
| 247 EXPECT_FALSE(file_util::PathExists(backup_file)); | 251 EXPECT_FALSE(file_util::PathExists(backup_file)); |
| 248 | 252 |
| 249 // test Do() with always_overwrite being false. nothing should change. | 253 // test Do() with always_overwrite being false. nothing should change. |
| 250 work_item.reset( | 254 work_item.reset( |
| 251 WorkItem::CreateCopyTreeWorkItem(file_name_from.ToWStringHack(), | 255 WorkItem::CreateCopyTreeWorkItem(file_name_from, |
| 252 file_name_to.ToWStringHack(), | 256 file_name_to, |
| 253 temp_dir_.ToWStringHack(), | 257 temp_dir_, |
| 254 WorkItem::IF_DIFFERENT)); | 258 WorkItem::IF_DIFFERENT, |
| 259 FilePath())); |
| 255 | 260 |
| 256 EXPECT_TRUE(work_item->Do()); | 261 EXPECT_TRUE(work_item->Do()); |
| 257 | 262 |
| 258 EXPECT_TRUE(file_util::PathExists(file_name_from)); | 263 EXPECT_TRUE(file_util::PathExists(file_name_from)); |
| 259 EXPECT_TRUE(file_util::PathExists(file_name_to)); | 264 EXPECT_TRUE(file_util::PathExists(file_name_to)); |
| 260 EXPECT_EQ(0, ReadTextFile(file_name_from.value()).compare(text_content_1)); | 265 EXPECT_EQ(0, ReadTextFile(file_name_from.value()).compare(text_content_1)); |
| 261 EXPECT_EQ(0, ReadTextFile(file_name_to.value()).compare(text_content_1)); | 266 EXPECT_EQ(0, ReadTextFile(file_name_to.value()).compare(text_content_1)); |
| 262 // we verify the file is not overwritten by checking that the backup | 267 // we verify the file is not overwritten by checking that the backup |
| 263 // file does not exist. | 268 // file does not exist. |
| 264 EXPECT_FALSE(file_util::PathExists(backup_file)); | 269 EXPECT_FALSE(file_util::PathExists(backup_file)); |
| (...skipping 27 matching lines...) Expand all Loading... |
| 292 CreateTextFile(file_name_to.value(), text_content_2); | 297 CreateTextFile(file_name_to.value(), text_content_2); |
| 293 ASSERT_TRUE(file_util::PathExists(file_name_to)); | 298 ASSERT_TRUE(file_util::PathExists(file_name_to)); |
| 294 | 299 |
| 295 // Get the path of backup file | 300 // Get the path of backup file |
| 296 FilePath backup_file(temp_dir_); | 301 FilePath backup_file(temp_dir_); |
| 297 backup_file = backup_file.AppendASCII("File_To.txt"); | 302 backup_file = backup_file.AppendASCII("File_To.txt"); |
| 298 | 303 |
| 299 { | 304 { |
| 300 // test Do(). | 305 // test Do(). |
| 301 scoped_ptr<CopyTreeWorkItem> work_item( | 306 scoped_ptr<CopyTreeWorkItem> work_item( |
| 302 WorkItem::CreateCopyTreeWorkItem(file_name_from.ToWStringHack(), | 307 WorkItem::CreateCopyTreeWorkItem(file_name_from, |
| 303 file_name_to.ToWStringHack(), | 308 file_name_to, |
| 304 temp_dir_.ToWStringHack(), | 309 temp_dir_, |
| 305 WorkItem::IF_DIFFERENT)); | 310 WorkItem::IF_DIFFERENT, |
| 311 FilePath())); |
| 306 | 312 |
| 307 EXPECT_TRUE(work_item->Do()); | 313 EXPECT_TRUE(work_item->Do()); |
| 308 | 314 |
| 309 EXPECT_TRUE(file_util::PathExists(file_name_from)); | 315 EXPECT_TRUE(file_util::PathExists(file_name_from)); |
| 310 EXPECT_TRUE(file_util::PathExists(file_name_to)); | 316 EXPECT_TRUE(file_util::PathExists(file_name_to)); |
| 311 EXPECT_EQ(0, ReadTextFile(file_name_from.value()).compare(text_content_1)); | 317 EXPECT_EQ(0, ReadTextFile(file_name_from.value()).compare(text_content_1)); |
| 312 EXPECT_EQ(0, ReadTextFile(file_name_to.value()).compare(text_content_1)); | 318 EXPECT_EQ(0, ReadTextFile(file_name_to.value()).compare(text_content_1)); |
| 313 // verify the file is moved to backup place. | 319 // verify the file is moved to backup place. |
| 314 EXPECT_TRUE(file_util::PathExists(backup_file)); | 320 EXPECT_TRUE(file_util::PathExists(backup_file)); |
| 315 EXPECT_EQ(0, ReadTextFile(backup_file.value()).compare(text_content_2)); | 321 EXPECT_EQ(0, ReadTextFile(backup_file.value()).compare(text_content_2)); |
| (...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 354 ::CreateProcess(NULL, const_cast<wchar_t*>(file_name_to.value().c_str()), | 360 ::CreateProcess(NULL, const_cast<wchar_t*>(file_name_to.value().c_str()), |
| 355 NULL, NULL, FALSE, CREATE_NO_WINDOW | CREATE_SUSPENDED, | 361 NULL, NULL, FALSE, CREATE_NO_WINDOW | CREATE_SUSPENDED, |
| 356 NULL, NULL, &si, &pi)); | 362 NULL, NULL, &si, &pi)); |
| 357 | 363 |
| 358 // Get the path of backup file | 364 // Get the path of backup file |
| 359 FilePath backup_file(temp_dir_); | 365 FilePath backup_file(temp_dir_); |
| 360 backup_file = backup_file.AppendASCII("File_To"); | 366 backup_file = backup_file.AppendASCII("File_To"); |
| 361 | 367 |
| 362 // test Do(). | 368 // test Do(). |
| 363 scoped_ptr<CopyTreeWorkItem> work_item( | 369 scoped_ptr<CopyTreeWorkItem> work_item( |
| 364 WorkItem::CreateCopyTreeWorkItem(file_name_from.ToWStringHack(), | 370 WorkItem::CreateCopyTreeWorkItem(file_name_from, |
| 365 file_name_to.ToWStringHack(), | 371 file_name_to, |
| 366 temp_dir_.ToWStringHack(), | 372 temp_dir_, |
| 367 WorkItem::IF_DIFFERENT)); | 373 WorkItem::IF_DIFFERENT, |
| 374 FilePath())); |
| 368 | 375 |
| 369 EXPECT_TRUE(work_item->Do()); | 376 EXPECT_TRUE(work_item->Do()); |
| 370 | 377 |
| 371 EXPECT_TRUE(file_util::PathExists(file_name_from)); | 378 EXPECT_TRUE(file_util::PathExists(file_name_from)); |
| 372 EXPECT_TRUE(file_util::PathExists(file_name_to)); | 379 EXPECT_TRUE(file_util::PathExists(file_name_to)); |
| 373 EXPECT_EQ(0, ReadTextFile(file_name_from.value()).compare(text_content_1)); | 380 EXPECT_EQ(0, ReadTextFile(file_name_from.value()).compare(text_content_1)); |
| 374 EXPECT_EQ(0, ReadTextFile(file_name_to.value()).compare(text_content_1)); | 381 EXPECT_EQ(0, ReadTextFile(file_name_to.value()).compare(text_content_1)); |
| 375 // verify the file in used is moved to backup place. | 382 // verify the file in used is moved to backup place. |
| 376 EXPECT_TRUE(file_util::PathExists(backup_file)); | 383 EXPECT_TRUE(file_util::PathExists(backup_file)); |
| 377 EXPECT_TRUE(file_util::ContentsEqual(exe_full_path, backup_file)); | 384 EXPECT_TRUE(file_util::ContentsEqual(exe_full_path, backup_file)); |
| (...skipping 54 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 432 ::CreateProcess(NULL, const_cast<wchar_t*>(file_name_to.value().c_str()), | 439 ::CreateProcess(NULL, const_cast<wchar_t*>(file_name_to.value().c_str()), |
| 433 NULL, NULL, FALSE, CREATE_NO_WINDOW | CREATE_SUSPENDED, | 440 NULL, NULL, FALSE, CREATE_NO_WINDOW | CREATE_SUSPENDED, |
| 434 NULL, NULL, &si, &pi)); | 441 NULL, NULL, &si, &pi)); |
| 435 | 442 |
| 436 // Get the path of backup file | 443 // Get the path of backup file |
| 437 FilePath backup_file(temp_dir_); | 444 FilePath backup_file(temp_dir_); |
| 438 backup_file = backup_file.AppendASCII("File_To"); | 445 backup_file = backup_file.AppendASCII("File_To"); |
| 439 | 446 |
| 440 // test Do(). | 447 // test Do(). |
| 441 scoped_ptr<CopyTreeWorkItem> work_item( | 448 scoped_ptr<CopyTreeWorkItem> work_item( |
| 442 WorkItem::CreateCopyTreeWorkItem(file_name_from.ToWStringHack(), | 449 WorkItem::CreateCopyTreeWorkItem(file_name_from, |
| 443 file_name_to.ToWStringHack(), | 450 file_name_to, |
| 444 temp_dir_.ToWStringHack(), | 451 temp_dir_, |
| 445 WorkItem::NEW_NAME_IF_IN_USE, | 452 WorkItem::NEW_NAME_IF_IN_USE, |
| 446 alternate_to.ToWStringHack())); | 453 alternate_to)); |
| 447 | 454 |
| 448 EXPECT_TRUE(work_item->Do()); | 455 EXPECT_TRUE(work_item->Do()); |
| 449 | 456 |
| 450 EXPECT_TRUE(file_util::PathExists(file_name_from)); | 457 EXPECT_TRUE(file_util::PathExists(file_name_from)); |
| 451 EXPECT_TRUE(file_util::PathExists(file_name_to)); | 458 EXPECT_TRUE(file_util::PathExists(file_name_to)); |
| 452 EXPECT_EQ(0, ReadTextFile(file_name_from.value()).compare(text_content_1)); | 459 EXPECT_EQ(0, ReadTextFile(file_name_from.value()).compare(text_content_1)); |
| 453 EXPECT_TRUE(file_util::ContentsEqual(exe_full_path, file_name_to)); | 460 EXPECT_TRUE(file_util::ContentsEqual(exe_full_path, file_name_to)); |
| 454 // verify that the backup path does not exist | 461 // verify that the backup path does not exist |
| 455 EXPECT_FALSE(file_util::PathExists(backup_file)); | 462 EXPECT_FALSE(file_util::PathExists(backup_file)); |
| 456 EXPECT_TRUE(file_util::ContentsEqual(file_name_from, alternate_to)); | 463 EXPECT_TRUE(file_util::ContentsEqual(file_name_from, alternate_to)); |
| (...skipping 10 matching lines...) Expand all Loading... |
| 467 EXPECT_FALSE(file_util::PathExists(alternate_to)); | 474 EXPECT_FALSE(file_util::PathExists(alternate_to)); |
| 468 | 475 |
| 469 TerminateProcess(pi.hProcess, 0); | 476 TerminateProcess(pi.hProcess, 0); |
| 470 // make sure the handle is closed. | 477 // make sure the handle is closed. |
| 471 EXPECT_TRUE(WaitForSingleObject(pi.hProcess, 10000) == WAIT_OBJECT_0); | 478 EXPECT_TRUE(WaitForSingleObject(pi.hProcess, 10000) == WAIT_OBJECT_0); |
| 472 CloseHandle(pi.hProcess); | 479 CloseHandle(pi.hProcess); |
| 473 CloseHandle(pi.hThread); | 480 CloseHandle(pi.hThread); |
| 474 | 481 |
| 475 // Now the process has terminated, lets try overwriting the file again | 482 // Now the process has terminated, lets try overwriting the file again |
| 476 work_item.reset(WorkItem::CreateCopyTreeWorkItem( | 483 work_item.reset(WorkItem::CreateCopyTreeWorkItem( |
| 477 file_name_from.ToWStringHack(), file_name_to.ToWStringHack(), | 484 file_name_from, file_name_to, |
| 478 temp_dir_.ToWStringHack(), WorkItem::NEW_NAME_IF_IN_USE, | 485 temp_dir_, WorkItem::NEW_NAME_IF_IN_USE, |
| 479 alternate_to.ToWStringHack())); | 486 alternate_to)); |
| 480 if (IsFileInUse(file_name_to)) | 487 if (IsFileInUse(file_name_to)) |
| 481 base::PlatformThread::Sleep(2000); | 488 base::PlatformThread::Sleep(2000); |
| 482 // If file is still in use, the rest of the test will fail. | 489 // If file is still in use, the rest of the test will fail. |
| 483 ASSERT_FALSE(IsFileInUse(file_name_to)); | 490 ASSERT_FALSE(IsFileInUse(file_name_to)); |
| 484 EXPECT_TRUE(work_item->Do()); | 491 EXPECT_TRUE(work_item->Do()); |
| 485 | 492 |
| 486 EXPECT_TRUE(file_util::PathExists(file_name_from)); | 493 EXPECT_TRUE(file_util::PathExists(file_name_from)); |
| 487 EXPECT_TRUE(file_util::PathExists(file_name_to)); | 494 EXPECT_TRUE(file_util::PathExists(file_name_to)); |
| 488 EXPECT_EQ(0, ReadTextFile(file_name_from.value()).compare(text_content_1)); | 495 EXPECT_EQ(0, ReadTextFile(file_name_from.value()).compare(text_content_1)); |
| 489 EXPECT_TRUE(file_util::ContentsEqual(file_name_from, file_name_to)); | 496 EXPECT_TRUE(file_util::ContentsEqual(file_name_from, file_name_to)); |
| (...skipping 39 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 529 file_name_to = file_name_to.AppendASCII("File_To"); | 536 file_name_to = file_name_to.AppendASCII("File_To"); |
| 530 file_util::CopyFile(exe_full_path, file_name_to); | 537 file_util::CopyFile(exe_full_path, file_name_to); |
| 531 ASSERT_TRUE(file_util::PathExists(file_name_to)); | 538 ASSERT_TRUE(file_util::PathExists(file_name_to)); |
| 532 | 539 |
| 533 // Get the path of backup file | 540 // Get the path of backup file |
| 534 FilePath backup_file(temp_dir_); | 541 FilePath backup_file(temp_dir_); |
| 535 backup_file = backup_file.AppendASCII("File_To"); | 542 backup_file = backup_file.AppendASCII("File_To"); |
| 536 | 543 |
| 537 // test Do(). | 544 // test Do(). |
| 538 scoped_ptr<CopyTreeWorkItem> work_item( | 545 scoped_ptr<CopyTreeWorkItem> work_item( |
| 539 WorkItem::CreateCopyTreeWorkItem(file_name_from.ToWStringHack(), | 546 WorkItem::CreateCopyTreeWorkItem( |
| 540 file_name_to.ToWStringHack(), temp_dir_.ToWStringHack(), | 547 file_name_from, |
| 541 WorkItem::IF_NOT_PRESENT, L"")); | 548 file_name_to, temp_dir_, |
| 549 WorkItem::IF_NOT_PRESENT, |
| 550 FilePath())); |
| 542 EXPECT_TRUE(work_item->Do()); | 551 EXPECT_TRUE(work_item->Do()); |
| 543 | 552 |
| 544 // verify that the source, destination have not changed and backup path | 553 // verify that the source, destination have not changed and backup path |
| 545 // does not exist | 554 // does not exist |
| 546 EXPECT_TRUE(file_util::PathExists(file_name_from)); | 555 EXPECT_TRUE(file_util::PathExists(file_name_from)); |
| 547 EXPECT_TRUE(file_util::PathExists(file_name_to)); | 556 EXPECT_TRUE(file_util::PathExists(file_name_to)); |
| 548 EXPECT_EQ(0, ReadTextFile(file_name_from.value()).compare(text_content_1)); | 557 EXPECT_EQ(0, ReadTextFile(file_name_from.value()).compare(text_content_1)); |
| 549 EXPECT_TRUE(file_util::ContentsEqual(exe_full_path, file_name_to)); | 558 EXPECT_TRUE(file_util::ContentsEqual(exe_full_path, file_name_to)); |
| 550 EXPECT_FALSE(file_util::PathExists(backup_file)); | 559 EXPECT_FALSE(file_util::PathExists(backup_file)); |
| 551 | 560 |
| 552 // test rollback() | 561 // test rollback() |
| 553 work_item->Rollback(); | 562 work_item->Rollback(); |
| 554 | 563 |
| 555 // verify that the source, destination have not changed and backup path | 564 // verify that the source, destination have not changed and backup path |
| 556 // does not exist after rollback also | 565 // does not exist after rollback also |
| 557 EXPECT_TRUE(file_util::PathExists(file_name_from)); | 566 EXPECT_TRUE(file_util::PathExists(file_name_from)); |
| 558 EXPECT_TRUE(file_util::PathExists(file_name_to)); | 567 EXPECT_TRUE(file_util::PathExists(file_name_to)); |
| 559 EXPECT_EQ(0, ReadTextFile(file_name_from.value()).compare(text_content_1)); | 568 EXPECT_EQ(0, ReadTextFile(file_name_from.value()).compare(text_content_1)); |
| 560 EXPECT_TRUE(file_util::ContentsEqual(exe_full_path, file_name_to)); | 569 EXPECT_TRUE(file_util::ContentsEqual(exe_full_path, file_name_to)); |
| 561 EXPECT_FALSE(file_util::PathExists(backup_file)); | 570 EXPECT_FALSE(file_util::PathExists(backup_file)); |
| 562 | 571 |
| 563 // Now delete the destination and try copying the file again. | 572 // Now delete the destination and try copying the file again. |
| 564 file_util::Delete(file_name_to, true); | 573 file_util::Delete(file_name_to, true); |
| 565 work_item.reset(WorkItem::CreateCopyTreeWorkItem( | 574 work_item.reset(WorkItem::CreateCopyTreeWorkItem( |
| 566 file_name_from.ToWStringHack(), file_name_to.ToWStringHack(), | 575 file_name_from, file_name_to, |
| 567 temp_dir_.ToWStringHack(), WorkItem::IF_NOT_PRESENT, L"")); | 576 temp_dir_, WorkItem::IF_NOT_PRESENT, |
| 577 FilePath())); |
| 568 EXPECT_TRUE(work_item->Do()); | 578 EXPECT_TRUE(work_item->Do()); |
| 569 | 579 |
| 570 // verify that the source, destination are the same and backup path | 580 // verify that the source, destination are the same and backup path |
| 571 // does not exist | 581 // does not exist |
| 572 EXPECT_TRUE(file_util::PathExists(file_name_from)); | 582 EXPECT_TRUE(file_util::PathExists(file_name_from)); |
| 573 EXPECT_TRUE(file_util::PathExists(file_name_to)); | 583 EXPECT_TRUE(file_util::PathExists(file_name_to)); |
| 574 EXPECT_EQ(0, ReadTextFile(file_name_from.value()).compare(text_content_1)); | 584 EXPECT_EQ(0, ReadTextFile(file_name_from.value()).compare(text_content_1)); |
| 575 EXPECT_EQ(0, ReadTextFile(file_name_to.value()).compare(text_content_1)); | 585 EXPECT_EQ(0, ReadTextFile(file_name_to.value()).compare(text_content_1)); |
| 576 EXPECT_FALSE(file_util::PathExists(backup_file)); | 586 EXPECT_FALSE(file_util::PathExists(backup_file)); |
| 577 | 587 |
| (...skipping 43 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 621 NULL, NULL, FALSE, CREATE_NO_WINDOW | CREATE_SUSPENDED, | 631 NULL, NULL, FALSE, CREATE_NO_WINDOW | CREATE_SUSPENDED, |
| 622 NULL, NULL, &si, &pi)); | 632 NULL, NULL, &si, &pi)); |
| 623 | 633 |
| 624 // Get the path of backup file | 634 // Get the path of backup file |
| 625 FilePath backup_file(temp_dir_); | 635 FilePath backup_file(temp_dir_); |
| 626 backup_file = backup_file.AppendASCII("File_To"); | 636 backup_file = backup_file.AppendASCII("File_To"); |
| 627 | 637 |
| 628 // test Do(). | 638 // test Do(). |
| 629 { | 639 { |
| 630 scoped_ptr<CopyTreeWorkItem> work_item( | 640 scoped_ptr<CopyTreeWorkItem> work_item( |
| 631 WorkItem::CreateCopyTreeWorkItem(file_name_from.ToWStringHack(), | 641 WorkItem::CreateCopyTreeWorkItem(file_name_from, |
| 632 file_name_to.ToWStringHack(), | 642 file_name_to, |
| 633 temp_dir_.ToWStringHack(), | 643 temp_dir_, |
| 634 WorkItem::IF_DIFFERENT)); | 644 WorkItem::IF_DIFFERENT, |
| 645 FilePath())); |
| 635 | 646 |
| 636 EXPECT_TRUE(work_item->Do()); | 647 EXPECT_TRUE(work_item->Do()); |
| 637 | 648 |
| 638 EXPECT_TRUE(file_util::PathExists(file_name_from)); | 649 EXPECT_TRUE(file_util::PathExists(file_name_from)); |
| 639 EXPECT_TRUE(file_util::PathExists(file_name_to)); | 650 EXPECT_TRUE(file_util::PathExists(file_name_to)); |
| 640 EXPECT_EQ(0, ReadTextFile(file_name_from.value()).compare(text_content_1)); | 651 EXPECT_EQ(0, ReadTextFile(file_name_from.value()).compare(text_content_1)); |
| 641 EXPECT_EQ(0, ReadTextFile(file_name_to.value()).compare(text_content_1)); | 652 EXPECT_EQ(0, ReadTextFile(file_name_to.value()).compare(text_content_1)); |
| 642 // verify the file in used is moved to backup place. | 653 // verify the file in used is moved to backup place. |
| 643 EXPECT_TRUE(file_util::PathExists(backup_file)); | 654 EXPECT_TRUE(file_util::PathExists(backup_file)); |
| 644 EXPECT_TRUE(file_util::ContentsEqual(exe_full_path, backup_file)); | 655 EXPECT_TRUE(file_util::ContentsEqual(exe_full_path, backup_file)); |
| (...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 683 file_name_from_2 = file_name_from_2.AppendASCII("File_2.txt"); | 694 file_name_from_2 = file_name_from_2.AppendASCII("File_2.txt"); |
| 684 CreateTextFile(file_name_from_2.value(), text_content_1); | 695 CreateTextFile(file_name_from_2.value(), text_content_1); |
| 685 ASSERT_TRUE(file_util::PathExists(file_name_from_2)); | 696 ASSERT_TRUE(file_util::PathExists(file_name_from_2)); |
| 686 | 697 |
| 687 FilePath dir_name_to(test_dir_); | 698 FilePath dir_name_to(test_dir_); |
| 688 dir_name_to = dir_name_to.AppendASCII("to"); | 699 dir_name_to = dir_name_to.AppendASCII("to"); |
| 689 | 700 |
| 690 // test Do() | 701 // test Do() |
| 691 { | 702 { |
| 692 scoped_ptr<CopyTreeWorkItem> work_item( | 703 scoped_ptr<CopyTreeWorkItem> work_item( |
| 693 WorkItem::CreateCopyTreeWorkItem(dir_name_from.ToWStringHack(), | 704 WorkItem::CreateCopyTreeWorkItem(dir_name_from, |
| 694 dir_name_to.ToWStringHack(), | 705 dir_name_to, |
| 695 temp_dir_.ToWStringHack(), | 706 temp_dir_, |
| 696 WorkItem::ALWAYS)); | 707 WorkItem::ALWAYS, |
| 708 FilePath())); |
| 697 | 709 |
| 698 EXPECT_TRUE(work_item->Do()); | 710 EXPECT_TRUE(work_item->Do()); |
| 699 } | 711 } |
| 700 | 712 |
| 701 FilePath file_name_to_1(dir_name_to); | 713 FilePath file_name_to_1(dir_name_to); |
| 702 file_name_to_1 = file_name_to_1.AppendASCII("1"); | 714 file_name_to_1 = file_name_to_1.AppendASCII("1"); |
| 703 file_name_to_1 = file_name_to_1.AppendASCII("File_1.txt"); | 715 file_name_to_1 = file_name_to_1.AppendASCII("File_1.txt"); |
| 704 EXPECT_TRUE(file_util::PathExists(file_name_to_1)); | 716 EXPECT_TRUE(file_util::PathExists(file_name_to_1)); |
| 705 VLOG(1) << "compare " << file_name_from_1.value() | 717 VLOG(1) << "compare " << file_name_from_1.value() |
| 706 << " and " << file_name_to_1.value(); | 718 << " and " << file_name_to_1.value(); |
| 707 EXPECT_TRUE(file_util::ContentsEqual(file_name_from_1, file_name_to_1)); | 719 EXPECT_TRUE(file_util::ContentsEqual(file_name_from_1, file_name_to_1)); |
| 708 | 720 |
| 709 FilePath file_name_to_2(dir_name_to); | 721 FilePath file_name_to_2(dir_name_to); |
| 710 file_name_to_2 = file_name_to_2.AppendASCII("2"); | 722 file_name_to_2 = file_name_to_2.AppendASCII("2"); |
| 711 file_name_to_2 = file_name_to_2.AppendASCII("File_2.txt"); | 723 file_name_to_2 = file_name_to_2.AppendASCII("File_2.txt"); |
| 712 EXPECT_TRUE(file_util::PathExists(file_name_to_2)); | 724 EXPECT_TRUE(file_util::PathExists(file_name_to_2)); |
| 713 VLOG(1) << "compare " << file_name_from_2.value() | 725 VLOG(1) << "compare " << file_name_from_2.value() |
| 714 << " and " << file_name_to_2.value(); | 726 << " and " << file_name_to_2.value(); |
| 715 EXPECT_TRUE(file_util::ContentsEqual(file_name_from_2, file_name_to_2)); | 727 EXPECT_TRUE(file_util::ContentsEqual(file_name_from_2, file_name_to_2)); |
| 716 } | 728 } |
| OLD | NEW |