| OLD | NEW |
| 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 Loading... |
| 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 Loading... |
| 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 Loading... |
| 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 |
| OLD | NEW |