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

Unified Diff: webkit/glue/resource_request_body_unittest.cc

Issue 11439008: net: Change argument of URLRequest::set_upload from UploadData to UploadDataStream (Closed) Base URL: http://git.chromium.org/chromium/src.git@chunk
Patch Set: Fix android Created 8 years 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 side-by-side diff with in-line comments
Download patch
« 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 »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: webkit/glue/resource_request_body_unittest.cc
diff --git a/webkit/glue/resource_request_body_unittest.cc b/webkit/glue/resource_request_body_unittest.cc
index 839b9c6e11890c5d83736b5289ce05fca8f95b3f..21342f036b550c8aaa15d271821599dee4bea6a8 100644
--- a/webkit/glue/resource_request_body_unittest.cc
+++ b/webkit/glue/resource_request_body_unittest.cc
@@ -4,11 +4,15 @@
#include "webkit/glue/resource_request_body.h"
+#include <algorithm>
+
#include "base/file_path.h"
#include "base/file_util.h"
#include "base/time.h"
#include "googleurl/src/gurl.h"
-#include "net/base/upload_data.h"
+#include "net/base/upload_bytes_element_reader.h"
+#include "net/base/upload_data_stream.h"
+#include "net/base/upload_file_element_reader.h"
#include "testing/gtest/include/gtest/gtest.h"
#include "webkit/blob/blob_storage_controller.h"
@@ -17,7 +21,38 @@ using webkit_blob::BlobStorageController;
namespace webkit_glue {
-TEST(ResourceRequestBodyTest, CreateUploadDataWithoutBlob) {
+namespace {
+
+bool AreElementsEqual(const net::UploadElementReader& reader,
+ const ResourceRequestBody::Element& element) {
+ switch(element.type()) {
+ case ResourceRequestBody::Element::TYPE_BYTES: {
+ const net::UploadBytesElementReader* bytes_reader =
+ reader.AsBytesReader();
+ return bytes_reader &&
+ element.length() == bytes_reader->length() &&
+ std::equal(element.bytes(), element.bytes() + element.length(),
+ bytes_reader->bytes());
+ }
+ case ResourceRequestBody::Element::TYPE_FILE: {
+ const net::UploadFileElementReader* file_reader = reader.AsFileReader();
+ return file_reader &&
+ file_reader->path() == element.path() &&
+ file_reader->range_offset() == element.offset() &&
+ file_reader->range_length() == element.length() &&
+ file_reader->expected_modification_time() ==
+ element.expected_modification_time();
+ break;
+ }
+ default:
+ NOTREACHED();
+ }
+ return false;
+}
+
+} // namespace
+
+TEST(ResourceRequestBodyTest, CreateUploadDataStreamWithoutBlob) {
scoped_refptr<ResourceRequestBody> request_body = new ResourceRequestBody;
const char kData[] = "123";
@@ -32,25 +67,27 @@ TEST(ResourceRequestBodyTest, CreateUploadDataWithoutBlob) {
kFileOffset, kFileLength, kFileTime);
request_body->set_identifier(kIdentifier);
- scoped_refptr<net::UploadData> upload =
- request_body->ResolveElementsAndCreateUploadData(NULL);
+ scoped_ptr<net::UploadDataStream> upload(
+ request_body->ResolveElementsAndCreateUploadDataStream(NULL));
EXPECT_EQ(kIdentifier, upload->identifier());
- ASSERT_EQ(request_body->elements()->size(), upload->elements().size());
-
- const net::UploadElement& e1 = *upload->elements()[0];
- EXPECT_EQ(net::UploadElement::TYPE_BYTES, e1.type());
- EXPECT_EQ(kData, std::string(e1.bytes(), e1.bytes_length()));
-
- const net::UploadElement& e2 = *upload->elements()[1];
- EXPECT_EQ(net::UploadElement::TYPE_FILE, e2.type());
- EXPECT_EQ(kFilePath, e2.file_path().value());
- EXPECT_EQ(kFileOffset, e2.file_range_offset());
- EXPECT_EQ(kFileLength, e2.file_range_length());
- EXPECT_EQ(kFileTime, e2.expected_file_modification_time());
+ ASSERT_EQ(request_body->elements()->size(), upload->element_readers().size());
+
+ const net::UploadBytesElementReader* r1 =
+ upload->element_readers()[0]->AsBytesReader();
+ ASSERT_TRUE(r1);
+ EXPECT_EQ(kData, std::string(r1->bytes(), r1->length()));
+
+ const net::UploadFileElementReader* r2 =
+ upload->element_readers()[1]->AsFileReader();
+ ASSERT_TRUE(r2);
+ EXPECT_EQ(kFilePath, r2->path().value());
+ EXPECT_EQ(kFileOffset, r2->range_offset());
+ EXPECT_EQ(kFileLength, r2->range_length());
+ EXPECT_EQ(kFileTime, r2->expected_modification_time());
}
-TEST(ResourceRequestBodyTest, ResolveBlobAndCreateUploadData) {
+TEST(ResourceRequestBodyTest, ResolveBlobAndCreateUploadDataStream) {
// Setup blob data for testing.
base::Time time1, time2;
base::Time::FromString("Tue, 15 Nov 1994, 12:45:26 GMT", &time1);
@@ -76,10 +113,10 @@ TEST(ResourceRequestBodyTest, ResolveBlobAndCreateUploadData) {
blob_storage_controller.CloneBlob(blob_url3, blob_url2);
// Setup upload data elements for comparison.
- net::UploadElement blob_element1, blob_element2;
+ ResourceRequestBody::Element blob_element1, blob_element2;
blob_element1.SetToBytes(
blob_data->items().at(0).bytes() +
- static_cast<int>(blob_data->items().at(0).offset()),
+ static_cast<int>(blob_data->items().at(0).offset()),
static_cast<int>(blob_data->items().at(0).length()));
blob_element2.SetToFilePathRange(
blob_data->items().at(1).path(),
@@ -87,133 +124,118 @@ TEST(ResourceRequestBodyTest, ResolveBlobAndCreateUploadData) {
blob_data->items().at(1).length(),
blob_data->items().at(1).expected_modification_time());
- net::UploadElement upload_element1, upload_element2;
+ ResourceRequestBody::Element upload_element1, upload_element2;
upload_element1.SetToBytes("Hello", 5);
upload_element2.SetToFilePathRange(
FilePath(FILE_PATH_LITERAL("foo1.txt")), 0, 20, time2);
// Test no blob reference.
scoped_refptr<ResourceRequestBody> request_body(new ResourceRequestBody());
- request_body->AppendBytes(
- upload_element1.bytes(),
- upload_element1.bytes_length());
- request_body->AppendFileRange(
- upload_element2.file_path(),
- upload_element2.file_range_offset(),
- upload_element2.file_range_length(),
- upload_element2.expected_file_modification_time());
-
- scoped_refptr<net::UploadData> upload =
- request_body->ResolveElementsAndCreateUploadData(
- &blob_storage_controller);
-
- ASSERT_EQ(2U, upload->elements().size());
- EXPECT_TRUE(*upload->elements()[0] == upload_element1);
- EXPECT_TRUE(*upload->elements()[1] == upload_element2);
+ request_body->AppendBytes(upload_element1.bytes(), upload_element1.length());
+ request_body->AppendFileRange(upload_element2.path(),
+ upload_element2.offset(),
+ upload_element2.length(),
+ upload_element2.expected_modification_time());
+
+ scoped_ptr<net::UploadDataStream> upload(
+ request_body->ResolveElementsAndCreateUploadDataStream(
+ &blob_storage_controller));
+
+ ASSERT_EQ(2U, upload->element_readers().size());
+ EXPECT_TRUE(AreElementsEqual(*upload->element_readers()[0], upload_element1));
+ EXPECT_TRUE(AreElementsEqual(*upload->element_readers()[1], upload_element2));
// Test having only one blob reference that refers to empty blob data.
request_body = new ResourceRequestBody();
request_body->AppendBlob(blob_url0);
- upload = request_body->ResolveElementsAndCreateUploadData(
- &blob_storage_controller);
- ASSERT_EQ(0U, upload->elements().size());
+ upload.reset(request_body->ResolveElementsAndCreateUploadDataStream(
+ &blob_storage_controller));
+ ASSERT_EQ(0U, upload->element_readers().size());
// Test having only one blob reference.
request_body = new ResourceRequestBody();
request_body->AppendBlob(blob_url1);
- upload = request_body->ResolveElementsAndCreateUploadData(
- &blob_storage_controller);
- ASSERT_EQ(2U, upload->elements().size());
- EXPECT_TRUE(*upload->elements()[0] == blob_element1);
- EXPECT_TRUE(*upload->elements()[1] == blob_element2);
+ upload.reset(request_body->ResolveElementsAndCreateUploadDataStream(
+ &blob_storage_controller));
+ ASSERT_EQ(2U, upload->element_readers().size());
+ EXPECT_TRUE(AreElementsEqual(*upload->element_readers()[0], blob_element1));
+ EXPECT_TRUE(AreElementsEqual(*upload->element_readers()[1], blob_element2));
// Test having one blob reference at the beginning.
request_body = new ResourceRequestBody();
request_body->AppendBlob(blob_url1);
- request_body->AppendBytes(
- upload_element1.bytes(),
- upload_element1.bytes_length());
- request_body->AppendFileRange(
- upload_element2.file_path(),
- upload_element2.file_range_offset(),
- upload_element2.file_range_length(),
- upload_element2.expected_file_modification_time());
-
- upload = request_body->ResolveElementsAndCreateUploadData(
- &blob_storage_controller);
- ASSERT_EQ(4U, upload->elements().size());
- EXPECT_TRUE(*upload->elements()[0] == blob_element1);
- EXPECT_TRUE(*upload->elements()[1] == blob_element2);
- EXPECT_TRUE(*upload->elements()[2] == upload_element1);
- EXPECT_TRUE(*upload->elements()[3] == upload_element2);
+ request_body->AppendBytes(upload_element1.bytes(), upload_element1.length());
+ request_body->AppendFileRange(upload_element2.path(),
+ upload_element2.offset(),
+ upload_element2.length(),
+ upload_element2.expected_modification_time());
+
+ upload.reset(request_body->ResolveElementsAndCreateUploadDataStream(
+ &blob_storage_controller));
+ ASSERT_EQ(4U, upload->element_readers().size());
+ EXPECT_TRUE(AreElementsEqual(*upload->element_readers()[0], blob_element1));
+ EXPECT_TRUE(AreElementsEqual(*upload->element_readers()[1], blob_element2));
+ EXPECT_TRUE(AreElementsEqual(*upload->element_readers()[2], upload_element1));
+ EXPECT_TRUE(AreElementsEqual(*upload->element_readers()[3], upload_element2));
// Test having one blob reference at the end.
request_body = new ResourceRequestBody();
- request_body->AppendBytes(
- upload_element1.bytes(),
- upload_element1.bytes_length());
- request_body->AppendFileRange(
- upload_element2.file_path(),
- upload_element2.file_range_offset(),
- upload_element2.file_range_length(),
- upload_element2.expected_file_modification_time());
+ request_body->AppendBytes(upload_element1.bytes(), upload_element1.length());
+ request_body->AppendFileRange(upload_element2.path(),
+ upload_element2.offset(),
+ upload_element2.length(),
+ upload_element2.expected_modification_time());
request_body->AppendBlob(blob_url1);
- upload = request_body->ResolveElementsAndCreateUploadData(
- &blob_storage_controller);
- ASSERT_EQ(4U, upload->elements().size());
- EXPECT_TRUE(*upload->elements()[0] == upload_element1);
- EXPECT_TRUE(*upload->elements()[1] == upload_element2);
- EXPECT_TRUE(*upload->elements()[2] == blob_element1);
- EXPECT_TRUE(*upload->elements()[3] == blob_element2);
+ upload.reset(request_body->ResolveElementsAndCreateUploadDataStream(
+ &blob_storage_controller));
+ ASSERT_EQ(4U, upload->element_readers().size());
+ EXPECT_TRUE(AreElementsEqual(*upload->element_readers()[0], upload_element1));
+ EXPECT_TRUE(AreElementsEqual(*upload->element_readers()[1], upload_element2));
+ EXPECT_TRUE(AreElementsEqual(*upload->element_readers()[2], blob_element1));
+ EXPECT_TRUE(AreElementsEqual(*upload->element_readers()[3], blob_element2));
// Test having one blob reference in the middle.
request_body = new ResourceRequestBody();
- request_body->AppendBytes(
- upload_element1.bytes(),
- upload_element1.bytes_length());
+ request_body->AppendBytes(upload_element1.bytes(), upload_element1.length());
request_body->AppendBlob(blob_url1);
- request_body->AppendFileRange(
- upload_element2.file_path(),
- upload_element2.file_range_offset(),
- upload_element2.file_range_length(),
- upload_element2.expected_file_modification_time());
-
- upload = request_body->ResolveElementsAndCreateUploadData(
- &blob_storage_controller);
- ASSERT_EQ(4U, upload->elements().size());
- EXPECT_TRUE(*upload->elements()[0] == upload_element1);
- EXPECT_TRUE(*upload->elements()[1] == blob_element1);
- EXPECT_TRUE(*upload->elements()[2] == blob_element2);
- EXPECT_TRUE(*upload->elements()[3] == upload_element2);
+ request_body->AppendFileRange(upload_element2.path(),
+ upload_element2.offset(),
+ upload_element2.length(),
+ upload_element2.expected_modification_time());
+
+ upload.reset(request_body->ResolveElementsAndCreateUploadDataStream(
+ &blob_storage_controller));
+ ASSERT_EQ(4U, upload->element_readers().size());
+ EXPECT_TRUE(AreElementsEqual(*upload->element_readers()[0], upload_element1));
+ EXPECT_TRUE(AreElementsEqual(*upload->element_readers()[1], blob_element1));
+ EXPECT_TRUE(AreElementsEqual(*upload->element_readers()[2], blob_element2));
+ EXPECT_TRUE(AreElementsEqual(*upload->element_readers()[3], upload_element2));
// Test having multiple blob references.
request_body = new ResourceRequestBody();
request_body->AppendBlob(blob_url1);
- request_body->AppendBytes(
- upload_element1.bytes(),
- upload_element1.bytes_length());
+ request_body->AppendBytes(upload_element1.bytes(), upload_element1.length());
request_body->AppendBlob(blob_url2);
request_body->AppendBlob(blob_url3);
- request_body->AppendFileRange(
- upload_element2.file_path(),
- upload_element2.file_range_offset(),
- upload_element2.file_range_length(),
- upload_element2.expected_file_modification_time());
-
- upload = request_body->ResolveElementsAndCreateUploadData(
- &blob_storage_controller);
- ASSERT_EQ(8U, upload->elements().size());
- EXPECT_TRUE(*upload->elements()[0] == blob_element1);
- EXPECT_TRUE(*upload->elements()[1] == blob_element2);
- EXPECT_TRUE(*upload->elements()[2] == upload_element1);
- EXPECT_TRUE(*upload->elements()[3] == blob_element1);
- EXPECT_TRUE(*upload->elements()[4] == blob_element2);
- EXPECT_TRUE(*upload->elements()[5] == blob_element1);
- EXPECT_TRUE(*upload->elements()[6] == blob_element2);
- EXPECT_TRUE(*upload->elements()[7] == upload_element2);
+ request_body->AppendFileRange(upload_element2.path(),
+ upload_element2.offset(),
+ upload_element2.length(),
+ upload_element2.expected_modification_time());
+
+ upload.reset(request_body->ResolveElementsAndCreateUploadDataStream(
+ &blob_storage_controller));
+ ASSERT_EQ(8U, upload->element_readers().size());
+ EXPECT_TRUE(AreElementsEqual(*upload->element_readers()[0], blob_element1));
+ EXPECT_TRUE(AreElementsEqual(*upload->element_readers()[1], blob_element2));
+ EXPECT_TRUE(AreElementsEqual(*upload->element_readers()[2], upload_element1));
+ EXPECT_TRUE(AreElementsEqual(*upload->element_readers()[3], blob_element1));
+ EXPECT_TRUE(AreElementsEqual(*upload->element_readers()[4], blob_element2));
+ EXPECT_TRUE(AreElementsEqual(*upload->element_readers()[5], blob_element1));
+ EXPECT_TRUE(AreElementsEqual(*upload->element_readers()[6], blob_element2));
+ EXPECT_TRUE(AreElementsEqual(*upload->element_readers()[7], upload_element2));
}
} // namespace webkit_glue
« 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