| OLD | NEW |
| 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 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 "base/files/file_util_proxy.h" | 5 #include "base/files/file_util_proxy.h" |
| 6 | 6 |
| 7 #include <map> | 7 #include <map> |
| 8 | 8 |
| 9 #include "base/bind.h" | 9 #include "base/bind.h" |
| 10 #include "base/file_util.h" | 10 #include "base/file_util.h" |
| (...skipping 110 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 121 FileUtilProxy::CreateOrOpen( | 121 FileUtilProxy::CreateOrOpen( |
| 122 file_task_runner(), | 122 file_task_runner(), |
| 123 test_path(), | 123 test_path(), |
| 124 PLATFORM_FILE_CREATE | PLATFORM_FILE_READ, | 124 PLATFORM_FILE_CREATE | PLATFORM_FILE_READ, |
| 125 Bind(&FileUtilProxyTest::DidCreateOrOpen, weak_factory_.GetWeakPtr())); | 125 Bind(&FileUtilProxyTest::DidCreateOrOpen, weak_factory_.GetWeakPtr())); |
| 126 MessageLoop::current()->Run(); | 126 MessageLoop::current()->Run(); |
| 127 | 127 |
| 128 EXPECT_EQ(PLATFORM_FILE_OK, error_); | 128 EXPECT_EQ(PLATFORM_FILE_OK, error_); |
| 129 EXPECT_TRUE(created_); | 129 EXPECT_TRUE(created_); |
| 130 EXPECT_NE(kInvalidPlatformFileValue, file_); | 130 EXPECT_NE(kInvalidPlatformFileValue, file_); |
| 131 EXPECT_TRUE(file_util::PathExists(test_path())); | 131 EXPECT_TRUE(PathExists(test_path())); |
| 132 } | 132 } |
| 133 | 133 |
| 134 TEST_F(FileUtilProxyTest, CreateOrOpen_Open) { | 134 TEST_F(FileUtilProxyTest, CreateOrOpen_Open) { |
| 135 // Creates a file. | 135 // Creates a file. |
| 136 file_util::WriteFile(test_path(), NULL, 0); | 136 file_util::WriteFile(test_path(), NULL, 0); |
| 137 ASSERT_TRUE(file_util::PathExists(test_path())); | 137 ASSERT_TRUE(PathExists(test_path())); |
| 138 | 138 |
| 139 // Opens the created file. | 139 // Opens the created file. |
| 140 FileUtilProxy::CreateOrOpen( | 140 FileUtilProxy::CreateOrOpen( |
| 141 file_task_runner(), | 141 file_task_runner(), |
| 142 test_path(), | 142 test_path(), |
| 143 PLATFORM_FILE_OPEN | PLATFORM_FILE_READ, | 143 PLATFORM_FILE_OPEN | PLATFORM_FILE_READ, |
| 144 Bind(&FileUtilProxyTest::DidCreateOrOpen, weak_factory_.GetWeakPtr())); | 144 Bind(&FileUtilProxyTest::DidCreateOrOpen, weak_factory_.GetWeakPtr())); |
| 145 MessageLoop::current()->Run(); | 145 MessageLoop::current()->Run(); |
| 146 | 146 |
| 147 EXPECT_EQ(PLATFORM_FILE_OK, error_); | 147 EXPECT_EQ(PLATFORM_FILE_OK, error_); |
| 148 EXPECT_FALSE(created_); | 148 EXPECT_FALSE(created_); |
| 149 EXPECT_NE(kInvalidPlatformFileValue, file_); | 149 EXPECT_NE(kInvalidPlatformFileValue, file_); |
| 150 } | 150 } |
| 151 | 151 |
| 152 TEST_F(FileUtilProxyTest, CreateOrOpen_OpenNonExistent) { | 152 TEST_F(FileUtilProxyTest, CreateOrOpen_OpenNonExistent) { |
| 153 FileUtilProxy::CreateOrOpen( | 153 FileUtilProxy::CreateOrOpen( |
| 154 file_task_runner(), | 154 file_task_runner(), |
| 155 test_path(), | 155 test_path(), |
| 156 PLATFORM_FILE_OPEN | PLATFORM_FILE_READ, | 156 PLATFORM_FILE_OPEN | PLATFORM_FILE_READ, |
| 157 Bind(&FileUtilProxyTest::DidCreateOrOpen, weak_factory_.GetWeakPtr())); | 157 Bind(&FileUtilProxyTest::DidCreateOrOpen, weak_factory_.GetWeakPtr())); |
| 158 MessageLoop::current()->Run(); | 158 MessageLoop::current()->Run(); |
| 159 EXPECT_EQ(PLATFORM_FILE_ERROR_NOT_FOUND, error_); | 159 EXPECT_EQ(PLATFORM_FILE_ERROR_NOT_FOUND, error_); |
| 160 EXPECT_FALSE(created_); | 160 EXPECT_FALSE(created_); |
| 161 EXPECT_EQ(kInvalidPlatformFileValue, file_); | 161 EXPECT_EQ(kInvalidPlatformFileValue, file_); |
| 162 EXPECT_FALSE(file_util::PathExists(test_path())); | 162 EXPECT_FALSE(PathExists(test_path())); |
| 163 } | 163 } |
| 164 | 164 |
| 165 TEST_F(FileUtilProxyTest, Close) { | 165 TEST_F(FileUtilProxyTest, Close) { |
| 166 // Creates a file. | 166 // Creates a file. |
| 167 PlatformFile file = GetTestPlatformFile( | 167 PlatformFile file = GetTestPlatformFile( |
| 168 PLATFORM_FILE_CREATE | PLATFORM_FILE_WRITE); | 168 PLATFORM_FILE_CREATE | PLATFORM_FILE_WRITE); |
| 169 | 169 |
| 170 #if defined(OS_WIN) | 170 #if defined(OS_WIN) |
| 171 // This fails on Windows if the file is not closed. | 171 // This fails on Windows if the file is not closed. |
| 172 EXPECT_FALSE(base::Move(test_path(), | 172 EXPECT_FALSE(base::Move(test_path(), |
| (...skipping 10 matching lines...) Expand all Loading... |
| 183 // Now it should pass on all platforms. | 183 // Now it should pass on all platforms. |
| 184 EXPECT_TRUE(base::Move(test_path(), test_dir_path().AppendASCII("new"))); | 184 EXPECT_TRUE(base::Move(test_path(), test_dir_path().AppendASCII("new"))); |
| 185 } | 185 } |
| 186 | 186 |
| 187 TEST_F(FileUtilProxyTest, CreateTemporary) { | 187 TEST_F(FileUtilProxyTest, CreateTemporary) { |
| 188 FileUtilProxy::CreateTemporary( | 188 FileUtilProxy::CreateTemporary( |
| 189 file_task_runner(), 0 /* additional_file_flags */, | 189 file_task_runner(), 0 /* additional_file_flags */, |
| 190 Bind(&FileUtilProxyTest::DidCreateTemporary, weak_factory_.GetWeakPtr())); | 190 Bind(&FileUtilProxyTest::DidCreateTemporary, weak_factory_.GetWeakPtr())); |
| 191 MessageLoop::current()->Run(); | 191 MessageLoop::current()->Run(); |
| 192 EXPECT_EQ(PLATFORM_FILE_OK, error_); | 192 EXPECT_EQ(PLATFORM_FILE_OK, error_); |
| 193 EXPECT_TRUE(file_util::PathExists(path_)); | 193 EXPECT_TRUE(PathExists(path_)); |
| 194 EXPECT_NE(kInvalidPlatformFileValue, file_); | 194 EXPECT_NE(kInvalidPlatformFileValue, file_); |
| 195 | 195 |
| 196 // The file should be writable. | 196 // The file should be writable. |
| 197 #if defined(OS_WIN) | 197 #if defined(OS_WIN) |
| 198 HANDLE hEvent = CreateEvent(NULL, FALSE, FALSE, NULL); | 198 HANDLE hEvent = CreateEvent(NULL, FALSE, FALSE, NULL); |
| 199 OVERLAPPED overlapped = {0}; | 199 OVERLAPPED overlapped = {0}; |
| 200 overlapped.hEvent = hEvent; | 200 overlapped.hEvent = hEvent; |
| 201 DWORD bytes_written; | 201 DWORD bytes_written; |
| 202 if (!::WriteFile(file_, "test", 4, &bytes_written, &overlapped)) { | 202 if (!::WriteFile(file_, "test", 4, &bytes_written, &overlapped)) { |
| 203 // Temporary file is created with ASYNC flag, so WriteFile may return 0 | 203 // Temporary file is created with ASYNC flag, so WriteFile may return 0 |
| (...skipping 198 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 402 char buffer[53]; | 402 char buffer[53]; |
| 403 EXPECT_EQ(53, file_util::ReadFile(test_path(), buffer, 53)); | 403 EXPECT_EQ(53, file_util::ReadFile(test_path(), buffer, 53)); |
| 404 int i = 0; | 404 int i = 0; |
| 405 for (; i < 10; ++i) | 405 for (; i < 10; ++i) |
| 406 EXPECT_EQ(kTestData[i], buffer[i]); | 406 EXPECT_EQ(kTestData[i], buffer[i]); |
| 407 for (; i < 53; ++i) | 407 for (; i < 53; ++i) |
| 408 EXPECT_EQ(0, buffer[i]); | 408 EXPECT_EQ(0, buffer[i]); |
| 409 } | 409 } |
| 410 | 410 |
| 411 } // namespace base | 411 } // namespace base |
| OLD | NEW |