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 "base/basictypes.h" | 5 #include "base/basictypes.h" |
6 #include "base/bind.h" | 6 #include "base/bind.h" |
7 #include "base/file_util.h" | 7 #include "base/file_util.h" |
8 #include "base/files/file_path.h" | 8 #include "base/files/file_path.h" |
9 #include "base/files/scoped_temp_dir.h" | 9 #include "base/files/scoped_temp_dir.h" |
10 #include "base/memory/ref_counted.h" | 10 #include "base/memory/ref_counted.h" |
11 #include "base/memory/scoped_ptr.h" | 11 #include "base/memory/scoped_ptr.h" |
12 #include "base/numerics/safe_conversions.h" | 12 #include "base/numerics/safe_conversions.h" |
13 #include "base/run_loop.h" | 13 #include "base/run_loop.h" |
14 #include "base/time/time.h" | 14 #include "base/time/time.h" |
15 #include "content/browser/fileapi/mock_url_request_delegate.h" | 15 #include "content/browser/fileapi/mock_url_request_delegate.h" |
16 #include "content/public/test/async_file_test_helper.h" | 16 #include "content/public/test/async_file_test_helper.h" |
17 #include "content/public/test/test_file_system_context.h" | 17 #include "content/public/test/test_file_system_context.h" |
18 #include "net/base/request_priority.h" | 18 #include "net/base/request_priority.h" |
19 #include "net/http/http_byte_range.h" | 19 #include "net/http/http_byte_range.h" |
20 #include "net/http/http_request_headers.h" | 20 #include "net/http/http_request_headers.h" |
21 #include "net/http/http_response_headers.h" | 21 #include "net/http/http_response_headers.h" |
22 #include "net/url_request/url_request.h" | 22 #include "net/url_request/url_request.h" |
23 #include "net/url_request/url_request_context.h" | 23 #include "net/url_request/url_request_context.h" |
24 #include "net/url_request/url_request_job_factory_impl.h" | 24 #include "net/url_request/url_request_job_factory_impl.h" |
25 #include "testing/gtest/include/gtest/gtest.h" | 25 #include "testing/gtest/include/gtest/gtest.h" |
26 #include "webkit/browser/blob/blob_url_request_job.h" | 26 #include "storage/browser/blob/blob_url_request_job.h" |
27 #include "webkit/browser/fileapi/file_system_context.h" | 27 #include "storage/browser/fileapi/file_system_context.h" |
28 #include "webkit/browser/fileapi/file_system_operation_context.h" | 28 #include "storage/browser/fileapi/file_system_operation_context.h" |
29 #include "webkit/browser/fileapi/file_system_url.h" | 29 #include "storage/browser/fileapi/file_system_url.h" |
30 #include "webkit/common/blob/blob_data.h" | 30 #include "storage/common/blob/blob_data.h" |
31 | 31 |
32 using webkit_blob::BlobData; | 32 using storage::BlobData; |
33 using webkit_blob::BlobURLRequestJob; | 33 using storage::BlobURLRequestJob; |
34 | 34 |
35 namespace content { | 35 namespace content { |
36 | 36 |
37 namespace { | 37 namespace { |
38 | 38 |
39 const int kBufferSize = 1024; | 39 const int kBufferSize = 1024; |
40 const char kTestData1[] = "Hello"; | 40 const char kTestData1[] = "Hello"; |
41 const char kTestData2[] = "Here it is data."; | 41 const char kTestData2[] = "Here it is data."; |
42 const char kTestFileData1[] = "0123456789"; | 42 const char kTestFileData1[] = "0123456789"; |
43 const char kTestFileData2[] = "This is sample file."; | 43 const char kTestFileData2[] = "This is sample file."; |
44 const char kTestFileSystemFileData1[] = "abcdefghijklmnop"; | 44 const char kTestFileSystemFileData1[] = "abcdefghijklmnop"; |
45 const char kTestFileSystemFileData2[] = "File system file test data."; | 45 const char kTestFileSystemFileData2[] = "File system file test data."; |
46 const char kTestContentType[] = "foo/bar"; | 46 const char kTestContentType[] = "foo/bar"; |
47 const char kTestContentDisposition[] = "attachment; filename=foo.txt"; | 47 const char kTestContentDisposition[] = "attachment; filename=foo.txt"; |
48 | 48 |
49 const char kFileSystemURLOrigin[] = "http://remote"; | 49 const char kFileSystemURLOrigin[] = "http://remote"; |
50 const fileapi::FileSystemType kFileSystemType = | 50 const storage::FileSystemType kFileSystemType = |
51 fileapi::kFileSystemTypeTemporary; | 51 storage::kFileSystemTypeTemporary; |
52 | 52 |
53 } // namespace | 53 } // namespace |
54 | 54 |
55 class BlobURLRequestJobTest : public testing::Test { | 55 class BlobURLRequestJobTest : public testing::Test { |
56 public: | 56 public: |
57 // A simple ProtocolHandler implementation to create BlobURLRequestJob. | 57 // A simple ProtocolHandler implementation to create BlobURLRequestJob. |
58 class MockProtocolHandler : | 58 class MockProtocolHandler : |
59 public net::URLRequestJobFactory::ProtocolHandler { | 59 public net::URLRequestJobFactory::ProtocolHandler { |
60 public: | 60 public: |
61 MockProtocolHandler(BlobURLRequestJobTest* test) : test_(test) {} | 61 MockProtocolHandler(BlobURLRequestJobTest* test) : test_(test) {} |
(...skipping 45 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
107 } | 107 } |
108 | 108 |
109 void SetUpFileSystem() { | 109 void SetUpFileSystem() { |
110 // Prepare file system. | 110 // Prepare file system. |
111 file_system_context_ = CreateFileSystemContextForTesting( | 111 file_system_context_ = CreateFileSystemContextForTesting( |
112 NULL, temp_dir_.path()); | 112 NULL, temp_dir_.path()); |
113 | 113 |
114 file_system_context_->OpenFileSystem( | 114 file_system_context_->OpenFileSystem( |
115 GURL(kFileSystemURLOrigin), | 115 GURL(kFileSystemURLOrigin), |
116 kFileSystemType, | 116 kFileSystemType, |
117 fileapi::OPEN_FILE_SYSTEM_CREATE_IF_NONEXISTENT, | 117 storage::OPEN_FILE_SYSTEM_CREATE_IF_NONEXISTENT, |
118 base::Bind(&BlobURLRequestJobTest::OnValidateFileSystem, | 118 base::Bind(&BlobURLRequestJobTest::OnValidateFileSystem, |
119 base::Unretained(this))); | 119 base::Unretained(this))); |
120 base::RunLoop().RunUntilIdle(); | 120 base::RunLoop().RunUntilIdle(); |
121 ASSERT_TRUE(file_system_root_url_.is_valid()); | 121 ASSERT_TRUE(file_system_root_url_.is_valid()); |
122 | 122 |
123 // Prepare files on file system. | 123 // Prepare files on file system. |
124 const char kFilename1[] = "FileSystemFile1.dat"; | 124 const char kFilename1[] = "FileSystemFile1.dat"; |
125 temp_file_system_file1_ = GetFileSystemURL(kFilename1); | 125 temp_file_system_file1_ = GetFileSystemURL(kFilename1); |
126 WriteFileSystemFile(kFilename1, kTestFileSystemFileData1, | 126 WriteFileSystemFile(kFilename1, kTestFileSystemFileData1, |
127 arraysize(kTestFileSystemFileData1) - 1, | 127 arraysize(kTestFileSystemFileData1) - 1, |
128 &temp_file_system_file_modification_time1_); | 128 &temp_file_system_file_modification_time1_); |
129 const char kFilename2[] = "FileSystemFile2.dat"; | 129 const char kFilename2[] = "FileSystemFile2.dat"; |
130 temp_file_system_file2_ = GetFileSystemURL(kFilename2); | 130 temp_file_system_file2_ = GetFileSystemURL(kFilename2); |
131 WriteFileSystemFile(kFilename2, kTestFileSystemFileData2, | 131 WriteFileSystemFile(kFilename2, kTestFileSystemFileData2, |
132 arraysize(kTestFileSystemFileData2) - 1, | 132 arraysize(kTestFileSystemFileData2) - 1, |
133 &temp_file_system_file_modification_time2_); | 133 &temp_file_system_file_modification_time2_); |
134 } | 134 } |
135 | 135 |
136 GURL GetFileSystemURL(const std::string& filename) { | 136 GURL GetFileSystemURL(const std::string& filename) { |
137 return GURL(file_system_root_url_.spec() + filename); | 137 return GURL(file_system_root_url_.spec() + filename); |
138 } | 138 } |
139 | 139 |
140 void WriteFileSystemFile(const std::string& filename, | 140 void WriteFileSystemFile(const std::string& filename, |
141 const char* buf, int buf_size, | 141 const char* buf, int buf_size, |
142 base::Time* modification_time) { | 142 base::Time* modification_time) { |
143 fileapi::FileSystemURL url = | 143 storage::FileSystemURL url = |
144 file_system_context_->CreateCrackedFileSystemURL( | 144 file_system_context_->CreateCrackedFileSystemURL( |
145 GURL(kFileSystemURLOrigin), | 145 GURL(kFileSystemURLOrigin), |
146 kFileSystemType, | 146 kFileSystemType, |
147 base::FilePath().AppendASCII(filename)); | 147 base::FilePath().AppendASCII(filename)); |
148 | 148 |
149 ASSERT_EQ(base::File::FILE_OK, | 149 ASSERT_EQ(base::File::FILE_OK, |
150 content::AsyncFileTestHelper::CreateFileWithData( | 150 content::AsyncFileTestHelper::CreateFileWithData( |
151 file_system_context_, url, buf, buf_size)); | 151 file_system_context_, url, buf, buf_size)); |
152 | 152 |
153 base::File::Info file_info; | 153 base::File::Info file_info; |
(...skipping 82 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
236 base::FilePath temp_file2_; | 236 base::FilePath temp_file2_; |
237 base::Time temp_file_modification_time1_; | 237 base::Time temp_file_modification_time1_; |
238 base::Time temp_file_modification_time2_; | 238 base::Time temp_file_modification_time2_; |
239 GURL file_system_root_url_; | 239 GURL file_system_root_url_; |
240 GURL temp_file_system_file1_; | 240 GURL temp_file_system_file1_; |
241 GURL temp_file_system_file2_; | 241 GURL temp_file_system_file2_; |
242 base::Time temp_file_system_file_modification_time1_; | 242 base::Time temp_file_system_file_modification_time1_; |
243 base::Time temp_file_system_file_modification_time2_; | 243 base::Time temp_file_system_file_modification_time2_; |
244 | 244 |
245 base::MessageLoopForIO message_loop_; | 245 base::MessageLoopForIO message_loop_; |
246 scoped_refptr<fileapi::FileSystemContext> file_system_context_; | 246 scoped_refptr<storage::FileSystemContext> file_system_context_; |
247 scoped_refptr<BlobData> blob_data_; | 247 scoped_refptr<BlobData> blob_data_; |
248 net::URLRequestJobFactoryImpl url_request_job_factory_; | 248 net::URLRequestJobFactoryImpl url_request_job_factory_; |
249 net::URLRequestContext url_request_context_; | 249 net::URLRequestContext url_request_context_; |
250 MockURLRequestDelegate url_request_delegate_; | 250 MockURLRequestDelegate url_request_delegate_; |
251 scoped_ptr<net::URLRequest> request_; | 251 scoped_ptr<net::URLRequest> request_; |
252 | 252 |
253 int expected_status_code_; | 253 int expected_status_code_; |
254 std::string expected_response_; | 254 std::string expected_response_; |
255 }; | 255 }; |
256 | 256 |
(...skipping 151 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
408 EXPECT_TRUE(request_->response_headers()->GetMimeType(&content_type)); | 408 EXPECT_TRUE(request_->response_headers()->GetMimeType(&content_type)); |
409 EXPECT_EQ(kTestContentType, content_type); | 409 EXPECT_EQ(kTestContentType, content_type); |
410 void* iter = NULL; | 410 void* iter = NULL; |
411 std::string content_disposition; | 411 std::string content_disposition; |
412 EXPECT_TRUE(request_->response_headers()->EnumerateHeader( | 412 EXPECT_TRUE(request_->response_headers()->EnumerateHeader( |
413 &iter, "Content-Disposition", &content_disposition)); | 413 &iter, "Content-Disposition", &content_disposition)); |
414 EXPECT_EQ(kTestContentDisposition, content_disposition); | 414 EXPECT_EQ(kTestContentDisposition, content_disposition); |
415 } | 415 } |
416 | 416 |
417 } // namespace content | 417 } // namespace content |
OLD | NEW |