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 |
new file mode 100644 |
index 0000000000000000000000000000000000000000..676842912504d16b6d0bd1ad44ea1171881baa01 |
--- /dev/null |
+++ b/webkit/glue/resource_request_body_unittest.cc |
@@ -0,0 +1,48 @@ |
+// Copyright (c) 2012 The Chromium Authors. All rights reserved. |
+// Use of this source code is governed by a BSD-style license that can be |
+// found in the LICENSE file. |
+ |
+#include "webkit/glue/resource_request_body.h" |
+ |
+#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 "testing/gtest/include/gtest/gtest.h" |
+ |
+namespace webkit_glue { |
+ |
+TEST(ResourceRequestBodyTest, CreateUploadDataTest) { |
+ scoped_refptr<ResourceRequestBody> request_body = new ResourceRequestBody; |
+ |
+ const char kData[] = "123"; |
+ const FilePath::StringType kFilePath = FILE_PATH_LITERAL("abc"); |
+ const uint64 kFileOffset = 10U; |
+ const uint64 kFileLength = 100U; |
+ const base::Time kFileTime = base::Time::FromDoubleT(999); |
+ const int64 kIdentifier = 12345; |
+ |
+ request_body->AppendBytes(kData, arraysize(kData) - 1); |
+ request_body->AppendFileRange(FilePath(kFilePath), |
+ kFileOffset, kFileLength, kFileTime); |
+ request_body->set_identifier(kIdentifier); |
+ |
+ scoped_refptr<net::UploadData> upload = request_body->CreateUploadData(); |
+ |
+ EXPECT_EQ(kIdentifier, upload->identifier()); |
+ ASSERT_EQ(request_body->elements()->size(), upload->elements()->size()); |
+ |
+ const net::UploadData::Element& e1 = upload->elements()->at(0); |
+ EXPECT_EQ(net::UploadData::TYPE_BYTES, e1.type()); |
+ EXPECT_EQ(kData, std::string(e1.bytes(), e1.bytes_length())); |
+ |
+ const net::UploadData::Element& e2 = upload->elements()->at(1); |
+ EXPECT_EQ(net::UploadData::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()); |
+} |
+ |
+} // namespace webkit_glue |