OLD | NEW |
1 // Copyright (c) 2009 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2009 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 43 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
54 // Simple function to dump some text into a new file. | 54 // Simple function to dump some text into a new file. |
55 void CreateTextFile(const std::wstring& filename, | 55 void CreateTextFile(const std::wstring& filename, |
56 const std::wstring& contents) { | 56 const std::wstring& contents) { |
57 std::ofstream file; | 57 std::ofstream file; |
58 file.open(filename.c_str()); | 58 file.open(filename.c_str()); |
59 ASSERT_TRUE(file.is_open()); | 59 ASSERT_TRUE(file.is_open()); |
60 file << contents; | 60 file << contents; |
61 file.close(); | 61 file.close(); |
62 } | 62 } |
63 | 63 |
64 bool IsFileInUse(const FilePath& path) { | 64 bool IsFileInUse(const std::wstring& path) { |
65 if (!file_util::PathExists(path)) | 65 if (!file_util::PathExists(path)) |
66 return false; | 66 return false; |
67 | 67 |
68 HANDLE handle = ::CreateFile(path.value().c_str(), FILE_ALL_ACCESS, | 68 HANDLE handle = ::CreateFile(path.c_str(), FILE_ALL_ACCESS, |
69 NULL, NULL, OPEN_EXISTING, NULL, NULL); | 69 NULL, NULL, OPEN_EXISTING, NULL, NULL); |
70 if (handle == INVALID_HANDLE_VALUE) | 70 if (handle == INVALID_HANDLE_VALUE) |
71 return true; | 71 return true; |
72 | 72 |
73 CloseHandle(handle); | 73 CloseHandle(handle); |
74 return false; | 74 return false; |
75 } | 75 } |
76 | 76 |
77 // Simple function to read text from a file. | 77 // Simple function to read text from a file. |
78 std::wstring ReadTextFile(const std::wstring& filename) { | 78 std::wstring ReadTextFile(const std::wstring& filename) { |
(...skipping 392 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
471 // make sure the handle is closed. | 471 // make sure the handle is closed. |
472 EXPECT_TRUE(WaitForSingleObject(pi.hProcess, 10000) == WAIT_OBJECT_0); | 472 EXPECT_TRUE(WaitForSingleObject(pi.hProcess, 10000) == WAIT_OBJECT_0); |
473 CloseHandle(pi.hProcess); | 473 CloseHandle(pi.hProcess); |
474 CloseHandle(pi.hThread); | 474 CloseHandle(pi.hThread); |
475 | 475 |
476 // Now the process has terminated, lets try overwriting the file again | 476 // Now the process has terminated, lets try overwriting the file again |
477 work_item.reset(WorkItem::CreateCopyTreeWorkItem( | 477 work_item.reset(WorkItem::CreateCopyTreeWorkItem( |
478 file_name_from.ToWStringHack(), file_name_to.ToWStringHack(), | 478 file_name_from.ToWStringHack(), file_name_to.ToWStringHack(), |
479 temp_dir_.ToWStringHack(), WorkItem::NEW_NAME_IF_IN_USE, | 479 temp_dir_.ToWStringHack(), WorkItem::NEW_NAME_IF_IN_USE, |
480 alternate_to.ToWStringHack())); | 480 alternate_to.ToWStringHack())); |
481 if (IsFileInUse(file_name_to)) | 481 if (IsFileInUse(file_name_to.value())) |
482 PlatformThread::Sleep(2000); | 482 PlatformThread::Sleep(2000); |
483 // If file is still in use, the rest of the test will fail. | 483 // If file is still in use, the rest of the test will fail. |
484 ASSERT_FALSE(IsFileInUse(file_name_to)); | 484 ASSERT_FALSE(IsFileInUse(file_name_to.value())); |
485 EXPECT_TRUE(work_item->Do()); | 485 EXPECT_TRUE(work_item->Do()); |
486 | 486 |
487 EXPECT_TRUE(file_util::PathExists(file_name_from)); | 487 EXPECT_TRUE(file_util::PathExists(file_name_from)); |
488 EXPECT_TRUE(file_util::PathExists(file_name_to)); | 488 EXPECT_TRUE(file_util::PathExists(file_name_to)); |
489 EXPECT_EQ(0, ReadTextFile(file_name_from.value()).compare(text_content_1)); | 489 EXPECT_EQ(0, ReadTextFile(file_name_from.value()).compare(text_content_1)); |
490 EXPECT_TRUE(file_util::ContentsEqual(file_name_from, file_name_to)); | 490 EXPECT_TRUE(file_util::ContentsEqual(file_name_from, file_name_to)); |
491 // verify that the backup path does exist | 491 // verify that the backup path does exist |
492 EXPECT_TRUE(file_util::PathExists(backup_file)); | 492 EXPECT_TRUE(file_util::PathExists(backup_file)); |
493 EXPECT_FALSE(file_util::PathExists(alternate_to)); | 493 EXPECT_FALSE(file_util::PathExists(alternate_to)); |
494 | 494 |
(...skipping 210 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
705 EXPECT_TRUE(file_util::ContentsEqual(file_name_from_1, file_name_to_1)); | 705 EXPECT_TRUE(file_util::ContentsEqual(file_name_from_1, file_name_to_1)); |
706 | 706 |
707 FilePath file_name_to_2(dir_name_to); | 707 FilePath file_name_to_2(dir_name_to); |
708 file_name_to_2 = file_name_to_2.AppendASCII("2"); | 708 file_name_to_2 = file_name_to_2.AppendASCII("2"); |
709 file_name_to_2 = file_name_to_2.AppendASCII("File_2.txt"); | 709 file_name_to_2 = file_name_to_2.AppendASCII("File_2.txt"); |
710 EXPECT_TRUE(file_util::PathExists(file_name_to_2)); | 710 EXPECT_TRUE(file_util::PathExists(file_name_to_2)); |
711 LOG(INFO) << "compare " | 711 LOG(INFO) << "compare " |
712 << file_name_from_2.value() << " and " << file_name_to_2.value(); | 712 << file_name_from_2.value() << " and " << file_name_to_2.value(); |
713 EXPECT_TRUE(file_util::ContentsEqual(file_name_from_2, file_name_to_2)); | 713 EXPECT_TRUE(file_util::ContentsEqual(file_name_from_2, file_name_to_2)); |
714 } | 714 } |
OLD | NEW |