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

Side by Side Diff: net/base/upload_file_element_reader_unittest.cc

Issue 10868064: net: Move data reading functionalities from UploadElement to UploadElementReader (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: rebase Created 8 years, 3 months 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 unified diff | Download patch | Annotate | Revision Log
OLDNEW
(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_file_element_reader.h"
6
7 #include "base/file_util.h"
8 #include "base/scoped_temp_dir.h"
9 #include "net/base/net_errors.h"
10 #include "testing/gtest/include/gtest/gtest.h"
11 #include "testing/platform_test.h"
12
13 namespace net {
14
15 class UploadFileElementReaderTest : public PlatformTest {
16 protected:
17 virtual void SetUp() OVERRIDE {
18 const char kData[] = "123456789abcdefghi";
19 bytes_.assign(kData, kData + arraysize(kData));
20
21 ASSERT_TRUE(temp_dir_.CreateUniqueTempDir());
22
23 ASSERT_TRUE(file_util::CreateTemporaryFileInDir(temp_dir_.path(),
24 &temp_file_path_));
25 ASSERT_EQ(
26 static_cast<int>(bytes_.size()),
27 file_util::WriteFile(temp_file_path_, &bytes_[0], bytes_.size()));
28
29 reader_.reset(new UploadFileElementReader(
30 temp_file_path_, 0, kuint64max, base::Time()));
31 ASSERT_EQ(OK, reader_->InitSync());
32 EXPECT_EQ(bytes_.size(), reader_->GetContentLength());
33 EXPECT_EQ(bytes_.size(), reader_->BytesRemaining());
34 EXPECT_FALSE(reader_->IsInMemory());
35 }
36
37 std::vector<char> bytes_;
38 scoped_ptr<UploadElementReader> reader_;
39 ScopedTempDir temp_dir_;
40 FilePath temp_file_path_;
41 };
42
43 TEST_F(UploadFileElementReaderTest, ReadPartially) {
44 const size_t kHalfSize = bytes_.size() / 2;
45 std::vector<char> buf(kHalfSize);
46 EXPECT_EQ(static_cast<int>(buf.size()),
47 reader_->ReadSync(&buf[0], buf.size()));
48 EXPECT_EQ(bytes_.size() - buf.size(), reader_->BytesRemaining());
49 bytes_.resize(kHalfSize); // Resize to compare.
50 EXPECT_EQ(bytes_, buf);
51 }
52
53 TEST_F(UploadFileElementReaderTest, ReadAll) {
54 std::vector<char> buf(bytes_.size());
55 EXPECT_EQ(static_cast<int>(buf.size()),
56 reader_->ReadSync(&buf[0], buf.size()));
57 EXPECT_EQ(0U, reader_->BytesRemaining());
58 EXPECT_EQ(bytes_, buf);
59 // Try to read again.
60 EXPECT_EQ(0, reader_->ReadSync(&buf[0], buf.size()));
61 }
62
63 TEST_F(UploadFileElementReaderTest, ReadTooMuch) {
64 const size_t kTooLargeSize = bytes_.size() * 2;
65 std::vector<char> buf(kTooLargeSize);
66 EXPECT_EQ(static_cast<int>(bytes_.size()),
67 reader_->ReadSync(&buf[0], buf.size()));
68 EXPECT_EQ(0U, reader_->BytesRemaining());
69 buf.resize(bytes_.size()); // Resize to compare.
70 EXPECT_EQ(bytes_, buf);
71 }
72
73 TEST_F(UploadFileElementReaderTest, Range) {
74 const uint64 kOffset = 2;
75 const uint64 kLength = bytes_.size() - kOffset * 3;
76 reader_.reset(new UploadFileElementReader(
77 temp_file_path_, kOffset, kLength, base::Time()));
78 ASSERT_EQ(OK, reader_->InitSync());
79 EXPECT_EQ(kLength, reader_->GetContentLength());
80 EXPECT_EQ(kLength, reader_->BytesRemaining());
81 std::vector<char> buf(kLength);
82 EXPECT_EQ(static_cast<int>(kLength),
83 reader_->ReadSync(&buf[0], kLength));
84 const std::vector<char> expected(bytes_.begin() + kOffset,
85 bytes_.begin() + kOffset + kLength);
86 EXPECT_EQ(expected, buf);
87 }
88
89 TEST_F(UploadFileElementReaderTest, FileChanged) {
90 base::PlatformFileInfo info;
91 ASSERT_TRUE(file_util::GetFileInfo(temp_file_path_, &info));
92
93 // Expect one second before the actual modification time to simulate change.
94 const base::Time expected_modification_time =
95 info.last_modified - base::TimeDelta::FromSeconds(1);
96 reader_.reset(new UploadFileElementReader(
97 temp_file_path_, 0, kuint64max, expected_modification_time));
98 EXPECT_EQ(ERR_UPLOAD_FILE_CHANGED, reader_->InitSync());
99 }
100
101 TEST_F(UploadFileElementReaderTest, WrongPath) {
102 const FilePath wrong_path(FILE_PATH_LITERAL("wrong_path"));
103 reader_.reset(new UploadFileElementReader(
104 wrong_path, 0, kuint64max, base::Time()));
105 ASSERT_EQ(OK, reader_->InitSync());
106 EXPECT_EQ(0U, reader_->GetContentLength());
107 EXPECT_EQ(0U, reader_->BytesRemaining());
108 }
109
110 } // namespace net
OLDNEW
« no previous file with comments | « net/base/upload_file_element_reader.cc ('k') | net/http/http_network_transaction_spdy2_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698