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