OLD | NEW |
---|---|
(Empty) | |
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 | |
3 // found in the LICENSE file. | |
4 | |
5 #include "mock_url_request_delegate.h" | |
6 | |
7 #include "base/run_loop.h" | |
8 #include "net/base/io_buffer.h" | |
9 #include "testing/gtest/include/gtest/gtest.h" | |
10 | |
11 namespace { | |
12 const int kBufferSize = 1024; | |
13 } | |
14 | |
15 namespace content { | |
16 | |
17 MockURLRequestDelegate::MockURLRequestDelegate() | |
18 : received_data_(new net::IOBuffer(kBufferSize)) { | |
19 } | |
20 | |
21 MockURLRequestDelegate::~MockURLRequestDelegate() { | |
22 } | |
23 | |
24 void MockURLRequestDelegate::OnResponseStarted(net::URLRequest* request) { | |
25 if (request->status().is_success()) { | |
26 EXPECT_TRUE(request->response_headers()); | |
27 ReadSome(request); | |
28 } else { | |
29 RequestComplete(); | |
30 } | |
31 } | |
32 | |
33 void MockURLRequestDelegate::OnReadCompleted(net::URLRequest* request, | |
34 int bytes_read) { | |
35 if (bytes_read > 0) | |
36 ReceiveData(request, bytes_read); | |
37 else | |
38 RequestComplete(); | |
39 } | |
40 | |
41 void MockURLRequestDelegate::ReadSome(net::URLRequest* request) { | |
42 if (!request->is_pending()) { | |
43 RequestComplete(); | |
44 return; | |
45 } | |
46 | |
47 int bytes_read = 0; | |
48 if (!request->Read(received_data_.get(), kBufferSize, &bytes_read)) { | |
49 if (!request->status().is_io_pending()) { | |
michaeln
2014/05/29 01:09:04
nit: brackets not needed
falken
2014/05/29 02:10:46
Done.
| |
50 RequestComplete(); | |
51 } | |
52 return; | |
53 } | |
54 | |
55 ReceiveData(request, bytes_read); | |
56 } | |
57 | |
58 void MockURLRequestDelegate::ReceiveData(net::URLRequest* request, | |
59 int bytes_read) { | |
60 if (bytes_read) { | |
61 response_data_.append(received_data_->data(), | |
62 static_cast<size_t>(bytes_read)); | |
63 ReadSome(request); | |
64 } else { | |
65 RequestComplete(); | |
66 } | |
67 } | |
68 | |
69 void MockURLRequestDelegate::RequestComplete() { | |
70 base::MessageLoop::current()->Quit(); | |
71 } | |
72 | |
73 } // namespace | |
OLD | NEW |