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