OLD | NEW |
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 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/glue/resource_request_body.h" | 5 #include "webkit/glue/resource_request_body.h" |
6 | 6 |
7 #include <algorithm> | 7 #include <algorithm> |
8 | 8 |
9 #include "base/file_util.h" | 9 #include "base/file_util.h" |
10 #include "base/files/file_path.h" | 10 #include "base/files/file_path.h" |
(...skipping 54 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
65 const base::Time kFileTime = base::Time::FromDoubleT(999); | 65 const base::Time kFileTime = base::Time::FromDoubleT(999); |
66 const int64 kIdentifier = 12345; | 66 const int64 kIdentifier = 12345; |
67 | 67 |
68 request_body->AppendBytes(kData, arraysize(kData) - 1); | 68 request_body->AppendBytes(kData, arraysize(kData) - 1); |
69 request_body->AppendFileRange(base::FilePath(kFilePath), | 69 request_body->AppendFileRange(base::FilePath(kFilePath), |
70 kFileOffset, kFileLength, kFileTime); | 70 kFileOffset, kFileLength, kFileTime); |
71 request_body->set_identifier(kIdentifier); | 71 request_body->set_identifier(kIdentifier); |
72 | 72 |
73 scoped_ptr<net::UploadDataStream> upload( | 73 scoped_ptr<net::UploadDataStream> upload( |
74 request_body->ResolveElementsAndCreateUploadDataStream( | 74 request_body->ResolveElementsAndCreateUploadDataStream( |
75 NULL, NULL, base::MessageLoopProxy::current())); | 75 NULL, NULL, base::MessageLoopProxy::current().get())); |
76 | 76 |
77 EXPECT_EQ(kIdentifier, upload->identifier()); | 77 EXPECT_EQ(kIdentifier, upload->identifier()); |
78 ASSERT_EQ(request_body->elements()->size(), upload->element_readers().size()); | 78 ASSERT_EQ(request_body->elements()->size(), upload->element_readers().size()); |
79 | 79 |
80 const net::UploadBytesElementReader* r1 = | 80 const net::UploadBytesElementReader* r1 = |
81 upload->element_readers()[0]->AsBytesReader(); | 81 upload->element_readers()[0]->AsBytesReader(); |
82 ASSERT_TRUE(r1); | 82 ASSERT_TRUE(r1); |
83 EXPECT_EQ(kData, std::string(r1->bytes(), r1->length())); | 83 EXPECT_EQ(kData, std::string(r1->bytes(), r1->length())); |
84 | 84 |
85 const net::UploadFileElementReader* r2 = | 85 const net::UploadFileElementReader* r2 = |
(...skipping 51 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
137 // Test no blob reference. | 137 // Test no blob reference. |
138 scoped_refptr<ResourceRequestBody> request_body(new ResourceRequestBody()); | 138 scoped_refptr<ResourceRequestBody> request_body(new ResourceRequestBody()); |
139 request_body->AppendBytes(upload_element1.bytes(), upload_element1.length()); | 139 request_body->AppendBytes(upload_element1.bytes(), upload_element1.length()); |
140 request_body->AppendFileRange(upload_element2.path(), | 140 request_body->AppendFileRange(upload_element2.path(), |
141 upload_element2.offset(), | 141 upload_element2.offset(), |
142 upload_element2.length(), | 142 upload_element2.length(), |
143 upload_element2.expected_modification_time()); | 143 upload_element2.expected_modification_time()); |
144 | 144 |
145 scoped_ptr<net::UploadDataStream> upload( | 145 scoped_ptr<net::UploadDataStream> upload( |
146 request_body->ResolveElementsAndCreateUploadDataStream( | 146 request_body->ResolveElementsAndCreateUploadDataStream( |
147 &blob_storage_controller, NULL, base::MessageLoopProxy::current())); | 147 &blob_storage_controller, |
| 148 NULL, |
| 149 base::MessageLoopProxy::current().get())); |
148 | 150 |
149 ASSERT_EQ(2U, upload->element_readers().size()); | 151 ASSERT_EQ(2U, upload->element_readers().size()); |
150 EXPECT_TRUE(AreElementsEqual(*upload->element_readers()[0], upload_element1)); | 152 EXPECT_TRUE(AreElementsEqual(*upload->element_readers()[0], upload_element1)); |
151 EXPECT_TRUE(AreElementsEqual(*upload->element_readers()[1], upload_element2)); | 153 EXPECT_TRUE(AreElementsEqual(*upload->element_readers()[1], upload_element2)); |
152 | 154 |
153 // Test having only one blob reference that refers to empty blob data. | 155 // Test having only one blob reference that refers to empty blob data. |
154 request_body = new ResourceRequestBody(); | 156 request_body = new ResourceRequestBody(); |
155 request_body->AppendBlob(blob_url0); | 157 request_body->AppendBlob(blob_url0); |
156 | 158 |
157 upload.reset(request_body->ResolveElementsAndCreateUploadDataStream( | 159 upload.reset(request_body->ResolveElementsAndCreateUploadDataStream( |
158 &blob_storage_controller, NULL, base::MessageLoopProxy::current())); | 160 &blob_storage_controller, NULL, base::MessageLoopProxy::current().get())); |
159 ASSERT_EQ(0U, upload->element_readers().size()); | 161 ASSERT_EQ(0U, upload->element_readers().size()); |
160 | 162 |
161 // Test having only one blob reference. | 163 // Test having only one blob reference. |
162 request_body = new ResourceRequestBody(); | 164 request_body = new ResourceRequestBody(); |
163 request_body->AppendBlob(blob_url1); | 165 request_body->AppendBlob(blob_url1); |
164 | 166 |
165 upload.reset(request_body->ResolveElementsAndCreateUploadDataStream( | 167 upload.reset(request_body->ResolveElementsAndCreateUploadDataStream( |
166 &blob_storage_controller, NULL, base::MessageLoopProxy::current())); | 168 &blob_storage_controller, NULL, base::MessageLoopProxy::current().get())); |
167 ASSERT_EQ(2U, upload->element_readers().size()); | 169 ASSERT_EQ(2U, upload->element_readers().size()); |
168 EXPECT_TRUE(AreElementsEqual(*upload->element_readers()[0], blob_element1)); | 170 EXPECT_TRUE(AreElementsEqual(*upload->element_readers()[0], blob_element1)); |
169 EXPECT_TRUE(AreElementsEqual(*upload->element_readers()[1], blob_element2)); | 171 EXPECT_TRUE(AreElementsEqual(*upload->element_readers()[1], blob_element2)); |
170 | 172 |
171 // Test having one blob reference at the beginning. | 173 // Test having one blob reference at the beginning. |
172 request_body = new ResourceRequestBody(); | 174 request_body = new ResourceRequestBody(); |
173 request_body->AppendBlob(blob_url1); | 175 request_body->AppendBlob(blob_url1); |
174 request_body->AppendBytes(upload_element1.bytes(), upload_element1.length()); | 176 request_body->AppendBytes(upload_element1.bytes(), upload_element1.length()); |
175 request_body->AppendFileRange(upload_element2.path(), | 177 request_body->AppendFileRange(upload_element2.path(), |
176 upload_element2.offset(), | 178 upload_element2.offset(), |
177 upload_element2.length(), | 179 upload_element2.length(), |
178 upload_element2.expected_modification_time()); | 180 upload_element2.expected_modification_time()); |
179 | 181 |
180 upload.reset(request_body->ResolveElementsAndCreateUploadDataStream( | 182 upload.reset(request_body->ResolveElementsAndCreateUploadDataStream( |
181 &blob_storage_controller, NULL, base::MessageLoopProxy::current())); | 183 &blob_storage_controller, NULL, base::MessageLoopProxy::current().get())); |
182 ASSERT_EQ(4U, upload->element_readers().size()); | 184 ASSERT_EQ(4U, upload->element_readers().size()); |
183 EXPECT_TRUE(AreElementsEqual(*upload->element_readers()[0], blob_element1)); | 185 EXPECT_TRUE(AreElementsEqual(*upload->element_readers()[0], blob_element1)); |
184 EXPECT_TRUE(AreElementsEqual(*upload->element_readers()[1], blob_element2)); | 186 EXPECT_TRUE(AreElementsEqual(*upload->element_readers()[1], blob_element2)); |
185 EXPECT_TRUE(AreElementsEqual(*upload->element_readers()[2], upload_element1)); | 187 EXPECT_TRUE(AreElementsEqual(*upload->element_readers()[2], upload_element1)); |
186 EXPECT_TRUE(AreElementsEqual(*upload->element_readers()[3], upload_element2)); | 188 EXPECT_TRUE(AreElementsEqual(*upload->element_readers()[3], upload_element2)); |
187 | 189 |
188 // Test having one blob reference at the end. | 190 // Test having one blob reference at the end. |
189 request_body = new ResourceRequestBody(); | 191 request_body = new ResourceRequestBody(); |
190 request_body->AppendBytes(upload_element1.bytes(), upload_element1.length()); | 192 request_body->AppendBytes(upload_element1.bytes(), upload_element1.length()); |
191 request_body->AppendFileRange(upload_element2.path(), | 193 request_body->AppendFileRange(upload_element2.path(), |
192 upload_element2.offset(), | 194 upload_element2.offset(), |
193 upload_element2.length(), | 195 upload_element2.length(), |
194 upload_element2.expected_modification_time()); | 196 upload_element2.expected_modification_time()); |
195 request_body->AppendBlob(blob_url1); | 197 request_body->AppendBlob(blob_url1); |
196 | 198 |
197 upload.reset(request_body->ResolveElementsAndCreateUploadDataStream( | 199 upload.reset(request_body->ResolveElementsAndCreateUploadDataStream( |
198 &blob_storage_controller, NULL, base::MessageLoopProxy::current())); | 200 &blob_storage_controller, NULL, base::MessageLoopProxy::current().get())); |
199 ASSERT_EQ(4U, upload->element_readers().size()); | 201 ASSERT_EQ(4U, upload->element_readers().size()); |
200 EXPECT_TRUE(AreElementsEqual(*upload->element_readers()[0], upload_element1)); | 202 EXPECT_TRUE(AreElementsEqual(*upload->element_readers()[0], upload_element1)); |
201 EXPECT_TRUE(AreElementsEqual(*upload->element_readers()[1], upload_element2)); | 203 EXPECT_TRUE(AreElementsEqual(*upload->element_readers()[1], upload_element2)); |
202 EXPECT_TRUE(AreElementsEqual(*upload->element_readers()[2], blob_element1)); | 204 EXPECT_TRUE(AreElementsEqual(*upload->element_readers()[2], blob_element1)); |
203 EXPECT_TRUE(AreElementsEqual(*upload->element_readers()[3], blob_element2)); | 205 EXPECT_TRUE(AreElementsEqual(*upload->element_readers()[3], blob_element2)); |
204 | 206 |
205 // Test having one blob reference in the middle. | 207 // Test having one blob reference in the middle. |
206 request_body = new ResourceRequestBody(); | 208 request_body = new ResourceRequestBody(); |
207 request_body->AppendBytes(upload_element1.bytes(), upload_element1.length()); | 209 request_body->AppendBytes(upload_element1.bytes(), upload_element1.length()); |
208 request_body->AppendBlob(blob_url1); | 210 request_body->AppendBlob(blob_url1); |
209 request_body->AppendFileRange(upload_element2.path(), | 211 request_body->AppendFileRange(upload_element2.path(), |
210 upload_element2.offset(), | 212 upload_element2.offset(), |
211 upload_element2.length(), | 213 upload_element2.length(), |
212 upload_element2.expected_modification_time()); | 214 upload_element2.expected_modification_time()); |
213 | 215 |
214 upload.reset(request_body->ResolveElementsAndCreateUploadDataStream( | 216 upload.reset(request_body->ResolveElementsAndCreateUploadDataStream( |
215 &blob_storage_controller, NULL, base::MessageLoopProxy::current())); | 217 &blob_storage_controller, NULL, base::MessageLoopProxy::current().get())); |
216 ASSERT_EQ(4U, upload->element_readers().size()); | 218 ASSERT_EQ(4U, upload->element_readers().size()); |
217 EXPECT_TRUE(AreElementsEqual(*upload->element_readers()[0], upload_element1)); | 219 EXPECT_TRUE(AreElementsEqual(*upload->element_readers()[0], upload_element1)); |
218 EXPECT_TRUE(AreElementsEqual(*upload->element_readers()[1], blob_element1)); | 220 EXPECT_TRUE(AreElementsEqual(*upload->element_readers()[1], blob_element1)); |
219 EXPECT_TRUE(AreElementsEqual(*upload->element_readers()[2], blob_element2)); | 221 EXPECT_TRUE(AreElementsEqual(*upload->element_readers()[2], blob_element2)); |
220 EXPECT_TRUE(AreElementsEqual(*upload->element_readers()[3], upload_element2)); | 222 EXPECT_TRUE(AreElementsEqual(*upload->element_readers()[3], upload_element2)); |
221 | 223 |
222 // Test having multiple blob references. | 224 // Test having multiple blob references. |
223 request_body = new ResourceRequestBody(); | 225 request_body = new ResourceRequestBody(); |
224 request_body->AppendBlob(blob_url1); | 226 request_body->AppendBlob(blob_url1); |
225 request_body->AppendBytes(upload_element1.bytes(), upload_element1.length()); | 227 request_body->AppendBytes(upload_element1.bytes(), upload_element1.length()); |
226 request_body->AppendBlob(blob_url2); | 228 request_body->AppendBlob(blob_url2); |
227 request_body->AppendBlob(blob_url3); | 229 request_body->AppendBlob(blob_url3); |
228 request_body->AppendFileRange(upload_element2.path(), | 230 request_body->AppendFileRange(upload_element2.path(), |
229 upload_element2.offset(), | 231 upload_element2.offset(), |
230 upload_element2.length(), | 232 upload_element2.length(), |
231 upload_element2.expected_modification_time()); | 233 upload_element2.expected_modification_time()); |
232 | 234 |
233 upload.reset(request_body->ResolveElementsAndCreateUploadDataStream( | 235 upload.reset(request_body->ResolveElementsAndCreateUploadDataStream( |
234 &blob_storage_controller, NULL, base::MessageLoopProxy::current())); | 236 &blob_storage_controller, NULL, base::MessageLoopProxy::current().get())); |
235 ASSERT_EQ(8U, upload->element_readers().size()); | 237 ASSERT_EQ(8U, upload->element_readers().size()); |
236 EXPECT_TRUE(AreElementsEqual(*upload->element_readers()[0], blob_element1)); | 238 EXPECT_TRUE(AreElementsEqual(*upload->element_readers()[0], blob_element1)); |
237 EXPECT_TRUE(AreElementsEqual(*upload->element_readers()[1], blob_element2)); | 239 EXPECT_TRUE(AreElementsEqual(*upload->element_readers()[1], blob_element2)); |
238 EXPECT_TRUE(AreElementsEqual(*upload->element_readers()[2], upload_element1)); | 240 EXPECT_TRUE(AreElementsEqual(*upload->element_readers()[2], upload_element1)); |
239 EXPECT_TRUE(AreElementsEqual(*upload->element_readers()[3], blob_element1)); | 241 EXPECT_TRUE(AreElementsEqual(*upload->element_readers()[3], blob_element1)); |
240 EXPECT_TRUE(AreElementsEqual(*upload->element_readers()[4], blob_element2)); | 242 EXPECT_TRUE(AreElementsEqual(*upload->element_readers()[4], blob_element2)); |
241 EXPECT_TRUE(AreElementsEqual(*upload->element_readers()[5], blob_element1)); | 243 EXPECT_TRUE(AreElementsEqual(*upload->element_readers()[5], blob_element1)); |
242 EXPECT_TRUE(AreElementsEqual(*upload->element_readers()[6], blob_element2)); | 244 EXPECT_TRUE(AreElementsEqual(*upload->element_readers()[6], blob_element2)); |
243 EXPECT_TRUE(AreElementsEqual(*upload->element_readers()[7], upload_element2)); | 245 EXPECT_TRUE(AreElementsEqual(*upload->element_readers()[7], upload_element2)); |
244 } | 246 } |
245 | 247 |
246 } // namespace webkit_glue | 248 } // namespace webkit_glue |
OLD | NEW |