| 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 <stdint.h> | 5 #include <stdint.h> |
| 6 | 6 |
| 7 #include <limits> | 7 #include <limits> |
| 8 #include <memory> | 8 #include <memory> |
| 9 | 9 |
| 10 #include "base/bind.h" | 10 #include "base/bind.h" |
| (...skipping 135 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 146 private: | 146 private: |
| 147 BlobURLRequestJobTest* test_; | 147 BlobURLRequestJobTest* test_; |
| 148 }; | 148 }; |
| 149 | 149 |
| 150 BlobURLRequestJobTest() | 150 BlobURLRequestJobTest() |
| 151 : blob_data_(new BlobDataBuilder("uuid")), expected_status_code_(0) {} | 151 : blob_data_(new BlobDataBuilder("uuid")), expected_status_code_(0) {} |
| 152 | 152 |
| 153 void SetUp() override { | 153 void SetUp() override { |
| 154 ASSERT_TRUE(temp_dir_.CreateUniqueTempDir()); | 154 ASSERT_TRUE(temp_dir_.CreateUniqueTempDir()); |
| 155 | 155 |
| 156 temp_file1_ = temp_dir_.path().AppendASCII("BlobFile1.dat"); | 156 temp_file1_ = temp_dir_.GetPath().AppendASCII("BlobFile1.dat"); |
| 157 ASSERT_EQ(static_cast<int>(arraysize(kTestFileData1) - 1), | 157 ASSERT_EQ(static_cast<int>(arraysize(kTestFileData1) - 1), |
| 158 base::WriteFile(temp_file1_, kTestFileData1, | 158 base::WriteFile(temp_file1_, kTestFileData1, |
| 159 arraysize(kTestFileData1) - 1)); | 159 arraysize(kTestFileData1) - 1)); |
| 160 base::File::Info file_info1; | 160 base::File::Info file_info1; |
| 161 base::GetFileInfo(temp_file1_, &file_info1); | 161 base::GetFileInfo(temp_file1_, &file_info1); |
| 162 temp_file_modification_time1_ = file_info1.last_modified; | 162 temp_file_modification_time1_ = file_info1.last_modified; |
| 163 | 163 |
| 164 temp_file2_ = temp_dir_.path().AppendASCII("BlobFile2.dat"); | 164 temp_file2_ = temp_dir_.GetPath().AppendASCII("BlobFile2.dat"); |
| 165 ASSERT_EQ(static_cast<int>(arraysize(kTestFileData2) - 1), | 165 ASSERT_EQ(static_cast<int>(arraysize(kTestFileData2) - 1), |
| 166 base::WriteFile(temp_file2_, kTestFileData2, | 166 base::WriteFile(temp_file2_, kTestFileData2, |
| 167 arraysize(kTestFileData2) - 1)); | 167 arraysize(kTestFileData2) - 1)); |
| 168 base::File::Info file_info2; | 168 base::File::Info file_info2; |
| 169 base::GetFileInfo(temp_file2_, &file_info2); | 169 base::GetFileInfo(temp_file2_, &file_info2); |
| 170 temp_file_modification_time2_ = file_info2.last_modified; | 170 temp_file_modification_time2_ = file_info2.last_modified; |
| 171 | 171 |
| 172 disk_cache_backend_ = CreateInMemoryDiskCache(); | 172 disk_cache_backend_ = CreateInMemoryDiskCache(); |
| 173 disk_cache_entry_ = CreateDiskCacheEntry( | 173 disk_cache_entry_ = CreateDiskCacheEntry( |
| 174 disk_cache_backend_.get(), kTestDiskCacheKey1, kTestDiskCacheData1); | 174 disk_cache_backend_.get(), kTestDiskCacheKey1, kTestDiskCacheData1); |
| 175 | 175 |
| 176 url_request_job_factory_.SetProtocolHandler( | 176 url_request_job_factory_.SetProtocolHandler( |
| 177 "blob", base::MakeUnique<MockProtocolHandler>(this)); | 177 "blob", base::MakeUnique<MockProtocolHandler>(this)); |
| 178 url_request_context_.set_job_factory(&url_request_job_factory_); | 178 url_request_context_.set_job_factory(&url_request_job_factory_); |
| 179 } | 179 } |
| 180 | 180 |
| 181 void TearDown() override { | 181 void TearDown() override { |
| 182 blob_handle_.reset(); | 182 blob_handle_.reset(); |
| 183 request_.reset(); | 183 request_.reset(); |
| 184 // Clean up for ASAN | 184 // Clean up for ASAN |
| 185 base::RunLoop run_loop; | 185 base::RunLoop run_loop; |
| 186 run_loop.RunUntilIdle(); | 186 run_loop.RunUntilIdle(); |
| 187 } | 187 } |
| 188 | 188 |
| 189 void SetUpFileSystem() { | 189 void SetUpFileSystem() { |
| 190 // Prepare file system. | 190 // Prepare file system. |
| 191 file_system_context_ = CreateFileSystemContextForTesting( | 191 file_system_context_ = |
| 192 NULL, temp_dir_.path()); | 192 CreateFileSystemContextForTesting(NULL, temp_dir_.GetPath()); |
| 193 | 193 |
| 194 file_system_context_->OpenFileSystem( | 194 file_system_context_->OpenFileSystem( |
| 195 GURL(kFileSystemURLOrigin), | 195 GURL(kFileSystemURLOrigin), |
| 196 kFileSystemType, | 196 kFileSystemType, |
| 197 storage::OPEN_FILE_SYSTEM_CREATE_IF_NONEXISTENT, | 197 storage::OPEN_FILE_SYSTEM_CREATE_IF_NONEXISTENT, |
| 198 base::Bind(&BlobURLRequestJobTest::OnValidateFileSystem, | 198 base::Bind(&BlobURLRequestJobTest::OnValidateFileSystem, |
| 199 base::Unretained(this))); | 199 base::Unretained(this))); |
| 200 base::RunLoop().RunUntilIdle(); | 200 base::RunLoop().RunUntilIdle(); |
| 201 ASSERT_TRUE(file_system_root_url_.is_valid()); | 201 ASSERT_TRUE(file_system_root_url_.is_valid()); |
| 202 | 202 |
| (...skipping 163 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 366 } | 366 } |
| 367 | 367 |
| 368 TEST_F(BlobURLRequestJobTest, TestGetSimpleFileRequest) { | 368 TEST_F(BlobURLRequestJobTest, TestGetSimpleFileRequest) { |
| 369 blob_data_->AppendFile(temp_file1_, 0, std::numeric_limits<uint64_t>::max(), | 369 blob_data_->AppendFile(temp_file1_, 0, std::numeric_limits<uint64_t>::max(), |
| 370 base::Time()); | 370 base::Time()); |
| 371 TestSuccessNonrangeRequest(kTestFileData1, arraysize(kTestFileData1) - 1); | 371 TestSuccessNonrangeRequest(kTestFileData1, arraysize(kTestFileData1) - 1); |
| 372 } | 372 } |
| 373 | 373 |
| 374 TEST_F(BlobURLRequestJobTest, TestGetLargeFileRequest) { | 374 TEST_F(BlobURLRequestJobTest, TestGetLargeFileRequest) { |
| 375 base::FilePath large_temp_file = | 375 base::FilePath large_temp_file = |
| 376 temp_dir_.path().AppendASCII("LargeBlob.dat"); | 376 temp_dir_.GetPath().AppendASCII("LargeBlob.dat"); |
| 377 std::string large_data; | 377 std::string large_data; |
| 378 large_data.reserve(kBufferSize * 5); | 378 large_data.reserve(kBufferSize * 5); |
| 379 for (int i = 0; i < kBufferSize * 5; ++i) | 379 for (int i = 0; i < kBufferSize * 5; ++i) |
| 380 large_data.append(1, static_cast<char>(i % 256)); | 380 large_data.append(1, static_cast<char>(i % 256)); |
| 381 ASSERT_EQ(static_cast<int>(large_data.size()), | 381 ASSERT_EQ(static_cast<int>(large_data.size()), |
| 382 base::WriteFile(large_temp_file, large_data.data(), | 382 base::WriteFile(large_temp_file, large_data.data(), |
| 383 large_data.size())); | 383 large_data.size())); |
| 384 blob_data_->AppendFile(large_temp_file, 0, | 384 blob_data_->AppendFile(large_temp_file, 0, |
| 385 std::numeric_limits<uint64_t>::max(), base::Time()); | 385 std::numeric_limits<uint64_t>::max(), base::Time()); |
| 386 TestSuccessNonrangeRequest(large_data, large_data.size()); | 386 TestSuccessNonrangeRequest(large_data, large_data.size()); |
| (...skipping 210 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 597 expected_status_code_ = 200; | 597 expected_status_code_ = 200; |
| 598 expected_response_ = kTestDiskCacheData2; | 598 expected_response_ = kTestDiskCacheData2; |
| 599 TestRequest("GET", net::HttpRequestHeaders()); | 599 TestRequest("GET", net::HttpRequestHeaders()); |
| 600 EXPECT_EQ(static_cast<int>(arraysize(kTestDiskCacheData2) - 1), | 600 EXPECT_EQ(static_cast<int>(arraysize(kTestDiskCacheData2) - 1), |
| 601 request_->response_headers()->GetContentLength()); | 601 request_->response_headers()->GetContentLength()); |
| 602 | 602 |
| 603 EXPECT_FALSE(url_request_delegate_.metadata()); | 603 EXPECT_FALSE(url_request_delegate_.metadata()); |
| 604 } | 604 } |
| 605 | 605 |
| 606 } // namespace content | 606 } // namespace content |
| OLD | NEW |