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

Side by Side Diff: content/browser/fileapi/copy_or_move_operation_delegate_unittest.cc

Issue 206073006: Revert of Add a parameter to FileStreamWriter::CreateForLocalFile to allow creating new (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 6 years, 9 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
OLDNEW
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 <map> 5 #include <map>
6 #include <queue> 6 #include <queue>
7 7
8 #include "base/basictypes.h" 8 #include "base/basictypes.h"
9 #include "base/bind.h" 9 #include "base/bind.h"
10 #include "base/file_util.h" 10 #include "base/file_util.h"
(...skipping 700 matching lines...) Expand 10 before | Expand all | Expand 10 after
711 } 711 }
712 } 712 }
713 } 713 }
714 } 714 }
715 } 715 }
716 716
717 TEST(LocalFileSystemCopyOrMoveOperationTest, StreamCopyHelper) { 717 TEST(LocalFileSystemCopyOrMoveOperationTest, StreamCopyHelper) {
718 base::ScopedTempDir temp_dir; 718 base::ScopedTempDir temp_dir;
719 ASSERT_TRUE(temp_dir.CreateUniqueTempDir()); 719 ASSERT_TRUE(temp_dir.CreateUniqueTempDir());
720 base::FilePath source_path = temp_dir.path().AppendASCII("source"); 720 base::FilePath source_path = temp_dir.path().AppendASCII("source");
721 base::FilePath dest_path = temp_dir.path().AppendASCII("dest");
722 const char kTestData[] = "abcdefghijklmnopqrstuvwxyz0123456789"; 721 const char kTestData[] = "abcdefghijklmnopqrstuvwxyz0123456789";
723 base::WriteFile(source_path, kTestData, 722 base::WriteFile(source_path, kTestData,
724 arraysize(kTestData) - 1); // Exclude trailing '\0'. 723 arraysize(kTestData) - 1); // Exclude trailing '\0'.
725 724
725 base::FilePath dest_path = temp_dir.path().AppendASCII("dest");
726 // LocalFileWriter requires the file exists. So create an empty file here.
727 base::WriteFile(dest_path, "", 0);
728
726 base::MessageLoopForIO message_loop; 729 base::MessageLoopForIO message_loop;
727 base::Thread file_thread("file_thread"); 730 base::Thread file_thread("file_thread");
728 ASSERT_TRUE(file_thread.Start()); 731 ASSERT_TRUE(file_thread.Start());
729 ScopedThreadStopper thread_stopper(&file_thread); 732 ScopedThreadStopper thread_stopper(&file_thread);
730 ASSERT_TRUE(thread_stopper.is_valid()); 733 ASSERT_TRUE(thread_stopper.is_valid());
731 734
732 scoped_refptr<base::MessageLoopProxy> task_runner = 735 scoped_refptr<base::MessageLoopProxy> task_runner =
733 file_thread.message_loop_proxy(); 736 file_thread.message_loop_proxy();
734 737
735 scoped_ptr<webkit_blob::FileStreamReader> reader( 738 scoped_ptr<webkit_blob::FileStreamReader> reader(
736 webkit_blob::FileStreamReader::CreateForLocalFile( 739 webkit_blob::FileStreamReader::CreateForLocalFile(
737 task_runner.get(), source_path, 0, base::Time())); 740 task_runner.get(), source_path, 0, base::Time()));
738 741
739 scoped_ptr<FileStreamWriter> writer(FileStreamWriter::CreateForLocalFile( 742 scoped_ptr<FileStreamWriter> writer(
740 task_runner.get(), dest_path, 0, FileStreamWriter::CREATE_NEW_FILE)); 743 FileStreamWriter::CreateForLocalFile(task_runner.get(), dest_path, 0));
741 744
742 std::vector<int64> progress; 745 std::vector<int64> progress;
743 CopyOrMoveOperationDelegate::StreamCopyHelper helper( 746 CopyOrMoveOperationDelegate::StreamCopyHelper helper(
744 reader.Pass(), writer.Pass(), 747 reader.Pass(), writer.Pass(),
745 false, // don't need flush 748 false, // don't need flush
746 10, // buffer size 749 10, // buffer size
747 base::Bind(&RecordFileProgressCallback, base::Unretained(&progress)), 750 base::Bind(&RecordFileProgressCallback, base::Unretained(&progress)),
748 base::TimeDelta()); // For testing, we need all the progress. 751 base::TimeDelta()); // For testing, we need all the progress.
749 752
750 base::File::Error error = base::File::FILE_ERROR_FAILED; 753 base::File::Error error = base::File::FILE_ERROR_FAILED;
(...skipping 15 matching lines...) Expand all
766 } 769 }
767 770
768 TEST(LocalFileSystemCopyOrMoveOperationTest, StreamCopyHelperWithFlush) { 771 TEST(LocalFileSystemCopyOrMoveOperationTest, StreamCopyHelperWithFlush) {
769 // Testing the same configuration as StreamCopyHelper, but with |need_flush| 772 // Testing the same configuration as StreamCopyHelper, but with |need_flush|
770 // parameter set to true. Since it is hard to test that the flush is indeed 773 // parameter set to true. Since it is hard to test that the flush is indeed
771 // taking place, this test just only verifies that the file is correctly 774 // taking place, this test just only verifies that the file is correctly
772 // written with or without the flag. 775 // written with or without the flag.
773 base::ScopedTempDir temp_dir; 776 base::ScopedTempDir temp_dir;
774 ASSERT_TRUE(temp_dir.CreateUniqueTempDir()); 777 ASSERT_TRUE(temp_dir.CreateUniqueTempDir());
775 base::FilePath source_path = temp_dir.path().AppendASCII("source"); 778 base::FilePath source_path = temp_dir.path().AppendASCII("source");
776 base::FilePath dest_path = temp_dir.path().AppendASCII("dest");
777 const char kTestData[] = "abcdefghijklmnopqrstuvwxyz0123456789"; 779 const char kTestData[] = "abcdefghijklmnopqrstuvwxyz0123456789";
778 base::WriteFile(source_path, kTestData, 780 base::WriteFile(source_path, kTestData,
779 arraysize(kTestData) - 1); // Exclude trailing '\0'. 781 arraysize(kTestData) - 1); // Exclude trailing '\0'.
780 782
783 base::FilePath dest_path = temp_dir.path().AppendASCII("dest");
784 // LocalFileWriter requires the file exists. So create an empty file here.
785 base::WriteFile(dest_path, "", 0);
781 786
782 base::MessageLoopForIO message_loop; 787 base::MessageLoopForIO message_loop;
783 base::Thread file_thread("file_thread"); 788 base::Thread file_thread("file_thread");
784 ASSERT_TRUE(file_thread.Start()); 789 ASSERT_TRUE(file_thread.Start());
785 ScopedThreadStopper thread_stopper(&file_thread); 790 ScopedThreadStopper thread_stopper(&file_thread);
786 ASSERT_TRUE(thread_stopper.is_valid()); 791 ASSERT_TRUE(thread_stopper.is_valid());
787 792
788 scoped_refptr<base::MessageLoopProxy> task_runner = 793 scoped_refptr<base::MessageLoopProxy> task_runner =
789 file_thread.message_loop_proxy(); 794 file_thread.message_loop_proxy();
790 795
791 scoped_ptr<webkit_blob::FileStreamReader> reader( 796 scoped_ptr<webkit_blob::FileStreamReader> reader(
792 webkit_blob::FileStreamReader::CreateForLocalFile( 797 webkit_blob::FileStreamReader::CreateForLocalFile(
793 task_runner.get(), source_path, 0, base::Time())); 798 task_runner.get(), source_path, 0, base::Time()));
794 799
795 scoped_ptr<FileStreamWriter> writer(FileStreamWriter::CreateForLocalFile( 800 scoped_ptr<FileStreamWriter> writer(
796 task_runner.get(), dest_path, 0, FileStreamWriter::CREATE_NEW_FILE)); 801 FileStreamWriter::CreateForLocalFile(task_runner.get(), dest_path, 0));
797 802
798 std::vector<int64> progress; 803 std::vector<int64> progress;
799 CopyOrMoveOperationDelegate::StreamCopyHelper helper( 804 CopyOrMoveOperationDelegate::StreamCopyHelper helper(
800 reader.Pass(), writer.Pass(), 805 reader.Pass(), writer.Pass(),
801 true, // need flush 806 true, // need flush
802 10, // buffer size 807 10, // buffer size
803 base::Bind(&RecordFileProgressCallback, base::Unretained(&progress)), 808 base::Bind(&RecordFileProgressCallback, base::Unretained(&progress)),
804 base::TimeDelta()); // For testing, we need all the progress. 809 base::TimeDelta()); // For testing, we need all the progress.
805 810
806 base::File::Error error = base::File::FILE_ERROR_FAILED; 811 base::File::Error error = base::File::FILE_ERROR_FAILED;
(...skipping 11 matching lines...) Expand all
818 823
819 std::string content; 824 std::string content;
820 ASSERT_TRUE(base::ReadFileToString(dest_path, &content)); 825 ASSERT_TRUE(base::ReadFileToString(dest_path, &content));
821 EXPECT_EQ(kTestData, content); 826 EXPECT_EQ(kTestData, content);
822 } 827 }
823 828
824 TEST(LocalFileSystemCopyOrMoveOperationTest, StreamCopyHelper_Cancel) { 829 TEST(LocalFileSystemCopyOrMoveOperationTest, StreamCopyHelper_Cancel) {
825 base::ScopedTempDir temp_dir; 830 base::ScopedTempDir temp_dir;
826 ASSERT_TRUE(temp_dir.CreateUniqueTempDir()); 831 ASSERT_TRUE(temp_dir.CreateUniqueTempDir());
827 base::FilePath source_path = temp_dir.path().AppendASCII("source"); 832 base::FilePath source_path = temp_dir.path().AppendASCII("source");
828 base::FilePath dest_path = temp_dir.path().AppendASCII("dest");
829 const char kTestData[] = "abcdefghijklmnopqrstuvwxyz0123456789"; 833 const char kTestData[] = "abcdefghijklmnopqrstuvwxyz0123456789";
830 base::WriteFile(source_path, kTestData, 834 base::WriteFile(source_path, kTestData,
831 arraysize(kTestData) - 1); // Exclude trailing '\0'. 835 arraysize(kTestData) - 1); // Exclude trailing '\0'.
832 836
837 base::FilePath dest_path = temp_dir.path().AppendASCII("dest");
838 // LocalFileWriter requires the file exists. So create an empty file here.
839 base::WriteFile(dest_path, "", 0);
840
833 base::MessageLoopForIO message_loop; 841 base::MessageLoopForIO message_loop;
834 base::Thread file_thread("file_thread"); 842 base::Thread file_thread("file_thread");
835 ASSERT_TRUE(file_thread.Start()); 843 ASSERT_TRUE(file_thread.Start());
836 ScopedThreadStopper thread_stopper(&file_thread); 844 ScopedThreadStopper thread_stopper(&file_thread);
837 ASSERT_TRUE(thread_stopper.is_valid()); 845 ASSERT_TRUE(thread_stopper.is_valid());
838 846
839 scoped_refptr<base::MessageLoopProxy> task_runner = 847 scoped_refptr<base::MessageLoopProxy> task_runner =
840 file_thread.message_loop_proxy(); 848 file_thread.message_loop_proxy();
841 849
842 scoped_ptr<webkit_blob::FileStreamReader> reader( 850 scoped_ptr<webkit_blob::FileStreamReader> reader(
843 webkit_blob::FileStreamReader::CreateForLocalFile( 851 webkit_blob::FileStreamReader::CreateForLocalFile(
844 task_runner.get(), source_path, 0, base::Time())); 852 task_runner.get(), source_path, 0, base::Time()));
845 853
846 scoped_ptr<FileStreamWriter> writer(FileStreamWriter::CreateForLocalFile( 854 scoped_ptr<FileStreamWriter> writer(
847 task_runner.get(), dest_path, 0, FileStreamWriter::CREATE_NEW_FILE)); 855 FileStreamWriter::CreateForLocalFile(task_runner.get(), dest_path, 0));
848 856
849 std::vector<int64> progress; 857 std::vector<int64> progress;
850 CopyOrMoveOperationDelegate::StreamCopyHelper helper( 858 CopyOrMoveOperationDelegate::StreamCopyHelper helper(
851 reader.Pass(), writer.Pass(), 859 reader.Pass(), writer.Pass(),
852 false, // need_flush 860 false, // need_flush
853 10, // buffer size 861 10, // buffer size
854 base::Bind(&RecordFileProgressCallback, base::Unretained(&progress)), 862 base::Bind(&RecordFileProgressCallback, base::Unretained(&progress)),
855 base::TimeDelta()); // For testing, we need all the progress. 863 base::TimeDelta()); // For testing, we need all the progress.
856 864
857 // Call Cancel() later. 865 // Call Cancel() later.
858 base::MessageLoopProxy::current()->PostTask( 866 base::MessageLoopProxy::current()->PostTask(
859 FROM_HERE, 867 FROM_HERE,
860 base::Bind(&CopyOrMoveOperationDelegate::StreamCopyHelper::Cancel, 868 base::Bind(&CopyOrMoveOperationDelegate::StreamCopyHelper::Cancel,
861 base::Unretained(&helper))); 869 base::Unretained(&helper)));
862 870
863 base::File::Error error = base::File::FILE_ERROR_FAILED; 871 base::File::Error error = base::File::FILE_ERROR_FAILED;
864 base::RunLoop run_loop; 872 base::RunLoop run_loop;
865 helper.Run(base::Bind(&AssignAndQuit, &run_loop, &error)); 873 helper.Run(base::Bind(&AssignAndQuit, &run_loop, &error));
866 run_loop.Run(); 874 run_loop.Run();
867 875
868 EXPECT_EQ(base::File::FILE_ERROR_ABORT, error); 876 EXPECT_EQ(base::File::FILE_ERROR_ABORT, error);
869 } 877 }
870 878
871 } // namespace content 879 } // namespace content
OLDNEW
« no previous file with comments | « chrome/browser/media_galleries/fileapi/media_file_system_backend.cc ('k') | webkit/browser/fileapi/file_stream_writer.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698