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

Side by Side Diff: webkit/glue/resource_request_body_unittest.cc

Issue 11778016: net: Stop using base::WorkerPool from UploadFileElementReader (Closed) Base URL: http://git.chromium.org/chromium/src.git@master
Patch Set: Fix CF Created 7 years, 11 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
OLDNEW
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_path.h" 9 #include "base/file_path.h"
10 #include "base/file_util.h" 10 #include "base/file_util.h"
11 #include "base/message_loop_proxy.h"
11 #include "base/time.h" 12 #include "base/time.h"
12 #include "googleurl/src/gurl.h" 13 #include "googleurl/src/gurl.h"
13 #include "net/base/upload_bytes_element_reader.h" 14 #include "net/base/upload_bytes_element_reader.h"
14 #include "net/base/upload_data_stream.h" 15 #include "net/base/upload_data_stream.h"
15 #include "net/base/upload_file_element_reader.h" 16 #include "net/base/upload_file_element_reader.h"
16 #include "testing/gtest/include/gtest/gtest.h" 17 #include "testing/gtest/include/gtest/gtest.h"
17 #include "webkit/blob/blob_storage_controller.h" 18 #include "webkit/blob/blob_storage_controller.h"
18 19
19 using webkit_blob::BlobData; 20 using webkit_blob::BlobData;
20 using webkit_blob::BlobStorageController; 21 using webkit_blob::BlobStorageController;
(...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after
61 const uint64 kFileLength = 100U; 62 const uint64 kFileLength = 100U;
62 const base::Time kFileTime = base::Time::FromDoubleT(999); 63 const base::Time kFileTime = base::Time::FromDoubleT(999);
63 const int64 kIdentifier = 12345; 64 const int64 kIdentifier = 12345;
64 65
65 request_body->AppendBytes(kData, arraysize(kData) - 1); 66 request_body->AppendBytes(kData, arraysize(kData) - 1);
66 request_body->AppendFileRange(FilePath(kFilePath), 67 request_body->AppendFileRange(FilePath(kFilePath),
67 kFileOffset, kFileLength, kFileTime); 68 kFileOffset, kFileLength, kFileTime);
68 request_body->set_identifier(kIdentifier); 69 request_body->set_identifier(kIdentifier);
69 70
70 scoped_ptr<net::UploadDataStream> upload( 71 scoped_ptr<net::UploadDataStream> upload(
71 request_body->ResolveElementsAndCreateUploadDataStream(NULL)); 72 request_body->ResolveElementsAndCreateUploadDataStream(
73 NULL, base::MessageLoopProxy::current()));
72 74
73 EXPECT_EQ(kIdentifier, upload->identifier()); 75 EXPECT_EQ(kIdentifier, upload->identifier());
74 ASSERT_EQ(request_body->elements()->size(), upload->element_readers().size()); 76 ASSERT_EQ(request_body->elements()->size(), upload->element_readers().size());
75 77
76 const net::UploadBytesElementReader* r1 = 78 const net::UploadBytesElementReader* r1 =
77 upload->element_readers()[0]->AsBytesReader(); 79 upload->element_readers()[0]->AsBytesReader();
78 ASSERT_TRUE(r1); 80 ASSERT_TRUE(r1);
79 EXPECT_EQ(kData, std::string(r1->bytes(), r1->length())); 81 EXPECT_EQ(kData, std::string(r1->bytes(), r1->length()));
80 82
81 const net::UploadFileElementReader* r2 = 83 const net::UploadFileElementReader* r2 =
(...skipping 50 matching lines...) Expand 10 before | Expand all | Expand 10 after
132 // Test no blob reference. 134 // Test no blob reference.
133 scoped_refptr<ResourceRequestBody> request_body(new ResourceRequestBody()); 135 scoped_refptr<ResourceRequestBody> request_body(new ResourceRequestBody());
134 request_body->AppendBytes(upload_element1.bytes(), upload_element1.length()); 136 request_body->AppendBytes(upload_element1.bytes(), upload_element1.length());
135 request_body->AppendFileRange(upload_element2.path(), 137 request_body->AppendFileRange(upload_element2.path(),
136 upload_element2.offset(), 138 upload_element2.offset(),
137 upload_element2.length(), 139 upload_element2.length(),
138 upload_element2.expected_modification_time()); 140 upload_element2.expected_modification_time());
139 141
140 scoped_ptr<net::UploadDataStream> upload( 142 scoped_ptr<net::UploadDataStream> upload(
141 request_body->ResolveElementsAndCreateUploadDataStream( 143 request_body->ResolveElementsAndCreateUploadDataStream(
142 &blob_storage_controller)); 144 &blob_storage_controller, base::MessageLoopProxy::current()));
143 145
144 ASSERT_EQ(2U, upload->element_readers().size()); 146 ASSERT_EQ(2U, upload->element_readers().size());
145 EXPECT_TRUE(AreElementsEqual(*upload->element_readers()[0], upload_element1)); 147 EXPECT_TRUE(AreElementsEqual(*upload->element_readers()[0], upload_element1));
146 EXPECT_TRUE(AreElementsEqual(*upload->element_readers()[1], upload_element2)); 148 EXPECT_TRUE(AreElementsEqual(*upload->element_readers()[1], upload_element2));
147 149
148 // Test having only one blob reference that refers to empty blob data. 150 // Test having only one blob reference that refers to empty blob data.
149 request_body = new ResourceRequestBody(); 151 request_body = new ResourceRequestBody();
150 request_body->AppendBlob(blob_url0); 152 request_body->AppendBlob(blob_url0);
151 153
152 upload.reset(request_body->ResolveElementsAndCreateUploadDataStream( 154 upload.reset(request_body->ResolveElementsAndCreateUploadDataStream(
153 &blob_storage_controller)); 155 &blob_storage_controller, base::MessageLoopProxy::current()));
154 ASSERT_EQ(0U, upload->element_readers().size()); 156 ASSERT_EQ(0U, upload->element_readers().size());
155 157
156 // Test having only one blob reference. 158 // Test having only one blob reference.
157 request_body = new ResourceRequestBody(); 159 request_body = new ResourceRequestBody();
158 request_body->AppendBlob(blob_url1); 160 request_body->AppendBlob(blob_url1);
159 161
160 upload.reset(request_body->ResolveElementsAndCreateUploadDataStream( 162 upload.reset(request_body->ResolveElementsAndCreateUploadDataStream(
161 &blob_storage_controller)); 163 &blob_storage_controller, base::MessageLoopProxy::current()));
162 ASSERT_EQ(2U, upload->element_readers().size()); 164 ASSERT_EQ(2U, upload->element_readers().size());
163 EXPECT_TRUE(AreElementsEqual(*upload->element_readers()[0], blob_element1)); 165 EXPECT_TRUE(AreElementsEqual(*upload->element_readers()[0], blob_element1));
164 EXPECT_TRUE(AreElementsEqual(*upload->element_readers()[1], blob_element2)); 166 EXPECT_TRUE(AreElementsEqual(*upload->element_readers()[1], blob_element2));
165 167
166 // Test having one blob reference at the beginning. 168 // Test having one blob reference at the beginning.
167 request_body = new ResourceRequestBody(); 169 request_body = new ResourceRequestBody();
168 request_body->AppendBlob(blob_url1); 170 request_body->AppendBlob(blob_url1);
169 request_body->AppendBytes(upload_element1.bytes(), upload_element1.length()); 171 request_body->AppendBytes(upload_element1.bytes(), upload_element1.length());
170 request_body->AppendFileRange(upload_element2.path(), 172 request_body->AppendFileRange(upload_element2.path(),
171 upload_element2.offset(), 173 upload_element2.offset(),
172 upload_element2.length(), 174 upload_element2.length(),
173 upload_element2.expected_modification_time()); 175 upload_element2.expected_modification_time());
174 176
175 upload.reset(request_body->ResolveElementsAndCreateUploadDataStream( 177 upload.reset(request_body->ResolveElementsAndCreateUploadDataStream(
176 &blob_storage_controller)); 178 &blob_storage_controller, base::MessageLoopProxy::current()));
177 ASSERT_EQ(4U, upload->element_readers().size()); 179 ASSERT_EQ(4U, upload->element_readers().size());
178 EXPECT_TRUE(AreElementsEqual(*upload->element_readers()[0], blob_element1)); 180 EXPECT_TRUE(AreElementsEqual(*upload->element_readers()[0], blob_element1));
179 EXPECT_TRUE(AreElementsEqual(*upload->element_readers()[1], blob_element2)); 181 EXPECT_TRUE(AreElementsEqual(*upload->element_readers()[1], blob_element2));
180 EXPECT_TRUE(AreElementsEqual(*upload->element_readers()[2], upload_element1)); 182 EXPECT_TRUE(AreElementsEqual(*upload->element_readers()[2], upload_element1));
181 EXPECT_TRUE(AreElementsEqual(*upload->element_readers()[3], upload_element2)); 183 EXPECT_TRUE(AreElementsEqual(*upload->element_readers()[3], upload_element2));
182 184
183 // Test having one blob reference at the end. 185 // Test having one blob reference at the end.
184 request_body = new ResourceRequestBody(); 186 request_body = new ResourceRequestBody();
185 request_body->AppendBytes(upload_element1.bytes(), upload_element1.length()); 187 request_body->AppendBytes(upload_element1.bytes(), upload_element1.length());
186 request_body->AppendFileRange(upload_element2.path(), 188 request_body->AppendFileRange(upload_element2.path(),
187 upload_element2.offset(), 189 upload_element2.offset(),
188 upload_element2.length(), 190 upload_element2.length(),
189 upload_element2.expected_modification_time()); 191 upload_element2.expected_modification_time());
190 request_body->AppendBlob(blob_url1); 192 request_body->AppendBlob(blob_url1);
191 193
192 upload.reset(request_body->ResolveElementsAndCreateUploadDataStream( 194 upload.reset(request_body->ResolveElementsAndCreateUploadDataStream(
193 &blob_storage_controller)); 195 &blob_storage_controller, base::MessageLoopProxy::current()));
194 ASSERT_EQ(4U, upload->element_readers().size()); 196 ASSERT_EQ(4U, upload->element_readers().size());
195 EXPECT_TRUE(AreElementsEqual(*upload->element_readers()[0], upload_element1)); 197 EXPECT_TRUE(AreElementsEqual(*upload->element_readers()[0], upload_element1));
196 EXPECT_TRUE(AreElementsEqual(*upload->element_readers()[1], upload_element2)); 198 EXPECT_TRUE(AreElementsEqual(*upload->element_readers()[1], upload_element2));
197 EXPECT_TRUE(AreElementsEqual(*upload->element_readers()[2], blob_element1)); 199 EXPECT_TRUE(AreElementsEqual(*upload->element_readers()[2], blob_element1));
198 EXPECT_TRUE(AreElementsEqual(*upload->element_readers()[3], blob_element2)); 200 EXPECT_TRUE(AreElementsEqual(*upload->element_readers()[3], blob_element2));
199 201
200 // Test having one blob reference in the middle. 202 // Test having one blob reference in the middle.
201 request_body = new ResourceRequestBody(); 203 request_body = new ResourceRequestBody();
202 request_body->AppendBytes(upload_element1.bytes(), upload_element1.length()); 204 request_body->AppendBytes(upload_element1.bytes(), upload_element1.length());
203 request_body->AppendBlob(blob_url1); 205 request_body->AppendBlob(blob_url1);
204 request_body->AppendFileRange(upload_element2.path(), 206 request_body->AppendFileRange(upload_element2.path(),
205 upload_element2.offset(), 207 upload_element2.offset(),
206 upload_element2.length(), 208 upload_element2.length(),
207 upload_element2.expected_modification_time()); 209 upload_element2.expected_modification_time());
208 210
209 upload.reset(request_body->ResolveElementsAndCreateUploadDataStream( 211 upload.reset(request_body->ResolveElementsAndCreateUploadDataStream(
210 &blob_storage_controller)); 212 &blob_storage_controller, base::MessageLoopProxy::current()));
211 ASSERT_EQ(4U, upload->element_readers().size()); 213 ASSERT_EQ(4U, upload->element_readers().size());
212 EXPECT_TRUE(AreElementsEqual(*upload->element_readers()[0], upload_element1)); 214 EXPECT_TRUE(AreElementsEqual(*upload->element_readers()[0], upload_element1));
213 EXPECT_TRUE(AreElementsEqual(*upload->element_readers()[1], blob_element1)); 215 EXPECT_TRUE(AreElementsEqual(*upload->element_readers()[1], blob_element1));
214 EXPECT_TRUE(AreElementsEqual(*upload->element_readers()[2], blob_element2)); 216 EXPECT_TRUE(AreElementsEqual(*upload->element_readers()[2], blob_element2));
215 EXPECT_TRUE(AreElementsEqual(*upload->element_readers()[3], upload_element2)); 217 EXPECT_TRUE(AreElementsEqual(*upload->element_readers()[3], upload_element2));
216 218
217 // Test having multiple blob references. 219 // Test having multiple blob references.
218 request_body = new ResourceRequestBody(); 220 request_body = new ResourceRequestBody();
219 request_body->AppendBlob(blob_url1); 221 request_body->AppendBlob(blob_url1);
220 request_body->AppendBytes(upload_element1.bytes(), upload_element1.length()); 222 request_body->AppendBytes(upload_element1.bytes(), upload_element1.length());
221 request_body->AppendBlob(blob_url2); 223 request_body->AppendBlob(blob_url2);
222 request_body->AppendBlob(blob_url3); 224 request_body->AppendBlob(blob_url3);
223 request_body->AppendFileRange(upload_element2.path(), 225 request_body->AppendFileRange(upload_element2.path(),
224 upload_element2.offset(), 226 upload_element2.offset(),
225 upload_element2.length(), 227 upload_element2.length(),
226 upload_element2.expected_modification_time()); 228 upload_element2.expected_modification_time());
227 229
228 upload.reset(request_body->ResolveElementsAndCreateUploadDataStream( 230 upload.reset(request_body->ResolveElementsAndCreateUploadDataStream(
229 &blob_storage_controller)); 231 &blob_storage_controller, base::MessageLoopProxy::current()));
230 ASSERT_EQ(8U, upload->element_readers().size()); 232 ASSERT_EQ(8U, upload->element_readers().size());
231 EXPECT_TRUE(AreElementsEqual(*upload->element_readers()[0], blob_element1)); 233 EXPECT_TRUE(AreElementsEqual(*upload->element_readers()[0], blob_element1));
232 EXPECT_TRUE(AreElementsEqual(*upload->element_readers()[1], blob_element2)); 234 EXPECT_TRUE(AreElementsEqual(*upload->element_readers()[1], blob_element2));
233 EXPECT_TRUE(AreElementsEqual(*upload->element_readers()[2], upload_element1)); 235 EXPECT_TRUE(AreElementsEqual(*upload->element_readers()[2], upload_element1));
234 EXPECT_TRUE(AreElementsEqual(*upload->element_readers()[3], blob_element1)); 236 EXPECT_TRUE(AreElementsEqual(*upload->element_readers()[3], blob_element1));
235 EXPECT_TRUE(AreElementsEqual(*upload->element_readers()[4], blob_element2)); 237 EXPECT_TRUE(AreElementsEqual(*upload->element_readers()[4], blob_element2));
236 EXPECT_TRUE(AreElementsEqual(*upload->element_readers()[5], blob_element1)); 238 EXPECT_TRUE(AreElementsEqual(*upload->element_readers()[5], blob_element1));
237 EXPECT_TRUE(AreElementsEqual(*upload->element_readers()[6], blob_element2)); 239 EXPECT_TRUE(AreElementsEqual(*upload->element_readers()[6], blob_element2));
238 EXPECT_TRUE(AreElementsEqual(*upload->element_readers()[7], upload_element2)); 240 EXPECT_TRUE(AreElementsEqual(*upload->element_readers()[7], upload_element2));
239 } 241 }
240 242
241 } // namespace webkit_glue 243 } // namespace webkit_glue
OLDNEW
« no previous file with comments | « webkit/glue/resource_request_body.cc ('k') | webkit/tools/test_shell/simple_resource_loader_bridge.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698