OLD | NEW |
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 #include <vector> | 6 #include <vector> |
7 | 7 |
8 #include "base/memory/scoped_ptr.h" | 8 #include "base/memory/scoped_ptr.h" |
9 #include "base/message_loop.h" | 9 #include "base/message_loop.h" |
10 #include "base/process.h" | 10 #include "base/process.h" |
(...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
49 *has_new_first_party_for_cookies = false; | 49 *has_new_first_party_for_cookies = false; |
50 return true; | 50 return true; |
51 } | 51 } |
52 | 52 |
53 virtual void OnReceivedResponse(const ResourceResponseInfo& info) { | 53 virtual void OnReceivedResponse(const ResourceResponseInfo& info) { |
54 } | 54 } |
55 | 55 |
56 virtual void OnDownloadedData(int len) { | 56 virtual void OnDownloadedData(int len) { |
57 } | 57 } |
58 | 58 |
59 virtual void OnReceivedData(const char* data, int len) { | 59 virtual void OnReceivedData(const char* data, |
| 60 int data_length, |
| 61 int raw_data_length) { |
60 EXPECT_FALSE(complete_); | 62 EXPECT_FALSE(complete_); |
61 data_.append(data, len); | 63 data_.append(data, data_length); |
| 64 total_raw_data_length_ += raw_data_length; |
62 } | 65 } |
63 | 66 |
64 virtual void OnCompletedRequest(const net::URLRequestStatus& status, | 67 virtual void OnCompletedRequest(const net::URLRequestStatus& status, |
65 const std::string& security_info, | 68 const std::string& security_info, |
66 const base::Time& completion_time) { | 69 const base::Time& completion_time) { |
67 EXPECT_FALSE(complete_); | 70 EXPECT_FALSE(complete_); |
68 complete_ = true; | 71 complete_ = true; |
69 } | 72 } |
70 | 73 |
| 74 bool complete() const { |
| 75 return complete_; |
| 76 } |
71 const std::string& data() const { | 77 const std::string& data() const { |
72 return data_; | 78 return data_; |
73 } | 79 } |
74 bool complete() const { | 80 int total_raw_data_length() const { |
75 return complete_; | 81 return total_raw_data_length_; |
76 } | 82 } |
77 | 83 |
78 private: | 84 private: |
79 bool complete_; | 85 bool complete_; |
80 std::string data_; | 86 std::string data_; |
| 87 int total_raw_data_length_; |
81 }; | 88 }; |
82 | 89 |
83 | 90 |
84 // Sets up the message sender override for the unit test | 91 // Sets up the message sender override for the unit test |
85 class ResourceDispatcherTest : public testing::Test, | 92 class ResourceDispatcherTest : public testing::Test, |
86 public IPC::Message::Sender { | 93 public IPC::Message::Sender { |
87 public: | 94 public: |
88 // Emulates IPC send operations (IPC::Message::Sender) by adding | 95 // Emulates IPC send operations (IPC::Message::Sender) by adding |
89 // pending messages to the queue. | 96 // pending messages to the queue. |
90 virtual bool Send(IPC::Message* msg) { | 97 virtual bool Send(IPC::Message* msg) { |
(...skipping 25 matching lines...) Expand all Loading... |
116 | 123 |
117 // received data message with the test contents | 124 // received data message with the test contents |
118 base::SharedMemory shared_mem; | 125 base::SharedMemory shared_mem; |
119 EXPECT_TRUE(shared_mem.CreateAndMapAnonymous(test_page_contents_len)); | 126 EXPECT_TRUE(shared_mem.CreateAndMapAnonymous(test_page_contents_len)); |
120 char* put_data_here = static_cast<char*>(shared_mem.memory()); | 127 char* put_data_here = static_cast<char*>(shared_mem.memory()); |
121 memcpy(put_data_here, test_page_contents, test_page_contents_len); | 128 memcpy(put_data_here, test_page_contents, test_page_contents_len); |
122 base::SharedMemoryHandle dup_handle; | 129 base::SharedMemoryHandle dup_handle; |
123 EXPECT_TRUE(shared_mem.GiveToProcess( | 130 EXPECT_TRUE(shared_mem.GiveToProcess( |
124 base::Process::Current().handle(), &dup_handle)); | 131 base::Process::Current().handle(), &dup_handle)); |
125 dispatcher_->OnReceivedData( | 132 dispatcher_->OnReceivedData( |
126 message_queue_[0], request_id, dup_handle, test_page_contents_len); | 133 message_queue_[0], |
| 134 request_id, |
| 135 dup_handle, |
| 136 test_page_contents_len, |
| 137 test_page_contents_len); |
127 | 138 |
128 message_queue_.erase(message_queue_.begin()); | 139 message_queue_.erase(message_queue_.begin()); |
129 | 140 |
130 // read the ack message. | 141 // read the ack message. |
131 Tuple1<int> request_ack; | 142 Tuple1<int> request_ack; |
132 ASSERT_TRUE(ResourceHostMsg_DataReceived_ACK::Read( | 143 ASSERT_TRUE(ResourceHostMsg_DataReceived_ACK::Read( |
133 &message_queue_[0], &request_ack)); | 144 &message_queue_[0], &request_ack)); |
134 | 145 |
135 ASSERT_EQ(request_ack.a, request_id); | 146 ASSERT_EQ(request_ack.a, request_id); |
136 | 147 |
(...skipping 39 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
176 ResourceLoaderBridge* bridge = CreateBridge(); | 187 ResourceLoaderBridge* bridge = CreateBridge(); |
177 | 188 |
178 bridge->Start(&callback); | 189 bridge->Start(&callback); |
179 | 190 |
180 ProcessMessages(); | 191 ProcessMessages(); |
181 | 192 |
182 // FIXME(brettw) when the request complete messages are actually handledo | 193 // FIXME(brettw) when the request complete messages are actually handledo |
183 // and dispatched, uncomment this. | 194 // and dispatched, uncomment this. |
184 //EXPECT_TRUE(callback.complete()); | 195 //EXPECT_TRUE(callback.complete()); |
185 //EXPECT_STREQ(test_page_contents, callback.data().c_str()); | 196 //EXPECT_STREQ(test_page_contents, callback.data().c_str()); |
| 197 //EXPECT_EQ(test_page_contents_len, callback.total_raw_data_length()); |
186 | 198 |
187 delete bridge; | 199 delete bridge; |
188 } | 200 } |
189 | 201 |
190 // Tests that the request IDs are straight when there are multiple requests. | 202 // Tests that the request IDs are straight when there are multiple requests. |
191 TEST_F(ResourceDispatcherTest, MultipleRequests) { | 203 TEST_F(ResourceDispatcherTest, MultipleRequests) { |
192 // FIXME | 204 // FIXME |
193 } | 205 } |
194 | 206 |
195 // Tests that the cancel method prevents other messages from being received | 207 // Tests that the cancel method prevents other messages from being received |
(...skipping 39 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
235 | 247 |
236 delete response_message; | 248 delete response_message; |
237 | 249 |
238 // Duplicate the shared memory handle so both the test and the callee can | 250 // Duplicate the shared memory handle so both the test and the callee can |
239 // close their copy. | 251 // close their copy. |
240 base::SharedMemoryHandle duplicated_handle; | 252 base::SharedMemoryHandle duplicated_handle; |
241 EXPECT_TRUE(shared_handle_.ShareToProcess(base::GetCurrentProcessHandle(), | 253 EXPECT_TRUE(shared_handle_.ShareToProcess(base::GetCurrentProcessHandle(), |
242 &duplicated_handle)); | 254 &duplicated_handle)); |
243 | 255 |
244 response_message = | 256 response_message = |
245 new ResourceMsg_DataReceived(0, 0, duplicated_handle, 100); | 257 new ResourceMsg_DataReceived(0, 0, duplicated_handle, 100, 100); |
246 | 258 |
247 dispatcher_->OnMessageReceived(*response_message); | 259 dispatcher_->OnMessageReceived(*response_message); |
248 | 260 |
249 delete response_message; | 261 delete response_message; |
250 | 262 |
251 set_defer_loading(false); | 263 set_defer_loading(false); |
252 } | 264 } |
253 | 265 |
254 // ResourceLoaderBridge::Peer methods. | 266 // ResourceLoaderBridge::Peer methods. |
255 virtual void OnUploadProgress(uint64 position, uint64 size) { | 267 virtual void OnUploadProgress(uint64 position, uint64 size) { |
256 } | 268 } |
257 | 269 |
258 virtual bool OnReceivedRedirect( | 270 virtual bool OnReceivedRedirect( |
259 const GURL& new_url, | 271 const GURL& new_url, |
260 const ResourceResponseInfo& info, | 272 const ResourceResponseInfo& info, |
261 bool* has_new_first_party_for_cookies, | 273 bool* has_new_first_party_for_cookies, |
262 GURL* new_first_party_for_cookies) { | 274 GURL* new_first_party_for_cookies) { |
263 *has_new_first_party_for_cookies = false; | 275 *has_new_first_party_for_cookies = false; |
264 return true; | 276 return true; |
265 } | 277 } |
266 | 278 |
267 virtual void OnReceivedResponse(const ResourceResponseInfo& info) { | 279 virtual void OnReceivedResponse(const ResourceResponseInfo& info) { |
268 EXPECT_EQ(defer_loading_, false); | 280 EXPECT_EQ(defer_loading_, false); |
269 set_defer_loading(true); | 281 set_defer_loading(true); |
270 } | 282 } |
271 | 283 |
272 virtual void OnDownloadedData(int len) { | 284 virtual void OnDownloadedData(int len) { |
273 } | 285 } |
274 | 286 |
275 virtual void OnReceivedData(const char* data, int len) { | 287 virtual void OnReceivedData(const char* data, |
| 288 int data_length, |
| 289 int raw_data_length) { |
276 EXPECT_EQ(defer_loading_, false); | 290 EXPECT_EQ(defer_loading_, false); |
277 set_defer_loading(false); | 291 set_defer_loading(false); |
278 } | 292 } |
279 | 293 |
280 virtual void OnCompletedRequest(const net::URLRequestStatus& status, | 294 virtual void OnCompletedRequest(const net::URLRequestStatus& status, |
281 const std::string& security_info, | 295 const std::string& security_info, |
282 const base::Time& completion_time) { | 296 const base::Time& completion_time) { |
283 } | 297 } |
284 | 298 |
285 protected: | 299 protected: |
(...skipping 28 matching lines...) Expand all Loading... |
314 | 328 |
315 ResourceLoaderBridge* bridge = CreateBridge(); | 329 ResourceLoaderBridge* bridge = CreateBridge(); |
316 | 330 |
317 bridge->Start(this); | 331 bridge->Start(this); |
318 InitMessages(); | 332 InitMessages(); |
319 | 333 |
320 // Dispatch deferred messages. | 334 // Dispatch deferred messages. |
321 message_loop.RunAllPending(); | 335 message_loop.RunAllPending(); |
322 delete bridge; | 336 delete bridge; |
323 } | 337 } |
OLD | NEW |