| 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/file_util.h" | 5 #include "base/file_util.h" |
| 6 #include "base/files/file.h" | 6 #include "base/files/file.h" |
| 7 #include "base/files/scoped_temp_dir.h" | 7 #include "base/files/scoped_temp_dir.h" |
| 8 #include "base/time/time.h" | 8 #include "base/time/time.h" |
| 9 #include "testing/gtest/include/gtest/gtest.h" | 9 #include "testing/gtest/include/gtest/gtest.h" |
| 10 | 10 |
| (...skipping 331 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 342 EXPECT_EQ(info.last_accessed.ToInternalValue(), | 342 EXPECT_EQ(info.last_accessed.ToInternalValue(), |
| 343 new_last_accessed.ToInternalValue()); | 343 new_last_accessed.ToInternalValue()); |
| 344 EXPECT_EQ(info.last_modified.ToInternalValue(), | 344 EXPECT_EQ(info.last_modified.ToInternalValue(), |
| 345 new_last_modified.ToInternalValue()); | 345 new_last_modified.ToInternalValue()); |
| 346 #endif | 346 #endif |
| 347 | 347 |
| 348 EXPECT_EQ(info.creation_time.ToInternalValue(), | 348 EXPECT_EQ(info.creation_time.ToInternalValue(), |
| 349 creation_time.ToInternalValue()); | 349 creation_time.ToInternalValue()); |
| 350 } | 350 } |
| 351 | 351 |
| 352 TEST(File, ReadFileAtCurrentPosition) { | 352 TEST(File, ReadAtCurrentPosition) { |
| 353 base::ScopedTempDir temp_dir; | 353 base::ScopedTempDir temp_dir; |
| 354 ASSERT_TRUE(temp_dir.CreateUniqueTempDir()); | 354 ASSERT_TRUE(temp_dir.CreateUniqueTempDir()); |
| 355 FilePath file_path = | 355 FilePath file_path = temp_dir.path().AppendASCII("read_at_current_position"); |
| 356 temp_dir.path().AppendASCII("read_file_at_current_position"); | |
| 357 File file(file_path, | 356 File file(file_path, |
| 358 base::File::FLAG_CREATE | base::File::FLAG_READ | | 357 base::File::FLAG_CREATE | base::File::FLAG_READ | |
| 359 base::File::FLAG_WRITE); | 358 base::File::FLAG_WRITE); |
| 360 EXPECT_TRUE(file.IsValid()); | 359 EXPECT_TRUE(file.IsValid()); |
| 361 | 360 |
| 362 const char kData[] = "test"; | 361 const char kData[] = "test"; |
| 363 const int kDataSize = arraysize(kData) - 1; | 362 const int kDataSize = sizeof(kData) - 1; |
| 364 EXPECT_EQ(kDataSize, file.Write(0, kData, kDataSize)); | 363 EXPECT_EQ(kDataSize, file.Write(0, kData, kDataSize)); |
| 365 | 364 |
| 366 EXPECT_EQ(0, file.Seek(base::File::FROM_BEGIN, 0)); | 365 EXPECT_EQ(0, file.Seek(base::File::FROM_BEGIN, 0)); |
| 367 | 366 |
| 368 char buffer[kDataSize]; | 367 char buffer[kDataSize]; |
| 369 int first_chunk_size = kDataSize / 2; | 368 int first_chunk_size = kDataSize / 2; |
| 370 EXPECT_EQ(first_chunk_size, file.ReadAtCurrentPos(buffer, first_chunk_size)); | 369 EXPECT_EQ(first_chunk_size, file.ReadAtCurrentPos(buffer, first_chunk_size)); |
| 371 EXPECT_EQ(kDataSize - first_chunk_size, | 370 EXPECT_EQ(kDataSize - first_chunk_size, |
| 372 file.ReadAtCurrentPos(buffer + first_chunk_size, | 371 file.ReadAtCurrentPos(buffer + first_chunk_size, |
| 373 kDataSize - first_chunk_size)); | 372 kDataSize - first_chunk_size)); |
| 374 EXPECT_EQ(std::string(buffer, buffer + kDataSize), | 373 EXPECT_EQ(std::string(buffer, buffer + kDataSize), std::string(kData)); |
| 375 std::string(kData)); | 374 } |
| 375 |
| 376 TEST(File, WriteAtCurrentPosition) { |
| 377 base::ScopedTempDir temp_dir; |
| 378 ASSERT_TRUE(temp_dir.CreateUniqueTempDir()); |
| 379 FilePath file_path = temp_dir.path().AppendASCII("write_at_current_position"); |
| 380 File file(file_path, |
| 381 base::File::FLAG_CREATE | base::File::FLAG_READ | |
| 382 base::File::FLAG_WRITE); |
| 383 EXPECT_TRUE(file.IsValid()); |
| 384 |
| 385 const char kData[] = "test"; |
| 386 const int kDataSize = sizeof(kData) - 1; |
| 387 |
| 388 int first_chunk_size = kDataSize / 2; |
| 389 EXPECT_EQ(first_chunk_size, file.WriteAtCurrentPos(kData, first_chunk_size)); |
| 390 EXPECT_EQ(kDataSize - first_chunk_size, |
| 391 file.WriteAtCurrentPos(kData + first_chunk_size, |
| 392 kDataSize - first_chunk_size)); |
| 393 |
| 394 char buffer[kDataSize]; |
| 395 EXPECT_EQ(kDataSize, file.Read(0, buffer, kDataSize)); |
| 396 EXPECT_EQ(std::string(buffer, buffer + kDataSize), std::string(kData)); |
| 376 } | 397 } |
| 377 | 398 |
| 378 #if defined(OS_WIN) | 399 #if defined(OS_WIN) |
| 379 TEST(File, GetInfoForDirectory) { | 400 TEST(File, GetInfoForDirectory) { |
| 380 base::ScopedTempDir temp_dir; | 401 base::ScopedTempDir temp_dir; |
| 381 ASSERT_TRUE(temp_dir.CreateUniqueTempDir()); | 402 ASSERT_TRUE(temp_dir.CreateUniqueTempDir()); |
| 382 FilePath empty_dir = temp_dir.path().Append(FILE_PATH_LITERAL("gpfi_test")); | 403 FilePath empty_dir = temp_dir.path().Append(FILE_PATH_LITERAL("gpfi_test")); |
| 383 ASSERT_TRUE(CreateDirectory(empty_dir)); | 404 ASSERT_TRUE(CreateDirectory(empty_dir)); |
| 384 | 405 |
| 385 base::File dir( | 406 base::File dir( |
| 386 ::CreateFile(empty_dir.value().c_str(), | 407 ::CreateFile(empty_dir.value().c_str(), |
| 387 FILE_ALL_ACCESS, | 408 FILE_ALL_ACCESS, |
| 388 FILE_SHARE_READ | FILE_SHARE_WRITE | FILE_SHARE_DELETE, | 409 FILE_SHARE_READ | FILE_SHARE_WRITE | FILE_SHARE_DELETE, |
| 389 NULL, | 410 NULL, |
| 390 OPEN_EXISTING, | 411 OPEN_EXISTING, |
| 391 FILE_FLAG_BACKUP_SEMANTICS, // Needed to open a directory. | 412 FILE_FLAG_BACKUP_SEMANTICS, // Needed to open a directory. |
| 392 NULL)); | 413 NULL)); |
| 393 ASSERT_TRUE(dir.IsValid()); | 414 ASSERT_TRUE(dir.IsValid()); |
| 394 | 415 |
| 395 base::File::Info info; | 416 base::File::Info info; |
| 396 EXPECT_TRUE(dir.GetInfo(&info)); | 417 EXPECT_TRUE(dir.GetInfo(&info)); |
| 397 EXPECT_TRUE(info.is_directory); | 418 EXPECT_TRUE(info.is_directory); |
| 398 EXPECT_FALSE(info.is_symbolic_link); | 419 EXPECT_FALSE(info.is_symbolic_link); |
| 399 EXPECT_EQ(0, info.size); | 420 EXPECT_EQ(0, info.size); |
| 400 } | 421 } |
| 401 #endif // defined(OS_WIN) | 422 #endif // defined(OS_WIN) |
| OLD | NEW |