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

Side by Side Diff: remoting/base/compound_buffer_unittest.cc

Issue 8493020: Move code in src/remoting to the new callbacks. (Closed) Base URL: http://git.chromium.org/chromium/src.git@master
Patch Set: - Created 9 years, 1 month 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
« no previous file with comments | « remoting/base/codec_test.cc ('k') | remoting/base/decoder.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2011 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 <string> 5 #include <string>
6 6
7 #include "base/callback_old.h" 7 #include "base/bind.h"
8 #include "base/callback.h"
8 #include "base/memory/scoped_ptr.h" 9 #include "base/memory/scoped_ptr.h"
9 #include "net/base/io_buffer.h" 10 #include "net/base/io_buffer.h"
10 #include "remoting/base/compound_buffer.h" 11 #include "remoting/base/compound_buffer.h"
11 #include "testing/gtest/include/gtest/gtest.h" 12 #include "testing/gtest/include/gtest/gtest.h"
12 13
13 using net::IOBuffer; 14 using net::IOBuffer;
14 15
15 namespace remoting { 16 namespace remoting {
16 17
17 namespace { 18 namespace {
(...skipping 57 matching lines...) Expand 10 before | Expand all | Expand 10 after
75 virtual void SetUp() { 76 virtual void SetUp() {
76 data_ = new IOBuffer(kDataSize); 77 data_ = new IOBuffer(kDataSize);
77 for (int i = 0; i < kDataSize; ++i) { 78 for (int i = 0; i < kDataSize; ++i) {
78 data_->data()[i] = i; 79 data_->data()[i] = i;
79 } 80 }
80 } 81 }
81 82
82 // Iterate over chunks of data with sizes specified in |sizes| in the 83 // Iterate over chunks of data with sizes specified in |sizes| in the
83 // interval [0..kDataSize]. |function| is called for each chunk. 84 // interval [0..kDataSize]. |function| is called for each chunk.
84 void IterateOverPieces(const int sizes[], 85 void IterateOverPieces(const int sizes[],
85 Callback2<int, int>::Type* function) { 86 const base::Callback<void(int, int)>& function) {
86 DCHECK_GT(sizes[0], 0); 87 DCHECK_GT(sizes[0], 0);
87 88
88 int pos = 0; 89 int pos = 0;
89 int index = 0; 90 int index = 0;
90 while (pos < kDataSize) { 91 while (pos < kDataSize) {
91 int size = std::min(sizes[index], kDataSize - pos); 92 int size = std::min(sizes[index], kDataSize - pos);
92 ++index; 93 ++index;
93 if (sizes[index] <= 0) 94 if (sizes[index] <= 0)
94 index = 0; 95 index = 0;
95 96
96 function->Run(pos, size); 97 function.Run(pos, size);
97 98
98 pos += size; 99 pos += size;
99 } 100 }
100 delete function;
101 } 101 }
102 102
103 bool CompareData(const CompoundBuffer& buffer, char* data, int size) { 103 bool CompareData(const CompoundBuffer& buffer, char* data, int size) {
104 scoped_refptr<IOBuffer> buffer_data = buffer.ToIOBufferWithSize(); 104 scoped_refptr<IOBuffer> buffer_data = buffer.ToIOBufferWithSize();
105 return buffer.total_bytes() == size && 105 return buffer.total_bytes() == size &&
106 memcmp(buffer_data->data(), data, size) == 0; 106 memcmp(buffer_data->data(), data, size) == 0;
107 } 107 }
108 108
109 static size_t ReadFromInput(CompoundBufferInputStream* input, 109 static size_t ReadFromInput(CompoundBufferInputStream* input,
110 void* data, size_t size) { 110 void* data, size_t size) {
(...skipping 61 matching lines...) Expand 10 before | Expand all | Expand 10 after
172 result->Lock(); 172 result->Lock();
173 buffer->reset(result); 173 buffer->reset(result);
174 } 174 }
175 175
176 CompoundBuffer target_; 176 CompoundBuffer target_;
177 scoped_refptr<IOBuffer> data_; 177 scoped_refptr<IOBuffer> data_;
178 }; 178 };
179 179
180 TEST_F(CompoundBufferTest, Append) { 180 TEST_F(CompoundBufferTest, Append) {
181 target_.Clear(); 181 target_.Clear();
182 IterateOverPieces(kChunkSizes0, NewCallback( 182 IterateOverPieces(kChunkSizes0, base::Bind(
183 static_cast<CompoundBufferTest*>(this), &CompoundBufferTest::Append)); 183 &CompoundBufferTest::Append, base::Unretained(this)));
184 EXPECT_TRUE(CompareData(target_, data_->data(), kDataSize)); 184 EXPECT_TRUE(CompareData(target_, data_->data(), kDataSize));
185 185
186 target_.Clear(); 186 target_.Clear();
187 IterateOverPieces(kChunkSizes1, NewCallback( 187 IterateOverPieces(kChunkSizes1, base::Bind(
188 static_cast<CompoundBufferTest*>(this), &CompoundBufferTest::Append)); 188 &CompoundBufferTest::Append, base::Unretained(this)));
189 EXPECT_TRUE(CompareData(target_, data_->data(), kDataSize)); 189 EXPECT_TRUE(CompareData(target_, data_->data(), kDataSize));
190 } 190 }
191 191
192 TEST_F(CompoundBufferTest, AppendCopyOf) { 192 TEST_F(CompoundBufferTest, AppendCopyOf) {
193 target_.Clear(); 193 target_.Clear();
194 IterateOverPieces(kChunkSizes0, NewCallback( 194 IterateOverPieces(kChunkSizes0, base::Bind(
195 static_cast<CompoundBufferTest*>(this), 195 &CompoundBufferTest::AppendCopyOf, base::Unretained(this)));
196 &CompoundBufferTest::AppendCopyOf));
197 EXPECT_TRUE(CompareData(target_, data_->data(), kDataSize)); 196 EXPECT_TRUE(CompareData(target_, data_->data(), kDataSize));
198 197
199 target_.Clear(); 198 target_.Clear();
200 IterateOverPieces(kChunkSizes1, NewCallback( 199 IterateOverPieces(kChunkSizes1, base::Bind(
201 static_cast<CompoundBufferTest*>(this), 200 &CompoundBufferTest::AppendCopyOf, base::Unretained(this)));
202 &CompoundBufferTest::AppendCopyOf));
203 EXPECT_TRUE(CompareData(target_, data_->data(), kDataSize)); 201 EXPECT_TRUE(CompareData(target_, data_->data(), kDataSize));
204 } 202 }
205 203
206 TEST_F(CompoundBufferTest, Prepend) { 204 TEST_F(CompoundBufferTest, Prepend) {
207 target_.Clear(); 205 target_.Clear();
208 IterateOverPieces(kChunkSizes0, NewCallback( 206 IterateOverPieces(kChunkSizes0, base::Bind(
209 static_cast<CompoundBufferTest*>(this), &CompoundBufferTest::Prepend)); 207 &CompoundBufferTest::Prepend, base::Unretained(this)));
210 EXPECT_TRUE(CompareData(target_, data_->data(), kDataSize)); 208 EXPECT_TRUE(CompareData(target_, data_->data(), kDataSize));
211 209
212 target_.Clear(); 210 target_.Clear();
213 IterateOverPieces(kChunkSizes1, NewCallback( 211 IterateOverPieces(kChunkSizes1, base::Bind(
214 static_cast<CompoundBufferTest*>(this), &CompoundBufferTest::Prepend)); 212 &CompoundBufferTest::Prepend, base::Unretained(this)));
215 EXPECT_TRUE(CompareData(target_, data_->data(), kDataSize)); 213 EXPECT_TRUE(CompareData(target_, data_->data(), kDataSize));
216 } 214 }
217 215
218 TEST_F(CompoundBufferTest, PrependCopyOf) { 216 TEST_F(CompoundBufferTest, PrependCopyOf) {
219 target_.Clear(); 217 target_.Clear();
220 IterateOverPieces(kChunkSizes0, NewCallback( 218 IterateOverPieces(kChunkSizes0, base::Bind(
221 static_cast<CompoundBufferTest*>(this), 219 &CompoundBufferTest::PrependCopyOf, base::Unretained(this)));
222 &CompoundBufferTest::PrependCopyOf));
223 EXPECT_TRUE(CompareData(target_, data_->data(), kDataSize)); 220 EXPECT_TRUE(CompareData(target_, data_->data(), kDataSize));
224 221
225 target_.Clear(); 222 target_.Clear();
226 IterateOverPieces(kChunkSizes1, NewCallback( 223 IterateOverPieces(kChunkSizes1, base::Bind(
227 static_cast<CompoundBufferTest*>(this), 224 &CompoundBufferTest::PrependCopyOf, base::Unretained(this)));
228 &CompoundBufferTest::PrependCopyOf));
229 EXPECT_TRUE(CompareData(target_, data_->data(), kDataSize)); 225 EXPECT_TRUE(CompareData(target_, data_->data(), kDataSize));
230 } 226 }
231 227
232 TEST_F(CompoundBufferTest, CropFront) { 228 TEST_F(CompoundBufferTest, CropFront) {
233 target_.Clear(); 229 target_.Clear();
234 IterateOverPieces(kChunkSizes1, NewCallback( 230 IterateOverPieces(kChunkSizes1, base::Bind(
235 static_cast<CompoundBufferTest*>(this), &CompoundBufferTest::Append)); 231 &CompoundBufferTest::Append, base::Unretained(this)));
236 IterateOverPieces(kCropSizes, NewCallback( 232 IterateOverPieces(kCropSizes, base::Bind(
237 static_cast<CompoundBufferTest*>(this), 233 &CompoundBufferTest::TestCropFront, base::Unretained(this)));
238 &CompoundBufferTest::TestCropFront));
239 } 234 }
240 235
241 TEST_F(CompoundBufferTest, CropBack) { 236 TEST_F(CompoundBufferTest, CropBack) {
242 target_.Clear(); 237 target_.Clear();
243 IterateOverPieces(kChunkSizes1, NewCallback( 238 IterateOverPieces(kChunkSizes1, base::Bind(
244 static_cast<CompoundBufferTest*>(this), &CompoundBufferTest::Append)); 239 &CompoundBufferTest::Append, base::Unretained(this)));
245 IterateOverPieces(kCropSizes, NewCallback( 240 IterateOverPieces(kCropSizes, base::Bind(
246 static_cast<CompoundBufferTest*>(this), 241 &CompoundBufferTest::TestCropBack, base::Unretained(this)));
247 &CompoundBufferTest::TestCropBack));
248 } 242 }
249 243
250 TEST_F(CompoundBufferTest, CopyFrom) { 244 TEST_F(CompoundBufferTest, CopyFrom) {
251 target_.Clear(); 245 target_.Clear();
252 IterateOverPieces(kChunkSizes1, NewCallback( 246 IterateOverPieces(kChunkSizes1, base::Bind(
253 static_cast<CompoundBufferTest*>(this), &CompoundBufferTest::Append)); 247 &CompoundBufferTest::Append, base::Unretained(this)));
254 { 248 {
255 SCOPED_TRACE("CopyFrom.kCopySizes0"); 249 SCOPED_TRACE("CopyFrom.kCopySizes0");
256 IterateOverPieces(kCopySizes0, NewCallback( 250 IterateOverPieces(kCopySizes0, base::Bind(
257 static_cast<CompoundBufferTest*>(this), 251 &CompoundBufferTest::TestCopyFrom, base::Unretained(this)));
258 &CompoundBufferTest::TestCopyFrom));
259 } 252 }
260 { 253 {
261 SCOPED_TRACE("CopyFrom.kCopySizes1"); 254 SCOPED_TRACE("CopyFrom.kCopySizes1");
262 IterateOverPieces(kCopySizes1, NewCallback( 255 IterateOverPieces(kCopySizes1, base::Bind(
263 static_cast<CompoundBufferTest*>(this), 256 &CompoundBufferTest::TestCopyFrom, base::Unretained(this)));
264 &CompoundBufferTest::TestCopyFrom));
265 } 257 }
266 } 258 }
267 259
268 TEST_F(CompoundBufferTest, InputStream) { 260 TEST_F(CompoundBufferTest, InputStream) {
269 scoped_ptr<CompoundBuffer> buffer; 261 scoped_ptr<CompoundBuffer> buffer;
270 PrepareData(&buffer); 262 PrepareData(&buffer);
271 CompoundBufferInputStream stream(buffer.get()); 263 CompoundBufferInputStream stream(buffer.get());
272 264
273 ReadString(&stream, "Hello world!"); 265 ReadString(&stream, "Hello world!");
274 ReadString(&stream, "This "); 266 ReadString(&stream, "This ");
275 ReadString(&stream, "is test"); 267 ReadString(&stream, "is test");
276 EXPECT_TRUE(stream.Skip(3)); 268 EXPECT_TRUE(stream.Skip(3));
277 ReadString(&stream, "MultipleArrayInput"); 269 ReadString(&stream, "MultipleArrayInput");
278 EXPECT_TRUE(stream.Skip(6)); 270 EXPECT_TRUE(stream.Skip(6));
279 ReadString(&stream, "f"); 271 ReadString(&stream, "f");
280 ReadString(&stream, "o"); 272 ReadString(&stream, "o");
281 ReadString(&stream, "r"); 273 ReadString(&stream, "r");
282 ReadString(&stream, " "); 274 ReadString(&stream, " ");
283 ReadString(&stream, "Chromoting"); 275 ReadString(&stream, "Chromoting");
284 } 276 }
285 277
286 } // namespace remoting 278 } // namespace remoting
OLDNEW
« no previous file with comments | « remoting/base/codec_test.cc ('k') | remoting/base/decoder.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698