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

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

Issue 10823180: net: Make UploadDataStream::Init() asynchronous. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: rebase Created 8 years, 4 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
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 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 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "net/base/upload_data_stream.h" 5 #include "net/base/upload_data_stream.h"
6 6
7 #include <vector> 7 #include <vector>
8 8
9 #include "base/basictypes.h" 9 #include "base/basictypes.h"
10 #include "base/bind.h" 10 #include "base/bind.h"
(...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after
47 void FileChangedHelper(const FilePath& file_path, 47 void FileChangedHelper(const FilePath& file_path,
48 const base::Time& time, 48 const base::Time& time,
49 bool error_expected); 49 bool error_expected);
50 50
51 scoped_refptr<UploadData> upload_data_; 51 scoped_refptr<UploadData> upload_data_;
52 }; 52 };
53 53
54 TEST_F(UploadDataStreamTest, EmptyUploadData) { 54 TEST_F(UploadDataStreamTest, EmptyUploadData) {
55 upload_data_->AppendBytes("", 0); 55 upload_data_->AppendBytes("", 0);
56 scoped_ptr<UploadDataStream> stream(new UploadDataStream(upload_data_)); 56 scoped_ptr<UploadDataStream> stream(new UploadDataStream(upload_data_));
57 ASSERT_EQ(OK, stream->Init()); 57 ASSERT_EQ(OK, stream->InitSync());
58 ASSERT_TRUE(stream.get()); 58 ASSERT_TRUE(stream.get());
59 EXPECT_EQ(0U, stream->size()); 59 EXPECT_EQ(0U, stream->size());
60 EXPECT_EQ(0U, stream->position()); 60 EXPECT_EQ(0U, stream->position());
61 EXPECT_TRUE(stream->IsEOF()); 61 EXPECT_TRUE(stream->IsEOF());
62 } 62 }
63 63
64 TEST_F(UploadDataStreamTest, ConsumeAll) { 64 TEST_F(UploadDataStreamTest, ConsumeAll) {
65 upload_data_->AppendBytes(kTestData, kTestDataSize); 65 upload_data_->AppendBytes(kTestData, kTestDataSize);
66 scoped_ptr<UploadDataStream> stream(new UploadDataStream(upload_data_)); 66 scoped_ptr<UploadDataStream> stream(new UploadDataStream(upload_data_));
67 ASSERT_EQ(OK, stream->Init()); 67 ASSERT_EQ(OK, stream->InitSync());
68 ASSERT_TRUE(stream.get()); 68 ASSERT_TRUE(stream.get());
69 EXPECT_EQ(kTestDataSize, stream->size()); 69 EXPECT_EQ(kTestDataSize, stream->size());
70 EXPECT_EQ(0U, stream->position()); 70 EXPECT_EQ(0U, stream->position());
71 EXPECT_FALSE(stream->IsEOF()); 71 EXPECT_FALSE(stream->IsEOF());
72 scoped_refptr<IOBuffer> buf = new IOBuffer(kTestBufferSize); 72 scoped_refptr<IOBuffer> buf = new IOBuffer(kTestBufferSize);
73 while (!stream->IsEOF()) { 73 while (!stream->IsEOF()) {
74 int bytes_read = stream->Read(buf, kTestBufferSize); 74 int bytes_read = stream->Read(buf, kTestBufferSize);
75 ASSERT_LE(0, bytes_read); // Not an error. 75 ASSERT_LE(0, bytes_read); // Not an error.
76 } 76 }
77 EXPECT_EQ(kTestDataSize, stream->position()); 77 EXPECT_EQ(kTestDataSize, stream->position());
78 ASSERT_TRUE(stream->IsEOF()); 78 ASSERT_TRUE(stream->IsEOF());
79 } 79 }
80 80
81 TEST_F(UploadDataStreamTest, FileSmallerThanLength) { 81 TEST_F(UploadDataStreamTest, FileSmallerThanLength) {
82 FilePath temp_file_path; 82 FilePath temp_file_path;
83 ASSERT_TRUE(file_util::CreateTemporaryFile(&temp_file_path)); 83 ASSERT_TRUE(file_util::CreateTemporaryFile(&temp_file_path));
84 ASSERT_EQ(static_cast<int>(kTestDataSize), 84 ASSERT_EQ(static_cast<int>(kTestDataSize),
85 file_util::WriteFile(temp_file_path, kTestData, kTestDataSize)); 85 file_util::WriteFile(temp_file_path, kTestData, kTestDataSize));
86 const uint64 kFakeSize = kTestDataSize*2; 86 const uint64 kFakeSize = kTestDataSize*2;
87 87
88 std::vector<UploadData::Element> elements; 88 std::vector<UploadData::Element> elements;
89 UploadData::Element element; 89 UploadData::Element element;
90 element.SetToFilePath(temp_file_path); 90 element.SetToFilePath(temp_file_path);
91 element.SetContentLength(kFakeSize); 91 element.SetContentLength(kFakeSize);
92 elements.push_back(element); 92 elements.push_back(element);
93 upload_data_->SetElements(elements); 93 upload_data_->SetElements(elements);
94 EXPECT_EQ(kFakeSize, upload_data_->GetContentLengthSync()); 94 EXPECT_EQ(kFakeSize, upload_data_->GetContentLengthSync());
95 95
96 scoped_ptr<UploadDataStream> stream(new UploadDataStream(upload_data_)); 96 scoped_ptr<UploadDataStream> stream(new UploadDataStream(upload_data_));
97 ASSERT_EQ(OK, stream->Init()); 97 ASSERT_EQ(OK, stream->InitSync());
98 ASSERT_TRUE(stream.get()); 98 ASSERT_TRUE(stream.get());
99 EXPECT_EQ(kFakeSize, stream->size()); 99 EXPECT_EQ(kFakeSize, stream->size());
100 EXPECT_EQ(0U, stream->position()); 100 EXPECT_EQ(0U, stream->position());
101 EXPECT_FALSE(stream->IsEOF()); 101 EXPECT_FALSE(stream->IsEOF());
102 uint64 read_counter = 0; 102 uint64 read_counter = 0;
103 scoped_refptr<IOBuffer> buf = new IOBuffer(kTestBufferSize); 103 scoped_refptr<IOBuffer> buf = new IOBuffer(kTestBufferSize);
104 while (!stream->IsEOF()) { 104 while (!stream->IsEOF()) {
105 int bytes_read = stream->Read(buf, kTestBufferSize); 105 int bytes_read = stream->Read(buf, kTestBufferSize);
106 ASSERT_LE(0, bytes_read); // Not an error. 106 ASSERT_LE(0, bytes_read); // Not an error.
107 read_counter += bytes_read; 107 read_counter += bytes_read;
(...skipping 13 matching lines...) Expand all
121 std::vector<UploadData::Element> elements; 121 std::vector<UploadData::Element> elements;
122 UploadData::Element element; 122 UploadData::Element element;
123 element.SetToFilePathRange(file_path, 1, 2, time); 123 element.SetToFilePathRange(file_path, 1, 2, time);
124 elements.push_back(element); 124 elements.push_back(element);
125 // Don't use upload_data_ here, as this function is called twice, and 125 // Don't use upload_data_ here, as this function is called twice, and
126 // reusing upload_data_ is wrong. 126 // reusing upload_data_ is wrong.
127 scoped_refptr<UploadData> upload_data(new UploadData); 127 scoped_refptr<UploadData> upload_data(new UploadData);
128 upload_data->SetElements(elements); 128 upload_data->SetElements(elements);
129 129
130 scoped_ptr<UploadDataStream> stream(new UploadDataStream(upload_data)); 130 scoped_ptr<UploadDataStream> stream(new UploadDataStream(upload_data));
131 int error_code = stream->Init(); 131 int error_code = stream->InitSync();
132 if (error_expected) 132 if (error_expected)
133 ASSERT_EQ(ERR_UPLOAD_FILE_CHANGED, error_code); 133 ASSERT_EQ(ERR_UPLOAD_FILE_CHANGED, error_code);
134 else 134 else
135 ASSERT_EQ(OK, error_code); 135 ASSERT_EQ(OK, error_code);
136 } 136 }
137 137
138 TEST_F(UploadDataStreamTest, FileChanged) { 138 TEST_F(UploadDataStreamTest, FileChanged) {
139 FilePath temp_file_path; 139 FilePath temp_file_path;
140 ASSERT_TRUE(file_util::CreateTemporaryFile(&temp_file_path)); 140 ASSERT_TRUE(file_util::CreateTemporaryFile(&temp_file_path));
141 ASSERT_EQ(static_cast<int>(kTestDataSize), 141 ASSERT_EQ(static_cast<int>(kTestDataSize),
(...skipping 23 matching lines...) Expand all
165 std::vector<UploadData::Element> elements; 165 std::vector<UploadData::Element> elements;
166 UploadData::Element element; 166 UploadData::Element element;
167 element.SetToFilePath(temp_file_path); 167 element.SetToFilePath(temp_file_path);
168 elements.push_back(element); 168 elements.push_back(element);
169 upload_data_->SetElements(elements); 169 upload_data_->SetElements(elements);
170 EXPECT_EQ(kTestDataSize, upload_data_->GetContentLengthSync()); 170 EXPECT_EQ(kTestDataSize, upload_data_->GetContentLengthSync());
171 171
172 // Confirm that the file is read properly. 172 // Confirm that the file is read properly.
173 { 173 {
174 UploadDataStream stream(upload_data_); 174 UploadDataStream stream(upload_data_);
175 ASSERT_EQ(OK, stream.Init()); 175 ASSERT_EQ(OK, stream.InitSync());
176 EXPECT_EQ(kTestData, ReadFromUploadDataStream(&stream)); 176 EXPECT_EQ(kTestData, ReadFromUploadDataStream(&stream));
177 } 177 }
178 178
179 // Reuse |upload_data_| for another UploadDataStream, and confirm that the 179 // Reuse |upload_data_| for another UploadDataStream, and confirm that the
180 // file is read properly. 180 // file is read properly.
181 { 181 {
182 UploadDataStream stream(upload_data_); 182 UploadDataStream stream(upload_data_);
183 ASSERT_EQ(OK, stream.Init()); 183 ASSERT_EQ(OK, stream.InitSync());
184 EXPECT_EQ(kTestData, ReadFromUploadDataStream(&stream)); 184 EXPECT_EQ(kTestData, ReadFromUploadDataStream(&stream));
185 } 185 }
186 186
187 file_util::Delete(temp_file_path, false); 187 file_util::Delete(temp_file_path, false);
188 } 188 }
189 189
190 } // namespace net 190 } // namespace net
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698