Index: net/base/upload_file_element_reader_unittest.cc |
diff --git a/net/base/upload_file_element_reader_unittest.cc b/net/base/upload_file_element_reader_unittest.cc |
index 6a807167c3f814c35f12bdc63a6f92f40c5e34e0..522b1ed7c32958ac47d1600819d214c51c6cbe6c 100644 |
--- a/net/base/upload_file_element_reader_unittest.cc |
+++ b/net/base/upload_file_element_reader_unittest.cc |
@@ -6,7 +6,9 @@ |
#include "base/file_util.h" |
#include "base/scoped_temp_dir.h" |
+#include "net/base/io_buffer.h" |
#include "net/base/net_errors.h" |
+#include "net/base/test_completion_callback.h" |
#include "testing/gtest/include/gtest/gtest.h" |
#include "testing/platform_test.h" |
@@ -43,8 +45,9 @@ class UploadFileElementReaderTest : public PlatformTest { |
TEST_F(UploadFileElementReaderTest, ReadPartially) { |
const size_t kHalfSize = bytes_.size() / 2; |
std::vector<char> buf(kHalfSize); |
+ scoped_refptr<IOBuffer> wrapped_buffer = new WrappedIOBuffer(&buf[0]); |
EXPECT_EQ(static_cast<int>(buf.size()), |
- reader_->ReadSync(&buf[0], buf.size())); |
+ reader_->ReadSync(wrapped_buffer, buf.size())); |
EXPECT_EQ(bytes_.size() - buf.size(), reader_->BytesRemaining()); |
bytes_.resize(kHalfSize); // Resize to compare. |
EXPECT_EQ(bytes_, buf); |
@@ -52,19 +55,66 @@ TEST_F(UploadFileElementReaderTest, ReadPartially) { |
TEST_F(UploadFileElementReaderTest, ReadAll) { |
std::vector<char> buf(bytes_.size()); |
+ scoped_refptr<IOBuffer> wrapped_buffer = new WrappedIOBuffer(&buf[0]); |
EXPECT_EQ(static_cast<int>(buf.size()), |
- reader_->ReadSync(&buf[0], buf.size())); |
+ reader_->ReadSync(wrapped_buffer, buf.size())); |
EXPECT_EQ(0U, reader_->BytesRemaining()); |
EXPECT_EQ(bytes_, buf); |
// Try to read again. |
- EXPECT_EQ(0, reader_->ReadSync(&buf[0], buf.size())); |
+ EXPECT_EQ(0, reader_->ReadSync(wrapped_buffer, buf.size())); |
} |
TEST_F(UploadFileElementReaderTest, ReadTooMuch) { |
const size_t kTooLargeSize = bytes_.size() * 2; |
std::vector<char> buf(kTooLargeSize); |
+ scoped_refptr<IOBuffer> wrapped_buffer = new WrappedIOBuffer(&buf[0]); |
EXPECT_EQ(static_cast<int>(bytes_.size()), |
- reader_->ReadSync(&buf[0], buf.size())); |
+ reader_->ReadSync(wrapped_buffer, buf.size())); |
+ EXPECT_EQ(0U, reader_->BytesRemaining()); |
+ buf.resize(bytes_.size()); // Resize to compare. |
+ EXPECT_EQ(bytes_, buf); |
+} |
+ |
+TEST_F(UploadFileElementReaderTest, ReadPartiallyAsync) { |
+ const size_t kHalfSize = bytes_.size() / 2; |
+ std::vector<char> buf(kHalfSize); |
+ scoped_refptr<IOBuffer> wrapped_buffer = new WrappedIOBuffer(&buf[0]); |
+ TestCompletionCallback test_callback; |
+ EXPECT_EQ(ERR_IO_PENDING, |
+ reader_->Read(wrapped_buffer, buf.size(), |
+ test_callback.callback())); |
+ |
+ EXPECT_EQ(static_cast<int>(buf.size()), test_callback.WaitForResult()); |
+ EXPECT_EQ(bytes_.size() - buf.size(), reader_->BytesRemaining()); |
+ bytes_.resize(kHalfSize); // Resize to compare. |
+ EXPECT_EQ(bytes_, buf); |
mmenke
2012/10/12 21:30:29
How about reading the rest of the file, too, in a
hashimoto
2012/10/15 11:21:37
Done for both ReadPartially and ReadPartiallyAsync
|
+} |
+ |
+TEST_F(UploadFileElementReaderTest, ReadAllAsync) { |
+ std::vector<char> buf(bytes_.size()); |
+ scoped_refptr<IOBuffer> wrapped_buffer = new WrappedIOBuffer(&buf[0]); |
+ TestCompletionCallback test_callback; |
+ EXPECT_EQ(ERR_IO_PENDING, |
+ reader_->Read(wrapped_buffer, buf.size(), |
+ test_callback.callback())); |
+ |
+ EXPECT_EQ(static_cast<int>(buf.size()), test_callback.WaitForResult()); |
+ EXPECT_EQ(0U, reader_->BytesRemaining()); |
+ EXPECT_EQ(bytes_, buf); |
+ // Try to read again. |
+ EXPECT_EQ(0, reader_->ReadSync(wrapped_buffer, buf.size())); |
+} |
+ |
+TEST_F(UploadFileElementReaderTest, ReadTooMuchAsync) { |
+ const size_t kTooLargeSize = bytes_.size() * 2; |
+ std::vector<char> buf(kTooLargeSize); |
+ scoped_refptr<IOBuffer> wrapped_buffer = new WrappedIOBuffer(&buf[0]); |
+ TestCompletionCallback test_callback; |
+ EXPECT_EQ(ERR_IO_PENDING, |
+ reader_->Read(wrapped_buffer, buf.size(), |
+ test_callback.callback())); |
+ |
+ EXPECT_EQ(static_cast<int>(bytes_.size()), test_callback.WaitForResult()); |
EXPECT_EQ(0U, reader_->BytesRemaining()); |
buf.resize(bytes_.size()); // Resize to compare. |
EXPECT_EQ(bytes_, buf); |
@@ -79,8 +129,9 @@ TEST_F(UploadFileElementReaderTest, Range) { |
EXPECT_EQ(kLength, reader_->GetContentLength()); |
EXPECT_EQ(kLength, reader_->BytesRemaining()); |
std::vector<char> buf(kLength); |
+ scoped_refptr<IOBuffer> wrapped_buffer = new WrappedIOBuffer(&buf[0]); |
EXPECT_EQ(static_cast<int>(kLength), |
- reader_->ReadSync(&buf[0], kLength)); |
+ reader_->ReadSync(wrapped_buffer, kLength)); |
const std::vector<char> expected(bytes_.begin() + kOffset, |
bytes_.begin() + kOffset + kLength); |
EXPECT_EQ(expected, buf); |