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

Side by Side Diff: content/child/web_data_consumer_handle_impl_unittest.cc

Issue 2639873002: Handle correctly "ShouldWait" result of mojo::Wait() in WebDataConsumerHandleImpl. (Closed)
Patch Set: Created 3 years, 11 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
OLDNEW
1 // Copyright 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 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 "content/child/web_data_consumer_handle_impl.h" 5 #include "content/child/web_data_consumer_handle_impl.h"
6 6
7 #include <stddef.h> 7 #include <stddef.h>
8 #include <stdint.h> 8 #include <stdint.h>
9 9
10 #include <algorithm> 10 #include <algorithm>
(...skipping 264 matching lines...) Expand 10 before | Expand all | Expand 10 after
275 275
276 run_loop.Run(); 276 run_loop.Run();
277 t.Stop(); 277 t.Stop();
278 278
279 EXPECT_EQ(expected, operation->result()); 279 EXPECT_EQ(expected, operation->result());
280 } 280 }
281 281
282 TEST_F(WebDataConsumerHandleImplTest, ZeroSizeRead) { 282 TEST_F(WebDataConsumerHandleImplTest, ZeroSizeRead) {
283 ASSERT_GT(kDataPipeCapacity - 1, 0); 283 ASSERT_GT(kDataPipeCapacity - 1, 0);
284 constexpr size_t data_size = kDataPipeCapacity - 1; 284 constexpr size_t data_size = kDataPipeCapacity - 1;
285 std::string expected = ProduceData(data_size);
286 producer_.reset();
287 std::unique_ptr<WebDataConsumerHandleImpl> handle( 285 std::unique_ptr<WebDataConsumerHandleImpl> handle(
288 new WebDataConsumerHandleImpl(std::move(consumer_))); 286 new WebDataConsumerHandleImpl(std::move(consumer_)));
289 std::unique_ptr<WebDataConsumerHandle::Reader> reader( 287 std::unique_ptr<WebDataConsumerHandle::Reader> reader(
290 handle->obtainReader(nullptr)); 288 handle->obtainReader(nullptr));
291 289
292 size_t read_size; 290 size_t read_size;
293 WebDataConsumerHandle::Result rv = 291 WebDataConsumerHandle::Result rv =
294 reader->read(nullptr, 0, WebDataConsumerHandle::FlagNone, &read_size); 292 reader->read(nullptr, 0, WebDataConsumerHandle::FlagNone, &read_size);
293 EXPECT_EQ(WebDataConsumerHandle::Result::ShouldWait, rv);
294
295 std::string expected = ProduceData(data_size);
296 producer_.reset();
297
298 rv = reader->read(nullptr, 0, WebDataConsumerHandle::FlagNone, &read_size);
295 EXPECT_EQ(WebDataConsumerHandle::Result::Ok, rv); 299 EXPECT_EQ(WebDataConsumerHandle::Result::Ok, rv);
296 300
297 char buffer[16]; 301 char buffer[16];
298 rv = reader->read(&buffer, sizeof(buffer), WebDataConsumerHandle::FlagNone, 302 rv = reader->read(&buffer, sizeof(buffer), WebDataConsumerHandle::FlagNone,
299 &read_size); 303 &read_size);
300 EXPECT_EQ(WebDataConsumerHandle::Result::Ok, rv); 304 EXPECT_EQ(WebDataConsumerHandle::Result::Ok, rv);
301 EXPECT_EQ(data_size, read_size); 305 EXPECT_EQ(data_size, read_size);
302 EXPECT_EQ(expected, std::string(buffer, read_size)); 306 EXPECT_EQ(expected, std::string(buffer, read_size));
307
308 rv = reader->read(nullptr, 0, WebDataConsumerHandle::FlagNone, &read_size);
309 EXPECT_EQ(WebDataConsumerHandle::Result::Done, rv);
303 } 310 }
304 311
305 } // namespace 312 } // namespace
306 313
307 } // namespace content 314 } // namespace content
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698