OLD | NEW |
---|---|
(Empty) | |
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | |
2 // Use of this source code is governed by a BSD-style license that can be | |
3 // found in the LICENSE file. | |
4 | |
5 #include "net/base/upload_bytes_element_reader.h" | |
6 | |
7 #include "base/memory/scoped_ptr.h" | |
8 #include "net/base/net_errors.h" | |
9 #include "testing/gtest/include/gtest/gtest.h" | |
10 #include "testing/platform_test.h" | |
11 | |
12 namespace net { | |
13 | |
14 class UploadBytesElementReaderTest : public PlatformTest { | |
15 protected: | |
16 virtual void SetUp() OVERRIDE { | |
17 const char kData[] = "123abc"; | |
18 bytes_.assign(kData, kData + arraysize(kData)); | |
willchan no longer on Chromium
2012/09/06 01:06:01
you need basictypes.h for arraysize
hashimoto
2012/09/06 01:55:39
Done.
| |
19 reader_.reset(new UploadBytesElementReader(&bytes_[0], bytes_.size())); | |
20 ASSERT_EQ(OK, reader_->InitSync()); | |
21 EXPECT_EQ(bytes_.size(), reader_->GetContentLength()); | |
22 EXPECT_EQ(bytes_.size(), reader_->BytesRemaining()); | |
23 EXPECT_TRUE(reader_->IsInMemory()); | |
24 } | |
25 | |
26 std::vector<char> bytes_; | |
27 scoped_ptr<UploadElementReader> reader_; | |
28 }; | |
29 | |
30 TEST_F(UploadBytesElementReaderTest, ReadPartially) { | |
31 const size_t kHalfSize = bytes_.size() / 2; | |
32 std::vector<char> buf(kHalfSize); | |
33 EXPECT_EQ(static_cast<int>(buf.size()), | |
34 reader_->ReadSync(&buf[0], buf.size())); | |
35 EXPECT_EQ(bytes_.size() - buf.size(), reader_->BytesRemaining()); | |
36 bytes_.resize(kHalfSize); // Resize to compare. | |
37 EXPECT_EQ(bytes_, buf); | |
38 } | |
39 | |
40 TEST_F(UploadBytesElementReaderTest, ReadAll) { | |
41 std::vector<char> buf(bytes_.size()); | |
42 EXPECT_EQ(static_cast<int>(buf.size()), | |
43 reader_->ReadSync(&buf[0], buf.size())); | |
44 EXPECT_EQ(0U, reader_->BytesRemaining()); | |
45 EXPECT_EQ(bytes_, buf); | |
46 // Try to read again. | |
47 EXPECT_EQ(0, reader_->ReadSync(&buf[0], buf.size())); | |
48 } | |
49 | |
50 TEST_F(UploadBytesElementReaderTest, ReadTooMuch) { | |
51 const size_t kTooLargeSize = bytes_.size() * 2; | |
52 std::vector<char> buf(kTooLargeSize); | |
53 EXPECT_EQ(static_cast<int>(bytes_.size()), | |
54 reader_->ReadSync(&buf[0], buf.size())); | |
55 EXPECT_EQ(0U, reader_->BytesRemaining()); | |
56 buf.resize(bytes_.size()); // Resize to compare. | |
57 EXPECT_EQ(bytes_, buf); | |
58 } | |
59 | |
60 } // namespace net | |
OLD | NEW |