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

Side by Side Diff: content/browser/blob_storage/blob_reader_unittest.cc

Issue 2082343002: Remove calls to deprecated MessageLoop methods in content. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: CR Created 4 years, 5 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
« no previous file with comments | « no previous file | content/browser/blob_storage/blob_url_request_job_unittest.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 2015 The Chromium Authors. All rights reserved. 1 // Copyright 2015 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 <stddef.h> 5 #include <stddef.h>
6 #include <stdint.h> 6 #include <stdint.h>
7 #include <string.h> 7 #include <string.h>
8 8
9 #include <memory> 9 #include <memory>
10 #include <utility> 10 #include <utility>
(...skipping 319 matching lines...) Expand 10 before | Expand all | Expand 10 after
330 } // namespace 330 } // namespace
331 331
332 class BlobReaderTest : public ::testing::Test { 332 class BlobReaderTest : public ::testing::Test {
333 public: 333 public:
334 BlobReaderTest() {} 334 BlobReaderTest() {}
335 ~BlobReaderTest() override {} 335 ~BlobReaderTest() override {}
336 336
337 void TearDown() override { 337 void TearDown() override {
338 reader_.reset(); 338 reader_.reset();
339 blob_handle_.reset(); 339 blob_handle_.reset();
340 message_loop_.RunUntilIdle(); 340 base::RunLoop().RunUntilIdle();
341 base::RunLoop().RunUntilIdle(); 341 base::RunLoop().RunUntilIdle();
342 } 342 }
343 343
344 protected: 344 protected:
345 void InitializeReader(BlobDataBuilder* builder) { 345 void InitializeReader(BlobDataBuilder* builder) {
346 blob_handle_ = builder ? context_.AddFinishedBlob(builder) : nullptr; 346 blob_handle_ = builder ? context_.AddFinishedBlob(builder) : nullptr;
347 provider_ = new MockFileStreamReaderProvider(); 347 provider_ = new MockFileStreamReaderProvider();
348 reader_.reset(new BlobReader(blob_handle_.get(), 348 reader_.reset(new BlobReader(blob_handle_.get(),
349 base::WrapUnique(provider_), 349 base::WrapUnique(provider_),
350 message_loop_.task_runner().get())); 350 message_loop_.task_runner().get()));
(...skipping 366 matching lines...) Expand 10 before | Expand all | Expand 10 after
717 reader->SetAsyncRunner(message_loop_.task_runner().get()); 717 reader->SetAsyncRunner(message_loop_.task_runner().get());
718 718
719 ExpectLocalFileCall(kPath, kTime, 0, reader.release()); 719 ExpectLocalFileCall(kPath, kTime, 0, reader.release());
720 720
721 int size_result = -1; 721 int size_result = -1;
722 EXPECT_FALSE(IsReaderTotalSizeCalculated()); 722 EXPECT_FALSE(IsReaderTotalSizeCalculated());
723 EXPECT_EQ(BlobReader::Status::IO_PENDING, 723 EXPECT_EQ(BlobReader::Status::IO_PENDING,
724 reader_->CalculateSize(base::Bind(&SetValue<int>, &size_result))); 724 reader_->CalculateSize(base::Bind(&SetValue<int>, &size_result)));
725 EXPECT_FALSE(reader_->IsInMemory()); 725 EXPECT_FALSE(reader_->IsInMemory());
726 CheckSizeNotCalculatedYet(size_result); 726 CheckSizeNotCalculatedYet(size_result);
727 message_loop_.RunUntilIdle(); 727 base::RunLoop().RunUntilIdle();
728 CheckSizeCalculatedAsynchronously(kData.size(), size_result); 728 CheckSizeCalculatedAsynchronously(kData.size(), size_result);
729 729
730 scoped_refptr<net::IOBuffer> buffer(new net::IOBuffer(kData.size())); 730 scoped_refptr<net::IOBuffer> buffer(new net::IOBuffer(kData.size()));
731 731
732 int bytes_read = 0; 732 int bytes_read = 0;
733 int async_bytes_read = 0; 733 int async_bytes_read = 0;
734 EXPECT_EQ(BlobReader::Status::IO_PENDING, 734 EXPECT_EQ(BlobReader::Status::IO_PENDING,
735 reader_->Read(buffer.get(), kData.size(), &bytes_read, 735 reader_->Read(buffer.get(), kData.size(), &bytes_read,
736 base::Bind(&SetValue<int>, &async_bytes_read))); 736 base::Bind(&SetValue<int>, &async_bytes_read)));
737 message_loop_.RunUntilIdle(); 737 base::RunLoop().RunUntilIdle();
738 EXPECT_EQ(net::OK, reader_->net_error()); 738 EXPECT_EQ(net::OK, reader_->net_error());
739 EXPECT_EQ(kData.size(), static_cast<size_t>(async_bytes_read)); 739 EXPECT_EQ(kData.size(), static_cast<size_t>(async_bytes_read));
740 EXPECT_EQ(0, bytes_read); 740 EXPECT_EQ(0, bytes_read);
741 EXPECT_EQ(0, memcmp(buffer->data(), "FileData!!!", kData.size())); 741 EXPECT_EQ(0, memcmp(buffer->data(), "FileData!!!", kData.size()));
742 } 742 }
743 743
744 TEST_F(BlobReaderTest, FileSystemAsync) { 744 TEST_F(BlobReaderTest, FileSystemAsync) {
745 BlobDataBuilder b("uuid"); 745 BlobDataBuilder b("uuid");
746 const GURL kURL("file://test_file/here.txt"); 746 const GURL kURL("file://test_file/here.txt");
747 const std::string kData = "FileData!!!"; 747 const std::string kData = "FileData!!!";
748 const base::Time kTime = base::Time::Now(); 748 const base::Time kTime = base::Time::Now();
749 b.AppendFileSystemFile(kURL, 0, kData.size(), kTime); 749 b.AppendFileSystemFile(kURL, 0, kData.size(), kTime);
750 this->InitializeReader(&b); 750 this->InitializeReader(&b);
751 751
752 std::unique_ptr<FakeFileStreamReader> reader(new FakeFileStreamReader(kData)); 752 std::unique_ptr<FakeFileStreamReader> reader(new FakeFileStreamReader(kData));
753 reader->SetAsyncRunner(message_loop_.task_runner().get()); 753 reader->SetAsyncRunner(message_loop_.task_runner().get());
754 754
755 ExpectFileSystemCall(kURL, 0, kData.size(), kTime, reader.release()); 755 ExpectFileSystemCall(kURL, 0, kData.size(), kTime, reader.release());
756 756
757 int size_result = -1; 757 int size_result = -1;
758 EXPECT_FALSE(IsReaderTotalSizeCalculated()); 758 EXPECT_FALSE(IsReaderTotalSizeCalculated());
759 EXPECT_EQ(BlobReader::Status::IO_PENDING, 759 EXPECT_EQ(BlobReader::Status::IO_PENDING,
760 reader_->CalculateSize(base::Bind(&SetValue<int>, &size_result))); 760 reader_->CalculateSize(base::Bind(&SetValue<int>, &size_result)));
761 CheckSizeNotCalculatedYet(size_result); 761 CheckSizeNotCalculatedYet(size_result);
762 EXPECT_FALSE(reader_->IsInMemory()); 762 EXPECT_FALSE(reader_->IsInMemory());
763 message_loop_.RunUntilIdle(); 763 base::RunLoop().RunUntilIdle();
764 CheckSizeCalculatedAsynchronously(kData.size(), size_result); 764 CheckSizeCalculatedAsynchronously(kData.size(), size_result);
765 765
766 scoped_refptr<net::IOBuffer> buffer(new net::IOBuffer(kData.size())); 766 scoped_refptr<net::IOBuffer> buffer(new net::IOBuffer(kData.size()));
767 767
768 int bytes_read = 0; 768 int bytes_read = 0;
769 int async_bytes_read = 0; 769 int async_bytes_read = 0;
770 EXPECT_EQ(BlobReader::Status::IO_PENDING, 770 EXPECT_EQ(BlobReader::Status::IO_PENDING,
771 reader_->Read(buffer.get(), kData.size(), &bytes_read, 771 reader_->Read(buffer.get(), kData.size(), &bytes_read,
772 base::Bind(&SetValue<int>, &async_bytes_read))); 772 base::Bind(&SetValue<int>, &async_bytes_read)));
773 message_loop_.RunUntilIdle(); 773 base::RunLoop().RunUntilIdle();
774 EXPECT_EQ(net::OK, reader_->net_error()); 774 EXPECT_EQ(net::OK, reader_->net_error());
775 EXPECT_EQ(kData.size(), static_cast<size_t>(async_bytes_read)); 775 EXPECT_EQ(kData.size(), static_cast<size_t>(async_bytes_read));
776 EXPECT_EQ(0, bytes_read); 776 EXPECT_EQ(0, bytes_read);
777 EXPECT_EQ(0, memcmp(buffer->data(), "FileData!!!", kData.size())); 777 EXPECT_EQ(0, memcmp(buffer->data(), "FileData!!!", kData.size()));
778 } 778 }
779 779
780 TEST_F(BlobReaderTest, DiskCacheAsync) { 780 TEST_F(BlobReaderTest, DiskCacheAsync) {
781 std::unique_ptr<disk_cache::Backend> cache = 781 std::unique_ptr<disk_cache::Backend> cache =
782 CreateInMemoryDiskCache(message_loop_.task_runner()); 782 CreateInMemoryDiskCache(message_loop_.task_runner());
783 ASSERT_TRUE(cache); 783 ASSERT_TRUE(cache);
(...skipping 46 matching lines...) Expand 10 before | Expand all | Expand 10 after
830 ExpectLocalFileCall(kPath, kTime, 0, reader.release()); 830 ExpectLocalFileCall(kPath, kTime, 0, reader.release());
831 831
832 // We create the reader again with the offset after the seek. 832 // We create the reader again with the offset after the seek.
833 reader.reset(new FakeFileStreamReader(kRangeData)); 833 reader.reset(new FakeFileStreamReader(kRangeData));
834 reader->SetAsyncRunner(message_loop_.task_runner().get()); 834 reader->SetAsyncRunner(message_loop_.task_runner().get());
835 ExpectLocalFileCall(kPath, kTime, kOffset, reader.release()); 835 ExpectLocalFileCall(kPath, kTime, kOffset, reader.release());
836 836
837 int size_result = -1; 837 int size_result = -1;
838 EXPECT_EQ(BlobReader::Status::IO_PENDING, 838 EXPECT_EQ(BlobReader::Status::IO_PENDING,
839 reader_->CalculateSize(base::Bind(&SetValue<int>, &size_result))); 839 reader_->CalculateSize(base::Bind(&SetValue<int>, &size_result)));
840 message_loop_.RunUntilIdle(); 840 base::RunLoop().RunUntilIdle();
841 841
842 scoped_refptr<net::IOBuffer> buffer = CreateBuffer(kReadLength); 842 scoped_refptr<net::IOBuffer> buffer = CreateBuffer(kReadLength);
843 EXPECT_EQ(BlobReader::Status::DONE, 843 EXPECT_EQ(BlobReader::Status::DONE,
844 reader_->SetReadRange(kOffset, kReadLength)); 844 reader_->SetReadRange(kOffset, kReadLength));
845 845
846 int bytes_read = 0; 846 int bytes_read = 0;
847 int async_bytes_read = 0; 847 int async_bytes_read = 0;
848 EXPECT_EQ(BlobReader::Status::IO_PENDING, 848 EXPECT_EQ(BlobReader::Status::IO_PENDING,
849 reader_->Read(buffer.get(), kReadLength, &bytes_read, 849 reader_->Read(buffer.get(), kReadLength, &bytes_read,
850 base::Bind(&SetValue<int>, &async_bytes_read))); 850 base::Bind(&SetValue<int>, &async_bytes_read)));
851 message_loop_.RunUntilIdle(); 851 base::RunLoop().RunUntilIdle();
852 EXPECT_EQ(net::OK, reader_->net_error()); 852 EXPECT_EQ(net::OK, reader_->net_error());
853 EXPECT_EQ(kReadLength, static_cast<size_t>(async_bytes_read)); 853 EXPECT_EQ(kReadLength, static_cast<size_t>(async_bytes_read));
854 EXPECT_EQ(0, bytes_read); 854 EXPECT_EQ(0, bytes_read);
855 EXPECT_EQ(0, memcmp(buffer->data(), "leD", kReadLength)); 855 EXPECT_EQ(0, memcmp(buffer->data(), "leD", kReadLength));
856 } 856 }
857 857
858 TEST_F(BlobReaderTest, DiskCacheRange) { 858 TEST_F(BlobReaderTest, DiskCacheRange) {
859 std::unique_ptr<disk_cache::Backend> cache = 859 std::unique_ptr<disk_cache::Backend> cache =
860 CreateInMemoryDiskCache(message_loop_.task_runner()); 860 CreateInMemoryDiskCache(message_loop_.task_runner());
861 ASSERT_TRUE(cache); 861 ASSERT_TRUE(cache);
(...skipping 72 matching lines...) Expand 10 before | Expand all | Expand 10 after
934 FilePath path = kPathBase.Append( 934 FilePath path = kPathBase.Append(
935 FilePath::FromUTF8Unsafe(base::StringPrintf("%d", current_value))); 935 FilePath::FromUTF8Unsafe(base::StringPrintf("%d", current_value)));
936 ExpectLocalFileCall(path, kTime, offset, reader.release()); 936 ExpectLocalFileCall(path, kTime, offset, reader.release());
937 } 937 }
938 938
939 int size_result = -1; 939 int size_result = -1;
940 EXPECT_FALSE(IsReaderTotalSizeCalculated()); 940 EXPECT_FALSE(IsReaderTotalSizeCalculated());
941 EXPECT_EQ(BlobReader::Status::IO_PENDING, 941 EXPECT_EQ(BlobReader::Status::IO_PENDING,
942 reader_->CalculateSize(base::Bind(&SetValue<int>, &size_result))); 942 reader_->CalculateSize(base::Bind(&SetValue<int>, &size_result)));
943 CheckSizeNotCalculatedYet(size_result); 943 CheckSizeNotCalculatedYet(size_result);
944 message_loop_.RunUntilIdle(); 944 base::RunLoop().RunUntilIdle();
945 CheckSizeCalculatedAsynchronously(kTotalSize, size_result); 945 CheckSizeCalculatedAsynchronously(kTotalSize, size_result);
946 946
947 scoped_refptr<net::IOBuffer> buffer(new net::IOBuffer(kBufferSize)); 947 scoped_refptr<net::IOBuffer> buffer(new net::IOBuffer(kBufferSize));
948 948
949 current_value = 0; 949 current_value = 0;
950 for (size_t i = 0; i < kTotalSize / kBufferSize; i++) { 950 for (size_t i = 0; i < kTotalSize / kBufferSize; i++) {
951 int bytes_read = 0; 951 int bytes_read = 0;
952 int async_bytes_read = 0; 952 int async_bytes_read = 0;
953 EXPECT_EQ(BlobReader::Status::IO_PENDING, 953 EXPECT_EQ(BlobReader::Status::IO_PENDING,
954 reader_->Read(buffer.get(), kBufferSize, &bytes_read, 954 reader_->Read(buffer.get(), kBufferSize, &bytes_read,
955 base::Bind(&SetValue<int>, &async_bytes_read))); 955 base::Bind(&SetValue<int>, &async_bytes_read)));
956 message_loop_.RunUntilIdle(); 956 base::RunLoop().RunUntilIdle();
957 EXPECT_EQ(net::OK, reader_->net_error()); 957 EXPECT_EQ(net::OK, reader_->net_error());
958 EXPECT_EQ(0, bytes_read); 958 EXPECT_EQ(0, bytes_read);
959 EXPECT_EQ(kBufferSize, static_cast<size_t>(async_bytes_read)); 959 EXPECT_EQ(kBufferSize, static_cast<size_t>(async_bytes_read));
960 for (size_t j = 0; j < kBufferSize; j++) { 960 for (size_t j = 0; j < kBufferSize; j++) {
961 EXPECT_EQ(current_value, buffer->data()[j]); 961 EXPECT_EQ(current_value, buffer->data()[j]);
962 current_value++; 962 current_value++;
963 } 963 }
964 } 964 }
965 } 965 }
966 966
(...skipping 28 matching lines...) Expand all
995 std::unique_ptr<FakeFileStreamReader> reader( 995 std::unique_ptr<FakeFileStreamReader> reader(
996 new FakeFileStreamReader(kData1)); 996 new FakeFileStreamReader(kData1));
997 reader->SetAsyncRunner(message_loop_.task_runner().get()); 997 reader->SetAsyncRunner(message_loop_.task_runner().get());
998 ExpectLocalFileCall(kData1Path, kTime, 0, reader.release()); 998 ExpectLocalFileCall(kData1Path, kTime, 0, reader.release());
999 999
1000 int size_result = -1; 1000 int size_result = -1;
1001 EXPECT_FALSE(IsReaderTotalSizeCalculated()); 1001 EXPECT_FALSE(IsReaderTotalSizeCalculated());
1002 EXPECT_EQ(BlobReader::Status::IO_PENDING, 1002 EXPECT_EQ(BlobReader::Status::IO_PENDING,
1003 reader_->CalculateSize(base::Bind(&SetValue<int>, &size_result))); 1003 reader_->CalculateSize(base::Bind(&SetValue<int>, &size_result)));
1004 CheckSizeNotCalculatedYet(size_result); 1004 CheckSizeNotCalculatedYet(size_result);
1005 message_loop_.RunUntilIdle(); 1005 base::RunLoop().RunUntilIdle();
1006 CheckSizeCalculatedAsynchronously(kDataSize, size_result); 1006 CheckSizeCalculatedAsynchronously(kDataSize, size_result);
1007 1007
1008 scoped_refptr<net::IOBuffer> buffer = CreateBuffer(kDataSize); 1008 scoped_refptr<net::IOBuffer> buffer = CreateBuffer(kDataSize);
1009 1009
1010 int bytes_read = 0; 1010 int bytes_read = 0;
1011 int async_bytes_read = 0; 1011 int async_bytes_read = 0;
1012 EXPECT_EQ(BlobReader::Status::IO_PENDING, 1012 EXPECT_EQ(BlobReader::Status::IO_PENDING,
1013 reader_->Read(buffer.get(), kDataSize, &bytes_read, 1013 reader_->Read(buffer.get(), kDataSize, &bytes_read,
1014 base::Bind(&SetValue<int>, &async_bytes_read))); 1014 base::Bind(&SetValue<int>, &async_bytes_read)));
1015 EXPECT_EQ(0, async_bytes_read); 1015 EXPECT_EQ(0, async_bytes_read);
1016 message_loop_.RunUntilIdle(); 1016 base::RunLoop().RunUntilIdle();
1017 EXPECT_EQ(net::OK, reader_->net_error()); 1017 EXPECT_EQ(net::OK, reader_->net_error());
1018 EXPECT_EQ(0, bytes_read); 1018 EXPECT_EQ(0, bytes_read);
1019 EXPECT_EQ(kDataSize, static_cast<size_t>(async_bytes_read)); 1019 EXPECT_EQ(kDataSize, static_cast<size_t>(async_bytes_read));
1020 EXPECT_EQ(0, memcmp(buffer->data(), "Hello there. This is multi-content.", 1020 EXPECT_EQ(0, memcmp(buffer->data(), "Hello there. This is multi-content.",
1021 kDataSize)); 1021 kDataSize));
1022 } 1022 }
1023 1023
1024 TEST_F(BlobReaderTest, StateErrors) { 1024 TEST_F(BlobReaderTest, StateErrors) {
1025 // Test common variables 1025 // Test common variables
1026 int bytes_read = -1; 1026 int bytes_read = -1;
(...skipping 81 matching lines...) Expand 10 before | Expand all | Expand 10 after
1108 builder1.AppendFile(kPath, 0, kData.size(), kTime); 1108 builder1.AppendFile(kPath, 0, kData.size(), kTime);
1109 this->InitializeReader(&builder1); 1109 this->InitializeReader(&builder1);
1110 FakeFileStreamReader* reader = new FakeFileStreamReader(kData); 1110 FakeFileStreamReader* reader = new FakeFileStreamReader(kData);
1111 reader->SetAsyncRunner(message_loop_.task_runner().get()); 1111 reader->SetAsyncRunner(message_loop_.task_runner().get());
1112 reader->SetReturnError(net::ERR_FILE_NOT_FOUND); 1112 reader->SetReturnError(net::ERR_FILE_NOT_FOUND);
1113 ExpectLocalFileCall(kPath, kTime, 0, reader); 1113 ExpectLocalFileCall(kPath, kTime, 0, reader);
1114 1114
1115 EXPECT_EQ(BlobReader::Status::IO_PENDING, 1115 EXPECT_EQ(BlobReader::Status::IO_PENDING,
1116 reader_->CalculateSize(base::Bind(&SetValue<int>, &size_result))); 1116 reader_->CalculateSize(base::Bind(&SetValue<int>, &size_result)));
1117 EXPECT_EQ(net::OK, reader_->net_error()); 1117 EXPECT_EQ(net::OK, reader_->net_error());
1118 message_loop_.RunUntilIdle(); 1118 base::RunLoop().RunUntilIdle();
1119 EXPECT_EQ(net::ERR_FILE_NOT_FOUND, size_result); 1119 EXPECT_EQ(net::ERR_FILE_NOT_FOUND, size_result);
1120 EXPECT_EQ(net::ERR_FILE_NOT_FOUND, reader_->net_error()); 1120 EXPECT_EQ(net::ERR_FILE_NOT_FOUND, reader_->net_error());
1121 1121
1122 // Case: Error on read. 1122 // Case: Error on read.
1123 BlobDataBuilder builder2("uuid2"); 1123 BlobDataBuilder builder2("uuid2");
1124 builder2.AppendFile(kPath, 0, kData.size(), kTime); 1124 builder2.AppendFile(kPath, 0, kData.size(), kTime);
1125 this->InitializeReader(&builder2); 1125 this->InitializeReader(&builder2);
1126 reader = new FakeFileStreamReader(kData); 1126 reader = new FakeFileStreamReader(kData);
1127 ExpectLocalFileCall(kPath, kTime, 0, reader); 1127 ExpectLocalFileCall(kPath, kTime, 0, reader);
1128 EXPECT_EQ(BlobReader::Status::DONE, 1128 EXPECT_EQ(BlobReader::Status::DONE,
1129 reader_->CalculateSize(base::Bind(&SetValue<int>, &size_result))); 1129 reader_->CalculateSize(base::Bind(&SetValue<int>, &size_result)));
1130 reader->SetReturnError(net::ERR_FILE_NOT_FOUND); 1130 reader->SetReturnError(net::ERR_FILE_NOT_FOUND);
1131 reader->SetAsyncRunner(message_loop_.task_runner().get()); 1131 reader->SetAsyncRunner(message_loop_.task_runner().get());
1132 1132
1133 scoped_refptr<net::IOBuffer> buffer(new net::IOBuffer(kData.size())); 1133 scoped_refptr<net::IOBuffer> buffer(new net::IOBuffer(kData.size()));
1134 int bytes_read = 0; 1134 int bytes_read = 0;
1135 int async_bytes_read = 0; 1135 int async_bytes_read = 0;
1136 EXPECT_EQ(BlobReader::Status::IO_PENDING, 1136 EXPECT_EQ(BlobReader::Status::IO_PENDING,
1137 reader_->Read(buffer.get(), kData.size(), &bytes_read, 1137 reader_->Read(buffer.get(), kData.size(), &bytes_read,
1138 base::Bind(&SetValue<int>, &async_bytes_read))); 1138 base::Bind(&SetValue<int>, &async_bytes_read)));
1139 EXPECT_EQ(net::OK, reader_->net_error()); 1139 EXPECT_EQ(net::OK, reader_->net_error());
1140 message_loop_.RunUntilIdle(); 1140 base::RunLoop().RunUntilIdle();
1141 EXPECT_EQ(net::ERR_FILE_NOT_FOUND, async_bytes_read); 1141 EXPECT_EQ(net::ERR_FILE_NOT_FOUND, async_bytes_read);
1142 EXPECT_EQ(net::ERR_FILE_NOT_FOUND, reader_->net_error()); 1142 EXPECT_EQ(net::ERR_FILE_NOT_FOUND, reader_->net_error());
1143 } 1143 }
1144 1144
1145 TEST_F(BlobReaderTest, RangeError) { 1145 TEST_F(BlobReaderTest, RangeError) {
1146 const std::string kData("Hello!!!"); 1146 const std::string kData("Hello!!!");
1147 const size_t kDataSize = 8ul; 1147 const size_t kDataSize = 8ul;
1148 const uint64_t kReadLength = 4ull; 1148 const uint64_t kReadLength = 4ull;
1149 1149
1150 // Case: offset too high. 1150 // Case: offset too high.
(...skipping 27 matching lines...) Expand all
1178 context_.CreatePendingBlob(kUuid, "", ""); 1178 context_.CreatePendingBlob(kUuid, "", "");
1179 blob_handle_ = context_.GetBlobDataFromUUID(kUuid); 1179 blob_handle_ = context_.GetBlobDataFromUUID(kUuid);
1180 provider_ = new MockFileStreamReaderProvider(); 1180 provider_ = new MockFileStreamReaderProvider();
1181 reader_.reset(new BlobReader(blob_handle_.get(), base::WrapUnique(provider_), 1181 reader_.reset(new BlobReader(blob_handle_.get(), base::WrapUnique(provider_),
1182 message_loop_.task_runner().get())); 1182 message_loop_.task_runner().get()));
1183 int size_result = -1; 1183 int size_result = -1;
1184 EXPECT_EQ(BlobReader::Status::IO_PENDING, 1184 EXPECT_EQ(BlobReader::Status::IO_PENDING,
1185 reader_->CalculateSize(base::Bind(&SetValue<int>, &size_result))); 1185 reader_->CalculateSize(base::Bind(&SetValue<int>, &size_result)));
1186 EXPECT_FALSE(reader_->IsInMemory()); 1186 EXPECT_FALSE(reader_->IsInMemory());
1187 context_.CancelPendingBlob(kUuid, IPCBlobCreationCancelCode::UNKNOWN); 1187 context_.CancelPendingBlob(kUuid, IPCBlobCreationCancelCode::UNKNOWN);
1188 message_loop_.RunUntilIdle(); 1188 base::RunLoop().RunUntilIdle();
1189 EXPECT_EQ(net::ERR_FAILED, size_result); 1189 EXPECT_EQ(net::ERR_FAILED, size_result);
1190 } 1190 }
1191 1191
1192 TEST_F(BlobReaderTest, ReadFromIncompleteBlob) { 1192 TEST_F(BlobReaderTest, ReadFromIncompleteBlob) {
1193 const std::string kUuid("uuid1"); 1193 const std::string kUuid("uuid1");
1194 const std::string kData("Hello!!!"); 1194 const std::string kData("Hello!!!");
1195 const size_t kDataSize = 8ul; 1195 const size_t kDataSize = 8ul;
1196 1196
1197 BlobDataBuilder b(kUuid); 1197 BlobDataBuilder b(kUuid);
1198 b.AppendData(kData); 1198 b.AppendData(kData);
1199 context_.CreatePendingBlob(kUuid, "", ""); 1199 context_.CreatePendingBlob(kUuid, "", "");
1200 blob_handle_ = context_.GetBlobDataFromUUID(kUuid); 1200 blob_handle_ = context_.GetBlobDataFromUUID(kUuid);
1201 provider_ = new MockFileStreamReaderProvider(); 1201 provider_ = new MockFileStreamReaderProvider();
1202 reader_.reset(new BlobReader(blob_handle_.get(), base::WrapUnique(provider_), 1202 reader_.reset(new BlobReader(blob_handle_.get(), base::WrapUnique(provider_),
1203 message_loop_.task_runner().get())); 1203 message_loop_.task_runner().get()));
1204 int size_result = -1; 1204 int size_result = -1;
1205 EXPECT_EQ(BlobReader::Status::IO_PENDING, 1205 EXPECT_EQ(BlobReader::Status::IO_PENDING,
1206 reader_->CalculateSize(base::Bind(&SetValue<int>, &size_result))); 1206 reader_->CalculateSize(base::Bind(&SetValue<int>, &size_result)));
1207 EXPECT_FALSE(reader_->IsInMemory()); 1207 EXPECT_FALSE(reader_->IsInMemory());
1208 context_.CompletePendingBlob(b); 1208 context_.CompletePendingBlob(b);
1209 message_loop_.RunUntilIdle(); 1209 base::RunLoop().RunUntilIdle();
1210 CheckSizeCalculatedAsynchronously(kDataSize, size_result); 1210 CheckSizeCalculatedAsynchronously(kDataSize, size_result);
1211 scoped_refptr<net::IOBuffer> buffer(new net::IOBuffer(kDataSize)); 1211 scoped_refptr<net::IOBuffer> buffer(new net::IOBuffer(kDataSize));
1212 1212
1213 int bytes_read = 0; 1213 int bytes_read = 0;
1214 int async_bytes_read = 0; 1214 int async_bytes_read = 0;
1215 EXPECT_EQ(BlobReader::Status::DONE, 1215 EXPECT_EQ(BlobReader::Status::DONE,
1216 reader_->Read(buffer.get(), kDataSize, &bytes_read, 1216 reader_->Read(buffer.get(), kDataSize, &bytes_read,
1217 base::Bind(&SetValue<int>, &async_bytes_read))); 1217 base::Bind(&SetValue<int>, &async_bytes_read)));
1218 EXPECT_EQ(net::OK, reader_->net_error()); 1218 EXPECT_EQ(net::OK, reader_->net_error());
1219 EXPECT_EQ(kDataSize, static_cast<size_t>(bytes_read)); 1219 EXPECT_EQ(kDataSize, static_cast<size_t>(bytes_read));
1220 EXPECT_EQ(0, async_bytes_read); 1220 EXPECT_EQ(0, async_bytes_read);
1221 EXPECT_EQ(kData, std::string(buffer->data(), kDataSize)); 1221 EXPECT_EQ(kData, std::string(buffer->data(), kDataSize));
1222 EXPECT_EQ(net::OK, size_result); 1222 EXPECT_EQ(net::OK, size_result);
1223 } 1223 }
1224 1224
1225 } // namespace storage 1225 } // namespace storage
OLDNEW
« no previous file with comments | « no previous file | content/browser/blob_storage/blob_url_request_job_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698