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

Side by Side Diff: Source/modules/fetch/FetchFormDataConsumerHandleTest.cpp

Issue 1311923004: Rename FormData/FormDataBuilder to EncodedFormData/FormDataEncoder respectively. (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: Created 5 years, 3 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 | Annotate | Revision Log
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 "config.h" 5 #include "config.h"
6 #include "modules/fetch/FetchFormDataConsumerHandle.h" 6 #include "modules/fetch/FetchFormDataConsumerHandle.h"
7 7
8 #include "core/dom/DOMTypedArray.h" 8 #include "core/dom/DOMTypedArray.h"
9 #include "core/html/DOMFormData.h" 9 #include "core/html/DOMFormData.h"
10 #include "core/html/FormDataList.h" 10 #include "core/html/FormDataList.h"
(...skipping 58 matching lines...) Expand 10 before | Expand all | Expand 10 after
69 class FetchFormDataConsumerHandleTest : public ::testing::Test { 69 class FetchFormDataConsumerHandleTest : public ::testing::Test {
70 public: 70 public:
71 FetchFormDataConsumerHandleTest() : m_page(DummyPageHolder::create(IntSize(1 , 1))) {} 71 FetchFormDataConsumerHandleTest() : m_page(DummyPageHolder::create(IntSize(1 , 1))) {}
72 72
73 protected: 73 protected:
74 Document* document() { return &m_page->document(); } 74 Document* document() { return &m_page->document(); }
75 75
76 OwnPtr<DummyPageHolder> m_page; 76 OwnPtr<DummyPageHolder> m_page;
77 }; 77 };
78 78
79 PassRefPtr<FormData> complexFormData() 79 PassRefPtr<EncodedFormData> complexFormData()
80 { 80 {
81 RefPtr<FormData> data = FormData::create(); 81 RefPtr<EncodedFormData> data = EncodedFormData::create();
82 82
83 data->appendData("foo", 3); 83 data->appendData("foo", 3);
84 data->appendFileRange("/foo/bar/baz", 3, 4, 5); 84 data->appendFileRange("/foo/bar/baz", 3, 4, 5);
85 data->appendFileSystemURLRange(KURL(KURL(), "file:///foo/bar/baz"), 6, 7, 8) ; 85 data->appendFileSystemURLRange(KURL(KURL(), "file:///foo/bar/baz"), 6, 7, 8) ;
86 OwnPtr<BlobData> blobData = BlobData::create(); 86 OwnPtr<BlobData> blobData = BlobData::create();
87 blobData->appendText("hello", false); 87 blobData->appendText("hello", false);
88 auto size = blobData->length(); 88 auto size = blobData->length();
89 RefPtr<BlobDataHandle> blobDataHandle = BlobDataHandle::create(blobData.rele ase(), size); 89 RefPtr<BlobDataHandle> blobDataHandle = BlobDataHandle::create(blobData.rele ase(), size);
90 data->appendBlob(blobDataHandle->uuid(), blobDataHandle); 90 data->appendBlob(blobDataHandle->uuid(), blobDataHandle);
91 Vector<char> boundary; 91 Vector<char> boundary;
92 boundary.append("\0", 1); 92 boundary.append("\0", 1);
93 data->setBoundary(boundary); 93 data->setBoundary(boundary);
94 return data.release(); 94 return data.release();
95 } 95 }
96 96
97 void verifyComplexFormData(FormData* data) 97 void verifyComplexFormData(EncodedFormData* data)
98 { 98 {
99 const auto& elements = data->elements(); 99 const auto& elements = data->elements();
100 if (4 != elements.size()) { 100 if (4 != elements.size()) {
101 FAIL() << "data->elements().size() should be 4, but is " << data->elemen ts().size() << "."; 101 FAIL() << "data->elements().size() should be 4, but is " << data->elemen ts().size() << ".";
102 } 102 }
103 EXPECT_EQ(FormDataElement::data, elements[0].m_type); 103 EXPECT_EQ(FormDataElement::data, elements[0].m_type);
104 EXPECT_EQ("foo", String(elements[0].m_data.data(), elements[0].m_data.size() )); 104 EXPECT_EQ("foo", String(elements[0].m_data.data(), elements[0].m_data.size() ));
105 105
106 EXPECT_EQ(FormDataElement::encodedFile, elements[1].m_type); 106 EXPECT_EQ(FormDataElement::encodedFile, elements[1].m_type);
107 EXPECT_EQ("/foo/bar/baz", elements[1].m_filename); 107 EXPECT_EQ("/foo/bar/baz", elements[1].m_filename);
(...skipping 65 matching lines...) Expand 10 before | Expand all | Expand 10 after
173 HandleReaderRunner<HandleReader> runner(handle.release()); 173 HandleReaderRunner<HandleReader> runner(handle.release());
174 OwnPtr<HandleReadResult> r = runner.wait(); 174 OwnPtr<HandleReadResult> r = runner.wait();
175 EXPECT_EQ(kDone, r->result()); 175 EXPECT_EQ(kDone, r->result());
176 Vector<char> expected; 176 Vector<char> expected;
177 expected.append(data + offset, size); 177 expected.append(data + offset, size);
178 EXPECT_EQ(expected, r->data()); 178 EXPECT_EQ(expected, r->data());
179 } 179 }
180 180
181 TEST_F(FetchFormDataConsumerHandleTest, ReadFromSimplFormData) 181 TEST_F(FetchFormDataConsumerHandleTest, ReadFromSimplFormData)
182 { 182 {
183 RefPtr<FormData> data = FormData::create(); 183 RefPtr<EncodedFormData> data = EncodedFormData::create();
184 data->appendData("foo", 3); 184 data->appendData("foo", 3);
185 data->appendData("hoge", 4); 185 data->appendData("hoge", 4);
186 186
187 OwnPtr<FetchDataConsumerHandle> handle = FetchFormDataConsumerHandle::create (document(), data); 187 OwnPtr<FetchDataConsumerHandle> handle = FetchFormDataConsumerHandle::create (document(), data);
188 HandleReaderRunner<HandleReader> runner(handle.release()); 188 HandleReaderRunner<HandleReader> runner(handle.release());
189 testing::runPendingTasks(); 189 testing::runPendingTasks();
190 OwnPtr<HandleReadResult> r = runner.wait(); 190 OwnPtr<HandleReadResult> r = runner.wait();
191 EXPECT_EQ(kDone, r->result()); 191 EXPECT_EQ(kDone, r->result());
192 EXPECT_EQ("foohoge", toString(r->data())); 192 EXPECT_EQ("foohoge", toString(r->data()));
193 } 193 }
194 194
195 TEST_F(FetchFormDataConsumerHandleTest, ReadFromComplexFormData) 195 TEST_F(FetchFormDataConsumerHandleTest, ReadFromComplexFormData)
196 { 196 {
197 RefPtr<FormData> data = complexFormData(); 197 RefPtr<EncodedFormData> data = complexFormData();
198 OwnPtr<ReplayingHandle> src = ReplayingHandle::create(); 198 OwnPtr<ReplayingHandle> src = ReplayingHandle::create();
199 src->add(Command(Command::Data, "bar")); 199 src->add(Command(Command::Data, "bar"));
200 src->add(Command(Command::Done)); 200 src->add(Command(Command::Done));
201 OwnPtr<FetchDataConsumerHandle> handle = FetchFormDataConsumerHandle::create ForTest(document(), data, new LoaderFactory(src.release())); 201 OwnPtr<FetchDataConsumerHandle> handle = FetchFormDataConsumerHandle::create ForTest(document(), data, new LoaderFactory(src.release()));
202 char c; 202 char c;
203 size_t readSize; 203 size_t readSize;
204 EXPECT_EQ(kShouldWait, handle->obtainReader(nullptr)->read(&c, 1, kNone, &re adSize)); 204 EXPECT_EQ(kShouldWait, handle->obtainReader(nullptr)->read(&c, 1, kNone, &re adSize));
205 205
206 HandleReaderRunner<HandleReader> runner(handle.release()); 206 HandleReaderRunner<HandleReader> runner(handle.release());
207 testing::runPendingTasks(); 207 testing::runPendingTasks();
208 OwnPtr<HandleReadResult> r = runner.wait(); 208 OwnPtr<HandleReadResult> r = runner.wait();
209 EXPECT_EQ(kDone, r->result()); 209 EXPECT_EQ(kDone, r->result());
210 EXPECT_EQ("bar", toString(r->data())); 210 EXPECT_EQ("bar", toString(r->data()));
211 } 211 }
212 212
213 TEST_F(FetchFormDataConsumerHandleTest, TwoPhaseReadFromComplexFormData) 213 TEST_F(FetchFormDataConsumerHandleTest, TwoPhaseReadFromComplexFormData)
214 { 214 {
215 RefPtr<FormData> data = complexFormData(); 215 RefPtr<EncodedFormData> data = complexFormData();
216 OwnPtr<ReplayingHandle> src = ReplayingHandle::create(); 216 OwnPtr<ReplayingHandle> src = ReplayingHandle::create();
217 src->add(Command(Command::Data, "bar")); 217 src->add(Command(Command::Data, "bar"));
218 src->add(Command(Command::Done)); 218 src->add(Command(Command::Done));
219 OwnPtr<FetchDataConsumerHandle> handle = FetchFormDataConsumerHandle::create ForTest(document(), data, new LoaderFactory(src.release())); 219 OwnPtr<FetchDataConsumerHandle> handle = FetchFormDataConsumerHandle::create ForTest(document(), data, new LoaderFactory(src.release()));
220 char c; 220 char c;
221 size_t readSize; 221 size_t readSize;
222 EXPECT_EQ(kShouldWait, handle->obtainReader(nullptr)->read(&c, 1, kNone, &re adSize)); 222 EXPECT_EQ(kShouldWait, handle->obtainReader(nullptr)->read(&c, 1, kNone, &re adSize));
223 223
224 HandleReaderRunner<HandleTwoPhaseReader> runner(handle.release()); 224 HandleReaderRunner<HandleTwoPhaseReader> runner(handle.release());
225 testing::runPendingTasks(); 225 testing::runPendingTasks();
226 OwnPtr<HandleReadResult> r = runner.wait(); 226 OwnPtr<HandleReadResult> r = runner.wait();
227 EXPECT_EQ(kDone, r->result()); 227 EXPECT_EQ(kDone, r->result());
228 EXPECT_EQ("bar", toString(r->data())); 228 EXPECT_EQ("bar", toString(r->data()));
229 } 229 }
230 230
231 TEST_F(FetchFormDataConsumerHandleTest, DrainAsBlobDataHandle) 231 TEST_F(FetchFormDataConsumerHandleTest, DrainAsBlobDataHandle)
232 { 232 {
233 OwnPtr<FetchDataConsumerHandle> handle = FetchFormDataConsumerHandle::create (String("hello, world")); 233 OwnPtr<FetchDataConsumerHandle> handle = FetchFormDataConsumerHandle::create (String("hello, world"));
234 OwnPtr<FetchDataConsumerHandle::Reader> reader = handle->obtainReader(nullpt r); 234 OwnPtr<FetchDataConsumerHandle::Reader> reader = handle->obtainReader(nullpt r);
235 EXPECT_FALSE(reader->drainAsBlobDataHandle(FetchDataConsumerHandle::Reader:: AllowBlobWithInvalidSize)); 235 EXPECT_FALSE(reader->drainAsBlobDataHandle(FetchDataConsumerHandle::Reader:: AllowBlobWithInvalidSize));
236 } 236 }
237 237
238 TEST_F(FetchFormDataConsumerHandleTest, DrainAsFormDataFromString) 238 TEST_F(FetchFormDataConsumerHandleTest, DrainAsFormDataFromString)
239 { 239 {
240 OwnPtr<FetchDataConsumerHandle> handle = FetchFormDataConsumerHandle::create (String("hello, world")); 240 OwnPtr<FetchDataConsumerHandle> handle = FetchFormDataConsumerHandle::create (String("hello, world"));
241 OwnPtr<FetchDataConsumerHandle::Reader> reader = handle->obtainReader(nullpt r); 241 OwnPtr<FetchDataConsumerHandle::Reader> reader = handle->obtainReader(nullpt r);
242 RefPtr<FormData> formData = reader->drainAsFormData(); 242 RefPtr<EncodedFormData> formData = reader->drainAsFormData();
243 ASSERT_TRUE(formData); 243 ASSERT_TRUE(formData);
244 EXPECT_TRUE(formData->isSafeToSendToAnotherThread()); 244 EXPECT_TRUE(formData->isSafeToSendToAnotherThread());
245 EXPECT_EQ("hello, world", formData->flattenToString()); 245 EXPECT_EQ("hello, world", formData->flattenToString());
246 246
247 const void* buffer = nullptr; 247 const void* buffer = nullptr;
248 size_t size; 248 size_t size;
249 EXPECT_EQ(kDone, reader->read(nullptr, 0, kNone, &size)); 249 EXPECT_EQ(kDone, reader->read(nullptr, 0, kNone, &size));
250 EXPECT_EQ(kDone, reader->beginRead(&buffer, kNone, &size)); 250 EXPECT_EQ(kDone, reader->beginRead(&buffer, kNone, &size));
251 } 251 }
252 252
253 TEST_F(FetchFormDataConsumerHandleTest, DrainAsFormDataFromArrayBuffer) 253 TEST_F(FetchFormDataConsumerHandleTest, DrainAsFormDataFromArrayBuffer)
254 { 254 {
255 OwnPtr<FetchDataConsumerHandle> handle = FetchFormDataConsumerHandle::create (DOMArrayBuffer::create("foo", 3)); 255 OwnPtr<FetchDataConsumerHandle> handle = FetchFormDataConsumerHandle::create (DOMArrayBuffer::create("foo", 3));
256 OwnPtr<FetchDataConsumerHandle::Reader> reader = handle->obtainReader(nullpt r); 256 OwnPtr<FetchDataConsumerHandle::Reader> reader = handle->obtainReader(nullpt r);
257 RefPtr<FormData> formData = reader->drainAsFormData(); 257 RefPtr<EncodedFormData> formData = reader->drainAsFormData();
258 ASSERT_TRUE(formData); 258 ASSERT_TRUE(formData);
259 EXPECT_TRUE(formData->isSafeToSendToAnotherThread()); 259 EXPECT_TRUE(formData->isSafeToSendToAnotherThread());
260 EXPECT_EQ("foo", formData->flattenToString()); 260 EXPECT_EQ("foo", formData->flattenToString());
261 } 261 }
262 262
263 TEST_F(FetchFormDataConsumerHandleTest, DrainAsFormDataFromSimpleFormData) 263 TEST_F(FetchFormDataConsumerHandleTest, DrainAsFormDataFromSimpleFormData)
264 { 264 {
265 DOMFormData* data = DOMFormData::create(UTF8Encoding()); 265 DOMFormData* data = DOMFormData::create(UTF8Encoding());
266 data->append("name1", "value1"); 266 data->append("name1", "value1");
267 data->append("name2", "value2"); 267 data->append("name2", "value2");
268 RefPtr<FormData> inputFormData = data->createMultiPartFormData(); 268 RefPtr<EncodedFormData> inputFormData = data->createMultiPartFormData();
269 269
270 OwnPtr<FetchDataConsumerHandle> handle = FetchFormDataConsumerHandle::create (document(), inputFormData); 270 OwnPtr<FetchDataConsumerHandle> handle = FetchFormDataConsumerHandle::create (document(), inputFormData);
271 OwnPtr<FetchDataConsumerHandle::Reader> reader = handle->obtainReader(nullpt r); 271 OwnPtr<FetchDataConsumerHandle::Reader> reader = handle->obtainReader(nullpt r);
272 RefPtr<FormData> outputFormData = reader->drainAsFormData(); 272 RefPtr<EncodedFormData> outputFormData = reader->drainAsFormData();
273 ASSERT_TRUE(outputFormData); 273 ASSERT_TRUE(outputFormData);
274 EXPECT_TRUE(outputFormData->isSafeToSendToAnotherThread()); 274 EXPECT_TRUE(outputFormData->isSafeToSendToAnotherThread());
275 EXPECT_NE(outputFormData.get(), inputFormData.get()); 275 EXPECT_NE(outputFormData.get(), inputFormData.get());
276 EXPECT_EQ(inputFormData->flattenToString(), outputFormData->flattenToString( )); 276 EXPECT_EQ(inputFormData->flattenToString(), outputFormData->flattenToString( ));
277 } 277 }
278 278
279 TEST_F(FetchFormDataConsumerHandleTest, DrainAsFormDataFromComplexFormData) 279 TEST_F(FetchFormDataConsumerHandleTest, DrainAsFormDataFromComplexFormData)
280 { 280 {
281 RefPtr<FormData> inputFormData = complexFormData(); 281 RefPtr<EncodedFormData> inputFormData = complexFormData();
282 282
283 OwnPtr<FetchDataConsumerHandle> handle = FetchFormDataConsumerHandle::create (document(), inputFormData); 283 OwnPtr<FetchDataConsumerHandle> handle = FetchFormDataConsumerHandle::create (document(), inputFormData);
284 OwnPtr<FetchDataConsumerHandle::Reader> reader = handle->obtainReader(nullpt r); 284 OwnPtr<FetchDataConsumerHandle::Reader> reader = handle->obtainReader(nullpt r);
285 RefPtr<FormData> outputFormData = reader->drainAsFormData(); 285 RefPtr<EncodedFormData> outputFormData = reader->drainAsFormData();
286 ASSERT_TRUE(outputFormData); 286 ASSERT_TRUE(outputFormData);
287 EXPECT_TRUE(outputFormData->isSafeToSendToAnotherThread()); 287 EXPECT_TRUE(outputFormData->isSafeToSendToAnotherThread());
288 EXPECT_NE(outputFormData.get(), inputFormData.get()); 288 EXPECT_NE(outputFormData.get(), inputFormData.get());
289 verifyComplexFormData(outputFormData.get()); 289 verifyComplexFormData(outputFormData.get());
290 } 290 }
291 291
292 TEST_F(FetchFormDataConsumerHandleTest, ZeroByteReadDoesNotAffectDraining) 292 TEST_F(FetchFormDataConsumerHandleTest, ZeroByteReadDoesNotAffectDraining)
293 { 293 {
294 OwnPtr<FetchDataConsumerHandle> handle = FetchFormDataConsumerHandle::create (String("hello, world")); 294 OwnPtr<FetchDataConsumerHandle> handle = FetchFormDataConsumerHandle::create (String("hello, world"));
295 OwnPtr<FetchDataConsumerHandle::Reader> reader = handle->obtainReader(nullpt r); 295 OwnPtr<FetchDataConsumerHandle::Reader> reader = handle->obtainReader(nullpt r);
296 size_t readSize; 296 size_t readSize;
297 EXPECT_EQ(kOk, reader->read(nullptr, 0, kNone, &readSize)); 297 EXPECT_EQ(kOk, reader->read(nullptr, 0, kNone, &readSize));
298 RefPtr<FormData> formData = reader->drainAsFormData(); 298 RefPtr<EncodedFormData> formData = reader->drainAsFormData();
299 ASSERT_TRUE(formData); 299 ASSERT_TRUE(formData);
300 EXPECT_TRUE(formData->isSafeToSendToAnotherThread()); 300 EXPECT_TRUE(formData->isSafeToSendToAnotherThread());
301 EXPECT_EQ("hello, world", formData->flattenToString()); 301 EXPECT_EQ("hello, world", formData->flattenToString());
302 } 302 }
303 303
304 TEST_F(FetchFormDataConsumerHandleTest, OneByteReadAffectsDraining) 304 TEST_F(FetchFormDataConsumerHandleTest, OneByteReadAffectsDraining)
305 { 305 {
306 char c; 306 char c;
307 OwnPtr<FetchDataConsumerHandle> handle = FetchFormDataConsumerHandle::create (String("hello, world")); 307 OwnPtr<FetchDataConsumerHandle> handle = FetchFormDataConsumerHandle::create (String("hello, world"));
308 OwnPtr<FetchDataConsumerHandle::Reader> reader = handle->obtainReader(nullpt r); 308 OwnPtr<FetchDataConsumerHandle::Reader> reader = handle->obtainReader(nullpt r);
(...skipping 22 matching lines...) Expand all
331 { 331 {
332 OwnPtr<ReplayingHandle> src = ReplayingHandle::create(); 332 OwnPtr<ReplayingHandle> src = ReplayingHandle::create();
333 src->add(Command(Command::Data, "bar")); 333 src->add(Command(Command::Data, "bar"));
334 src->add(Command(Command::Done)); 334 src->add(Command(Command::Done));
335 OwnPtr<FetchDataConsumerHandle> handle = FetchFormDataConsumerHandle::create ForTest(document(), complexFormData(), new LoaderFactory(src.release())); 335 OwnPtr<FetchDataConsumerHandle> handle = FetchFormDataConsumerHandle::create ForTest(document(), complexFormData(), new LoaderFactory(src.release()));
336 OwnPtr<FetchDataConsumerHandle::Reader> reader = handle->obtainReader(nullpt r); 336 OwnPtr<FetchDataConsumerHandle::Reader> reader = handle->obtainReader(nullpt r);
337 size_t readSize; 337 size_t readSize;
338 EXPECT_EQ(kShouldWait, reader->read(nullptr, 0, kNone, &readSize)); 338 EXPECT_EQ(kShouldWait, reader->read(nullptr, 0, kNone, &readSize));
339 testing::runPendingTasks(); 339 testing::runPendingTasks();
340 EXPECT_EQ(kOk, reader->read(nullptr, 0, kNone, &readSize)); 340 EXPECT_EQ(kOk, reader->read(nullptr, 0, kNone, &readSize));
341 RefPtr<FormData> formData = reader->drainAsFormData(); 341 RefPtr<EncodedFormData> formData = reader->drainAsFormData();
342 ASSERT_TRUE(formData); 342 ASSERT_TRUE(formData);
343 EXPECT_TRUE(formData->isSafeToSendToAnotherThread()); 343 EXPECT_TRUE(formData->isSafeToSendToAnotherThread());
344 verifyComplexFormData(formData.get()); 344 verifyComplexFormData(formData.get());
345 } 345 }
346 346
347 TEST_F(FetchFormDataConsumerHandleTest, OneByteReadAffectsDrainingForComplexForm Data) 347 TEST_F(FetchFormDataConsumerHandleTest, OneByteReadAffectsDrainingForComplexForm Data)
348 { 348 {
349 OwnPtr<ReplayingHandle> src = ReplayingHandle::create(); 349 OwnPtr<ReplayingHandle> src = ReplayingHandle::create();
350 src->add(Command(Command::Data, "bar")); 350 src->add(Command(Command::Data, "bar"));
351 src->add(Command(Command::Done)); 351 src->add(Command(Command::Done));
(...skipping 21 matching lines...) Expand all
373 EXPECT_EQ(kShouldWait, reader->beginRead(&buffer, kNone, &available)); 373 EXPECT_EQ(kShouldWait, reader->beginRead(&buffer, kNone, &available));
374 testing::runPendingTasks(); 374 testing::runPendingTasks();
375 EXPECT_EQ(kOk, reader->beginRead(&buffer, kNone, &available)); 375 EXPECT_EQ(kOk, reader->beginRead(&buffer, kNone, &available));
376 EXPECT_FALSE(reader->drainAsFormData()); 376 EXPECT_FALSE(reader->drainAsFormData());
377 reader->endRead(0); 377 reader->endRead(0);
378 EXPECT_FALSE(reader->drainAsFormData()); 378 EXPECT_FALSE(reader->drainAsFormData());
379 } 379 }
380 380
381 } // namespace 381 } // namespace
382 } // namespace blink 382 } // namespace blink
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698