OLD | NEW |
1 // Copyright 2013 The Chromium Authors. All rights reserved. | 1 // Copyright 2013 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/browser/chromeos/drive/fileapi_worker.h" | 5 #include "chrome/browser/chromeos/drive/fileapi_worker.h" |
6 | 6 |
7 #include "base/bind.h" | 7 #include "base/bind.h" |
8 #include "base/bind_helpers.h" | 8 #include "base/bind_helpers.h" |
9 #include "base/file_util.h" | 9 #include "base/file_util.h" |
10 #include "base/memory/scoped_ptr.h" | 10 #include "base/memory/scoped_ptr.h" |
(...skipping 152 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
163 base::Bind(&GetFileSystem, static_cast<FileSystemInterface*>(NULL)), | 163 base::Bind(&GetFileSystem, static_cast<FileSystemInterface*>(NULL)), |
164 google_apis::test_util::CreateCopyResultCallback(&file_system), | 164 google_apis::test_util::CreateCopyResultCallback(&file_system), |
165 base::Closure()); | 165 base::Closure()); |
166 } | 166 } |
167 | 167 |
168 TEST_F(FileApiWorkerTest, OpenFileForCreateWrite) { | 168 TEST_F(FileApiWorkerTest, OpenFileForCreateWrite) { |
169 const base::FilePath kDummyPath = base::FilePath::FromUTF8Unsafe("whatever"); | 169 const base::FilePath kDummyPath = base::FilePath::FromUTF8Unsafe("whatever"); |
170 const std::string kWriteData = "byebye"; | 170 const std::string kWriteData = "byebye"; |
171 | 171 |
172 base::FilePath temp_path; | 172 base::FilePath temp_path; |
173 file_util::CreateTemporaryFile(&temp_path); | 173 base::CreateTemporaryFile(&temp_path); |
174 | 174 |
175 // CREATE => CREATE (fails if file existed.) | 175 // CREATE => CREATE (fails if file existed.) |
176 TestFileSystemForOpenFile file_system(temp_path, CREATE_FILE); | 176 TestFileSystemForOpenFile file_system(temp_path, CREATE_FILE); |
177 const int64 kExpectedSize = 0; | 177 const int64 kExpectedSize = 0; |
178 | 178 |
179 OpenFile(kDummyPath, | 179 OpenFile(kDummyPath, |
180 base::PLATFORM_FILE_CREATE | base::PLATFORM_FILE_WRITE, | 180 base::PLATFORM_FILE_CREATE | base::PLATFORM_FILE_WRITE, |
181 base::Bind(&VerifyWrite, kExpectedSize, temp_path, kWriteData), | 181 base::Bind(&VerifyWrite, kExpectedSize, temp_path, kWriteData), |
182 &file_system); | 182 &file_system); |
183 test_util::RunBlockingPoolTask(); | 183 test_util::RunBlockingPoolTask(); |
184 EXPECT_TRUE(file_system.closed()); | 184 EXPECT_TRUE(file_system.closed()); |
185 } | 185 } |
186 | 186 |
187 TEST_F(FileApiWorkerTest, OpenFileForOpenAlwaysWrite) { | 187 TEST_F(FileApiWorkerTest, OpenFileForOpenAlwaysWrite) { |
188 const base::FilePath kDummyPath = base::FilePath::FromUTF8Unsafe("whatever"); | 188 const base::FilePath kDummyPath = base::FilePath::FromUTF8Unsafe("whatever"); |
189 const std::string kWriteData = "byebye"; | 189 const std::string kWriteData = "byebye"; |
190 const std::string kInitialData = "hello"; | 190 const std::string kInitialData = "hello"; |
191 | 191 |
192 base::FilePath temp_path; | 192 base::FilePath temp_path; |
193 file_util::CreateTemporaryFile(&temp_path); | 193 base::CreateTemporaryFile(&temp_path); |
194 google_apis::test_util::WriteStringToFile(temp_path, kInitialData); | 194 google_apis::test_util::WriteStringToFile(temp_path, kInitialData); |
195 | 195 |
196 // OPEN_ALWAYS => OPEN_OR_CREATE (success whether file exists or not.) | 196 // OPEN_ALWAYS => OPEN_OR_CREATE (success whether file exists or not.) |
197 // No truncation should take place. | 197 // No truncation should take place. |
198 TestFileSystemForOpenFile file_system(temp_path, OPEN_OR_CREATE_FILE); | 198 TestFileSystemForOpenFile file_system(temp_path, OPEN_OR_CREATE_FILE); |
199 const int64 kExpectedSize = static_cast<int64>(kInitialData.size()); | 199 const int64 kExpectedSize = static_cast<int64>(kInitialData.size()); |
200 | 200 |
201 OpenFile(kDummyPath, | 201 OpenFile(kDummyPath, |
202 base::PLATFORM_FILE_OPEN_ALWAYS | base::PLATFORM_FILE_WRITE, | 202 base::PLATFORM_FILE_OPEN_ALWAYS | base::PLATFORM_FILE_WRITE, |
203 base::Bind(&VerifyWrite, kExpectedSize, temp_path, kWriteData), | 203 base::Bind(&VerifyWrite, kExpectedSize, temp_path, kWriteData), |
204 &file_system); | 204 &file_system); |
205 test_util::RunBlockingPoolTask(); | 205 test_util::RunBlockingPoolTask(); |
206 EXPECT_TRUE(file_system.closed()); | 206 EXPECT_TRUE(file_system.closed()); |
207 } | 207 } |
208 | 208 |
209 TEST_F(FileApiWorkerTest, OpenFileForOpenTruncatedWrite) { | 209 TEST_F(FileApiWorkerTest, OpenFileForOpenTruncatedWrite) { |
210 const base::FilePath kDummyPath = base::FilePath::FromUTF8Unsafe("whatever"); | 210 const base::FilePath kDummyPath = base::FilePath::FromUTF8Unsafe("whatever"); |
211 const std::string kInitialData = "hello"; | 211 const std::string kInitialData = "hello"; |
212 const std::string kWriteData = "byebye"; | 212 const std::string kWriteData = "byebye"; |
213 | 213 |
214 base::FilePath temp_path; | 214 base::FilePath temp_path; |
215 file_util::CreateTemporaryFile(&temp_path); | 215 base::CreateTemporaryFile(&temp_path); |
216 google_apis::test_util::WriteStringToFile(temp_path, kInitialData); | 216 google_apis::test_util::WriteStringToFile(temp_path, kInitialData); |
217 | 217 |
218 // OPEN_TRUNCATED => OPEN (failure when the file did not exist.) | 218 // OPEN_TRUNCATED => OPEN (failure when the file did not exist.) |
219 // It should truncate the file before passing to the callback. | 219 // It should truncate the file before passing to the callback. |
220 TestFileSystemForOpenFile file_system(temp_path, OPEN_FILE); | 220 TestFileSystemForOpenFile file_system(temp_path, OPEN_FILE); |
221 const int64 kExpectedSize = 0; | 221 const int64 kExpectedSize = 0; |
222 | 222 |
223 OpenFile(kDummyPath, | 223 OpenFile(kDummyPath, |
224 base::PLATFORM_FILE_OPEN_TRUNCATED | base::PLATFORM_FILE_WRITE, | 224 base::PLATFORM_FILE_OPEN_TRUNCATED | base::PLATFORM_FILE_WRITE, |
225 base::Bind(&VerifyWrite, kExpectedSize, temp_path, kWriteData), | 225 base::Bind(&VerifyWrite, kExpectedSize, temp_path, kWriteData), |
226 &file_system); | 226 &file_system); |
227 test_util::RunBlockingPoolTask(); | 227 test_util::RunBlockingPoolTask(); |
228 EXPECT_TRUE(file_system.closed()); | 228 EXPECT_TRUE(file_system.closed()); |
229 } | 229 } |
230 | 230 |
231 TEST_F(FileApiWorkerTest, OpenFileForOpenCreateAlwaysWrite) { | 231 TEST_F(FileApiWorkerTest, OpenFileForOpenCreateAlwaysWrite) { |
232 const base::FilePath kDummyPath = base::FilePath::FromUTF8Unsafe("whatever"); | 232 const base::FilePath kDummyPath = base::FilePath::FromUTF8Unsafe("whatever"); |
233 const std::string kInitialData = "hello"; | 233 const std::string kInitialData = "hello"; |
234 const std::string kWriteData = "byebye"; | 234 const std::string kWriteData = "byebye"; |
235 | 235 |
236 base::FilePath temp_path; | 236 base::FilePath temp_path; |
237 file_util::CreateTemporaryFile(&temp_path); | 237 base::CreateTemporaryFile(&temp_path); |
238 google_apis::test_util::WriteStringToFile(temp_path, kInitialData); | 238 google_apis::test_util::WriteStringToFile(temp_path, kInitialData); |
239 | 239 |
240 // CREATE_ALWAYS => OPEN_OR_CREATE (success whether file exists or not.) | 240 // CREATE_ALWAYS => OPEN_OR_CREATE (success whether file exists or not.) |
241 // It should truncate the file before passing to the callback. | 241 // It should truncate the file before passing to the callback. |
242 TestFileSystemForOpenFile file_system(temp_path, OPEN_OR_CREATE_FILE); | 242 TestFileSystemForOpenFile file_system(temp_path, OPEN_OR_CREATE_FILE); |
243 const int64 kExpectedSize = 0; | 243 const int64 kExpectedSize = 0; |
244 | 244 |
245 OpenFile(kDummyPath, | 245 OpenFile(kDummyPath, |
246 base::PLATFORM_FILE_CREATE_ALWAYS | base::PLATFORM_FILE_WRITE, | 246 base::PLATFORM_FILE_CREATE_ALWAYS | base::PLATFORM_FILE_WRITE, |
247 base::Bind(&VerifyWrite, kExpectedSize, temp_path, kWriteData), | 247 base::Bind(&VerifyWrite, kExpectedSize, temp_path, kWriteData), |
248 &file_system); | 248 &file_system); |
249 test_util::RunBlockingPoolTask(); | 249 test_util::RunBlockingPoolTask(); |
250 EXPECT_TRUE(file_system.closed()); | 250 EXPECT_TRUE(file_system.closed()); |
251 } | 251 } |
252 | 252 |
253 TEST_F(FileApiWorkerTest, OpenFileForOpenRead) { | 253 TEST_F(FileApiWorkerTest, OpenFileForOpenRead) { |
254 const base::FilePath kDummyPath = base::FilePath::FromUTF8Unsafe("whatever"); | 254 const base::FilePath kDummyPath = base::FilePath::FromUTF8Unsafe("whatever"); |
255 const std::string kInitialData = "hello"; | 255 const std::string kInitialData = "hello"; |
256 | 256 |
257 base::FilePath temp_path; | 257 base::FilePath temp_path; |
258 file_util::CreateTemporaryFile(&temp_path); | 258 base::CreateTemporaryFile(&temp_path); |
259 google_apis::test_util::WriteStringToFile(temp_path, kInitialData); | 259 google_apis::test_util::WriteStringToFile(temp_path, kInitialData); |
260 | 260 |
261 // OPEN => OPEN (failure when the file did not exist.) | 261 // OPEN => OPEN (failure when the file did not exist.) |
262 TestFileSystemForOpenFile file_system(temp_path, OPEN_FILE); | 262 TestFileSystemForOpenFile file_system(temp_path, OPEN_FILE); |
263 | 263 |
264 OpenFile(kDummyPath, | 264 OpenFile(kDummyPath, |
265 base::PLATFORM_FILE_OPEN | base::PLATFORM_FILE_READ, | 265 base::PLATFORM_FILE_OPEN | base::PLATFORM_FILE_READ, |
266 base::Bind(&VerifyRead, kInitialData), | 266 base::Bind(&VerifyRead, kInitialData), |
267 &file_system); | 267 &file_system); |
268 test_util::RunBlockingPoolTask(); | 268 test_util::RunBlockingPoolTask(); |
269 EXPECT_TRUE(file_system.closed()); | 269 EXPECT_TRUE(file_system.closed()); |
270 } | 270 } |
271 | 271 |
272 } // namespace fileapi_internal | 272 } // namespace fileapi_internal |
273 } // namespace drive | 273 } // namespace drive |
OLD | NEW |