OLD | NEW |
---|---|
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 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 325 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
336 ResourceLoaderBridge* bridge = CreateBridge(); | 336 ResourceLoaderBridge* bridge = CreateBridge(); |
337 | 337 |
338 bridge->Start(this); | 338 bridge->Start(this); |
339 InitMessages(); | 339 InitMessages(); |
340 | 340 |
341 // Dispatch deferred messages. | 341 // Dispatch deferred messages. |
342 message_loop.RunAllPending(); | 342 message_loop.RunAllPending(); |
343 delete bridge; | 343 delete bridge; |
344 } | 344 } |
345 | 345 |
346 class TimeConversionTest : public ResourceDispatcherTest, | |
347 public ResourceLoaderBridge::Peer { | |
348 public: | |
349 virtual bool Send(IPC::Message* msg) { | |
350 delete msg; | |
351 return true; | |
352 } | |
353 | |
354 void PerformTest(const ResourceResponseHead& response_head) { | |
355 scoped_ptr<ResourceLoaderBridge> bridge(CreateBridge()); | |
356 bridge->Start(this); | |
357 | |
358 IPC::Message* response_message = | |
darin (slow to review)
2012/08/02 04:53:15
nit: no need to heap allocate the IPC message :)
James Simonsen
2012/08/02 19:02:58
Done.
| |
359 new ResourceMsg_ReceivedResponse(0, 0, response_head); | |
360 | |
361 dispatcher_->OnMessageReceived(*response_message); | |
362 | |
363 delete response_message; | |
364 } | |
365 | |
366 // ResourceLoaderBridge::Peer methods. | |
367 virtual void OnUploadProgress(uint64 position, uint64 size) { | |
368 } | |
darin (slow to review)
2012/08/02 04:53:15
nit: do these need OVERRIDE?
James Simonsen
2012/08/02 19:02:58
Done.
| |
369 | |
370 virtual bool OnReceivedRedirect( | |
371 const GURL& new_url, | |
372 const ResourceResponseInfo& info, | |
373 bool* has_new_first_party_for_cookies, | |
374 GURL* new_first_party_for_cookies) { | |
375 return true; | |
376 } | |
377 | |
378 virtual void OnReceivedResponse(const ResourceResponseInfo& info) { | |
379 response_info_ = info; | |
380 } | |
381 | |
382 virtual void OnDownloadedData(int len) { | |
383 } | |
384 | |
385 virtual void OnReceivedData(const char* data, | |
386 int data_length, | |
387 int encoded_data_length) { | |
388 } | |
389 | |
390 virtual void OnCompletedRequest(const net::URLRequestStatus& status, | |
391 const std::string& security_info, | |
392 const base::TimeTicks& completion_time) { | |
393 } | |
394 | |
395 const ResourceResponseInfo& response_info() const { return response_info_; } | |
396 | |
397 private: | |
398 ResourceResponseInfo response_info_; | |
399 }; | |
400 | |
401 TEST_F(TimeConversionTest, ProperlyInitialized) { | |
402 ResourceResponseHead response_head; | |
403 response_head.status.set_status(net::URLRequestStatus::SUCCESS); | |
404 response_head.request_start = base::TimeTicks::FromInternalValue(5); | |
405 response_head.response_start = base::TimeTicks::FromInternalValue(15); | |
406 response_head.load_timing.base_time = base::Time::Now(); | |
407 response_head.load_timing.base_ticks = base::TimeTicks::FromInternalValue(10); | |
408 response_head.load_timing.dns_start = -1; | |
409 response_head.load_timing.connect_start = 3; | |
410 | |
411 PerformTest(response_head); | |
412 | |
413 EXPECT_LT(0, response_info().load_timing.base_ticks.ToInternalValue()); | |
414 EXPECT_EQ(-1, response_info().load_timing.dns_start); | |
415 EXPECT_LE(0, response_info().load_timing.connect_start); | |
416 } | |
417 | |
418 TEST_F(TimeConversionTest, PartiallyInitialized) { | |
419 ResourceResponseHead response_head; | |
420 response_head.status.set_status(net::URLRequestStatus::SUCCESS); | |
421 response_head.request_start = base::TimeTicks::FromInternalValue(5); | |
422 response_head.response_start = base::TimeTicks::FromInternalValue(15); | |
423 | |
424 PerformTest(response_head); | |
425 | |
426 EXPECT_EQ(0, response_info().load_timing.base_ticks.ToInternalValue()); | |
427 EXPECT_EQ(-1, response_info().load_timing.dns_start); | |
428 } | |
429 | |
430 TEST_F(TimeConversionTest, NotInitialized) { | |
431 ResourceResponseHead response_head; | |
432 response_head.status.set_status(net::URLRequestStatus::SUCCESS); | |
433 | |
434 PerformTest(response_head); | |
435 | |
436 EXPECT_EQ(0, response_info().load_timing.base_ticks.ToInternalValue()); | |
437 EXPECT_EQ(-1, response_info().load_timing.dns_start); | |
438 } | |
439 | |
346 } // namespace content | 440 } // namespace content |
OLD | NEW |