summaryrefslogtreecommitdiffstats
path: root/net/base/upload_bytes_element_reader_unittest.cc
diff options
context:
space:
mode:
authorhashimoto@chromium.org <hashimoto@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2012-11-02 15:18:46 +0000
committerhashimoto@chromium.org <hashimoto@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2012-11-02 15:18:46 +0000
commite5d477340a27793e23258c2a2ed08e3682d37205 (patch)
tree061f5ab49076b2de32560cd76aeec96348764283 /net/base/upload_bytes_element_reader_unittest.cc
parentf355ed2c91dc2ff549ab45a4af038b3fbce3d7ec (diff)
downloadchromium_src-e5d477340a27793e23258c2a2ed08e3682d37205.zip
chromium_src-e5d477340a27793e23258c2a2ed08e3682d37205.tar.gz
chromium_src-e5d477340a27793e23258c2a2ed08e3682d37205.tar.bz2
net: Allow calling UploadDataStream::Init() multiple times for reset purpose
There should be a way to reset UploadDataStream for reusing the stream again and again. BUG=156574 TEST=net_unittests Review URL: https://chromiumcodereview.appspot.com/11304003 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@165680 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'net/base/upload_bytes_element_reader_unittest.cc')
-rw-r--r--net/base/upload_bytes_element_reader_unittest.cc22
1 files changed, 22 insertions, 0 deletions
diff --git a/net/base/upload_bytes_element_reader_unittest.cc b/net/base/upload_bytes_element_reader_unittest.cc
index 1a3c5d4..eca720f 100644
--- a/net/base/upload_bytes_element_reader_unittest.cc
+++ b/net/base/upload_bytes_element_reader_unittest.cc
@@ -62,4 +62,26 @@ TEST_F(UploadBytesElementReaderTest, ReadTooMuch) {
EXPECT_EQ(bytes_, buf);
}
+TEST_F(UploadBytesElementReaderTest, MultipleInit) {
+ std::vector<char> buf(bytes_.size());
+ scoped_refptr<IOBuffer> wrapped_buffer = new WrappedIOBuffer(&buf[0]);
+
+ // Read all.
+ EXPECT_EQ(static_cast<int>(buf.size()),
+ reader_->ReadSync(wrapped_buffer, buf.size()));
+ EXPECT_EQ(0U, reader_->BytesRemaining());
+ EXPECT_EQ(bytes_, buf);
+
+ // Call Init() again to reset the state.
+ ASSERT_EQ(OK, reader_->InitSync());
+ EXPECT_EQ(bytes_.size(), reader_->GetContentLength());
+ EXPECT_EQ(bytes_.size(), reader_->BytesRemaining());
+
+ // Read again.
+ EXPECT_EQ(static_cast<int>(buf.size()),
+ reader_->ReadSync(wrapped_buffer, buf.size()));
+ EXPECT_EQ(0U, reader_->BytesRemaining());
+ EXPECT_EQ(bytes_, buf);
+}
+
} // namespace net