Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(116)

Side by Side Diff: webkit/fileapi/file_system_operation_unittest.cc

Issue 3604006: Revert 61462 - Add truncate and cancel for FileWriter; write and more tests w... (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src/
Patch Set: Created 10 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « webkit/fileapi/file_system_operation.cc ('k') | webkit/glue/plugins/pepper_file_system.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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 "webkit/fileapi/file_system_operation.h" 5 #include "webkit/fileapi/file_system_operation.h"
6 6
7 #include "base/logging.h" 7 #include "base/logging.h"
8 #include "base/message_loop.h" 8 #include "base/message_loop.h"
9 #include "base/scoped_ptr.h" 9 #include "base/scoped_ptr.h"
10 #include "base/scoped_temp_dir.h" 10 #include "base/scoped_temp_dir.h"
(...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after
45 virtual void DidReadDirectory( 45 virtual void DidReadDirectory(
46 const std::vector<base::file_util_proxy::Entry>& entries, 46 const std::vector<base::file_util_proxy::Entry>& entries,
47 bool /* has_more */) { 47 bool /* has_more */) {
48 entries_ = entries; 48 entries_ = entries;
49 } 49 }
50 50
51 virtual void DidOpenFileSystem(const std::string&, const FilePath&) { 51 virtual void DidOpenFileSystem(const std::string&, const FilePath&) {
52 NOTREACHED(); 52 NOTREACHED();
53 } 53 }
54 54
55 virtual void DidWrite(int64 bytes, bool complete) {
56 NOTREACHED();
57 }
58
59 // Helpers for testing. 55 // Helpers for testing.
60 int status() const { return status_; } 56 int status() const { return status_; }
61 int request_id() const { return request_id_; } 57 int request_id() const { return request_id_; }
62 const base::PlatformFileInfo& info() const { return info_; } 58 const base::PlatformFileInfo& info() const { return info_; }
63 const std::vector<base::file_util_proxy::Entry>& entries() const { 59 const std::vector<base::file_util_proxy::Entry>& entries() const {
64 return entries_; 60 return entries_;
65 } 61 }
66 62
67 private: 63 private:
68 int status_; 64 int status_;
(...skipping 481 matching lines...) Expand 10 before | Expand all | Expand 10 after
550 ScopedTempDir empty_dir; 546 ScopedTempDir empty_dir;
551 ASSERT_TRUE(empty_dir.CreateUniqueTempDir()); 547 ASSERT_TRUE(empty_dir.CreateUniqueTempDir());
552 EXPECT_TRUE(file_util::DirectoryExists(empty_dir.path())); 548 EXPECT_TRUE(file_util::DirectoryExists(empty_dir.path()));
553 549
554 operation()->Remove(empty_dir.path()); 550 operation()->Remove(empty_dir.path());
555 MessageLoop::current()->RunAllPending(); 551 MessageLoop::current()->RunAllPending();
556 EXPECT_EQ(kFileOperationSucceeded, mock_dispatcher_->status()); 552 EXPECT_EQ(kFileOperationSucceeded, mock_dispatcher_->status());
557 EXPECT_FALSE(file_util::DirectoryExists(empty_dir.path())); 553 EXPECT_FALSE(file_util::DirectoryExists(empty_dir.path()));
558 EXPECT_EQ(request_id_, mock_dispatcher_->request_id()); 554 EXPECT_EQ(request_id_, mock_dispatcher_->request_id());
559 } 555 }
560
561 TEST_F(FileSystemOperationTest, TestTruncate) {
562 ScopedTempDir dir;
563 ASSERT_TRUE(dir.CreateUniqueTempDir());
564 FilePath file;
565 file_util::CreateTemporaryFileInDir(dir.path(), &file);
566
567 char test_data[] = "test data";
568 EXPECT_EQ(sizeof(test_data),
569 file_util::WriteFile(file, test_data, sizeof(test_data)));
570
571 // Check that its length is the size of the data written.
572 operation()->GetMetadata(file);
573 MessageLoop::current()->RunAllPending();
574 EXPECT_EQ(kFileOperationSucceeded, mock_dispatcher_->status());
575 EXPECT_FALSE(mock_dispatcher_->info().is_directory);
576 EXPECT_EQ(sizeof(test_data), mock_dispatcher_->info().size);
577 EXPECT_EQ(request_id_, mock_dispatcher_->request_id());
578
579 // Extend the file by truncating it.
580 int length = 17;
581 operation()->Truncate(file, length);
582 MessageLoop::current()->RunAllPending();
583 EXPECT_EQ(kFileOperationSucceeded, mock_dispatcher_->status());
584 EXPECT_EQ(request_id_, mock_dispatcher_->request_id());
585
586 // Check that its length is now 17 and that it's all zeroes after the test
587 // data.
588 base::PlatformFileInfo info;
589 EXPECT_TRUE(file_util::GetFileInfo(file, &info));
590 EXPECT_EQ(length, info.size);
591 char data[100];
592 EXPECT_EQ(length, file_util::ReadFile(file, data, length));
593 for (int i = 0; i < length; ++i) {
594 if (i < sizeof(test_data))
595 EXPECT_EQ(test_data[i], data[i]);
596 else
597 EXPECT_EQ(0, data[i]);
598 }
599
600 // Shorten the file by truncating it.
601 length = 3;
602 operation()->Truncate(file, length);
603 MessageLoop::current()->RunAllPending();
604 EXPECT_EQ(kFileOperationSucceeded, mock_dispatcher_->status());
605 EXPECT_EQ(request_id_, mock_dispatcher_->request_id());
606
607 // Check that its length is now 3 and that it contains only bits of test data.
608 EXPECT_TRUE(file_util::GetFileInfo(file, &info));
609 EXPECT_EQ(length, info.size);
610 EXPECT_EQ(length, file_util::ReadFile(file, data, length));
611 for (int i = 0; i < length; ++i)
612 EXPECT_EQ(test_data[i], data[i]);
613 }
OLDNEW
« no previous file with comments | « webkit/fileapi/file_system_operation.cc ('k') | webkit/glue/plugins/pepper_file_system.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698