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

Side by Side Diff: content/browser/loader/resource_scheduler_unittest.cc

Issue 763833003: Remove using namespace in net/quic/quic_stream_sequencer.h (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 6 years 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 (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 "content/browser/loader/resource_scheduler.h" 5 #include "content/browser/loader/resource_scheduler.h"
6 6
7 #include <string>
8
7 #include "base/memory/scoped_vector.h" 9 #include "base/memory/scoped_vector.h"
8 #include "base/message_loop/message_loop.h" 10 #include "base/message_loop/message_loop.h"
9 #include "base/run_loop.h" 11 #include "base/run_loop.h"
10 #include "base/strings/string_number_conversions.h" 12 #include "base/strings/string_number_conversions.h"
11 #include "base/timer/mock_timer.h" 13 #include "base/timer/mock_timer.h"
12 #include "base/timer/timer.h" 14 #include "base/timer/timer.h"
13 #include "content/browser/browser_thread_impl.h" 15 #include "content/browser/browser_thread_impl.h"
14 #include "content/browser/loader/resource_dispatcher_host_impl.h" 16 #include "content/browser/loader/resource_dispatcher_host_impl.h"
15 #include "content/browser/loader/resource_message_filter.h" 17 #include "content/browser/loader/resource_message_filter.h"
16 #include "content/browser/loader/resource_request_info_impl.h" 18 #include "content/browser/loader/resource_request_info_impl.h"
(...skipping 404 matching lines...) Expand 10 before | Expand all | Expand 10 after
421 423
422 // Throw in one high priority request to make sure that's not a factor. 424 // Throw in one high priority request to make sure that's not a factor.
423 scoped_ptr<TestRequest> high(NewRequest("http://host/high", net::HIGHEST)); 425 scoped_ptr<TestRequest> high(NewRequest("http://host/high", net::HIGHEST));
424 EXPECT_TRUE(high->started()); 426 EXPECT_TRUE(high->started());
425 427
426 const int kMaxNumDelayableRequestsPerClient = 10; // Should match the .cc. 428 const int kMaxNumDelayableRequestsPerClient = 10; // Should match the .cc.
427 const int kMaxNumDelayableRequestsPerHost = 6; 429 const int kMaxNumDelayableRequestsPerHost = 6;
428 ScopedVector<TestRequest> lows_singlehost; 430 ScopedVector<TestRequest> lows_singlehost;
429 // Queue up to the per-host limit (we subtract the current high-pri request). 431 // Queue up to the per-host limit (we subtract the current high-pri request).
430 for (int i = 0; i < kMaxNumDelayableRequestsPerHost - 1; ++i) { 432 for (int i = 0; i < kMaxNumDelayableRequestsPerHost - 1; ++i) {
431 string url = "http://host/low" + base::IntToString(i); 433 std::string url = "http://host/low" + base::IntToString(i);
432 lows_singlehost.push_back(NewRequest(url.c_str(), net::LOWEST)); 434 lows_singlehost.push_back(NewRequest(url.c_str(), net::LOWEST));
433 EXPECT_TRUE(lows_singlehost[i]->started()); 435 EXPECT_TRUE(lows_singlehost[i]->started());
434 } 436 }
435 437
436 scoped_ptr<TestRequest> second_last_singlehost(NewRequest("http://host/last", 438 scoped_ptr<TestRequest> second_last_singlehost(NewRequest("http://host/last",
437 net::LOWEST)); 439 net::LOWEST));
438 scoped_ptr<TestRequest> last_singlehost(NewRequest("http://host/s_last", 440 scoped_ptr<TestRequest> last_singlehost(NewRequest("http://host/s_last",
439 net::LOWEST)); 441 net::LOWEST));
440 442
441 EXPECT_FALSE(second_last_singlehost->started()); 443 EXPECT_FALSE(second_last_singlehost->started());
442 high.reset(); 444 high.reset();
443 EXPECT_TRUE(second_last_singlehost->started()); 445 EXPECT_TRUE(second_last_singlehost->started());
444 EXPECT_FALSE(last_singlehost->started()); 446 EXPECT_FALSE(last_singlehost->started());
445 lows_singlehost.erase(lows_singlehost.begin()); 447 lows_singlehost.erase(lows_singlehost.begin());
446 EXPECT_TRUE(last_singlehost->started()); 448 EXPECT_TRUE(last_singlehost->started());
447 449
448 // Queue more requests from different hosts until we reach the total limit. 450 // Queue more requests from different hosts until we reach the total limit.
449 int expected_slots_left = 451 int expected_slots_left =
450 kMaxNumDelayableRequestsPerClient - kMaxNumDelayableRequestsPerHost; 452 kMaxNumDelayableRequestsPerClient - kMaxNumDelayableRequestsPerHost;
451 EXPECT_GT(expected_slots_left, 0); 453 EXPECT_GT(expected_slots_left, 0);
452 ScopedVector<TestRequest> lows_differenthosts; 454 ScopedVector<TestRequest> lows_differenthosts;
453 for (int i = 0; i < expected_slots_left; ++i) { 455 for (int i = 0; i < expected_slots_left; ++i) {
454 string url = "http://host" + base::IntToString(i) + "/low"; 456 std::string url = "http://host" + base::IntToString(i) + "/low";
455 lows_differenthosts.push_back(NewRequest(url.c_str(), net::LOWEST)); 457 lows_differenthosts.push_back(NewRequest(url.c_str(), net::LOWEST));
456 EXPECT_TRUE(lows_differenthosts[i]->started()); 458 EXPECT_TRUE(lows_differenthosts[i]->started());
457 } 459 }
458 460
459 scoped_ptr<TestRequest> last_differenthost(NewRequest("http://host_new/last", 461 scoped_ptr<TestRequest> last_differenthost(NewRequest("http://host_new/last",
460 net::LOWEST)); 462 net::LOWEST));
461 EXPECT_FALSE(last_differenthost->started()); 463 EXPECT_FALSE(last_differenthost->started());
462 } 464 }
463 465
464 TEST_F(ResourceSchedulerTest, RaisePriorityAndStart) { 466 TEST_F(ResourceSchedulerTest, RaisePriorityAndStart) {
(...skipping 18 matching lines...) Expand all
483 EXPECT_FALSE(request->started()); 485 EXPECT_FALSE(request->started());
484 EXPECT_FALSE(idle->started()); 486 EXPECT_FALSE(idle->started());
485 487
486 ChangeRequestPriority(request.get(), net::LOWEST); 488 ChangeRequestPriority(request.get(), net::LOWEST);
487 EXPECT_FALSE(request->started()); 489 EXPECT_FALSE(request->started());
488 EXPECT_FALSE(idle->started()); 490 EXPECT_FALSE(idle->started());
489 491
490 const int kMaxNumDelayableRequestsPerClient = 10; // Should match the .cc. 492 const int kMaxNumDelayableRequestsPerClient = 10; // Should match the .cc.
491 ScopedVector<TestRequest> lows; 493 ScopedVector<TestRequest> lows;
492 for (int i = 0; i < kMaxNumDelayableRequestsPerClient - 1; ++i) { 494 for (int i = 0; i < kMaxNumDelayableRequestsPerClient - 1; ++i) {
493 string url = "http://host/low" + base::IntToString(i); 495 std::string url = "http://host/low" + base::IntToString(i);
494 lows.push_back(NewRequest(url.c_str(), net::LOWEST)); 496 lows.push_back(NewRequest(url.c_str(), net::LOWEST));
495 } 497 }
496 498
497 scheduler_.OnWillInsertBody(kChildId, kRouteId); 499 scheduler_.OnWillInsertBody(kChildId, kRouteId);
498 high.reset(); 500 high.reset();
499 501
500 EXPECT_TRUE(request->started()); 502 EXPECT_TRUE(request->started());
501 EXPECT_FALSE(idle->started()); 503 EXPECT_FALSE(idle->started());
502 } 504 }
503 505
(...skipping 10 matching lines...) Expand all
514 ChangeRequestPriority(request.get(), net::IDLE); 516 ChangeRequestPriority(request.get(), net::IDLE);
515 EXPECT_FALSE(request->started()); 517 EXPECT_FALSE(request->started());
516 EXPECT_FALSE(idle->started()); 518 EXPECT_FALSE(idle->started());
517 519
518 const int kMaxNumDelayableRequestsPerClient = 10; // Should match the .cc. 520 const int kMaxNumDelayableRequestsPerClient = 10; // Should match the .cc.
519 // 2 fewer filler requests: 1 for the "low" dummy at the start, and 1 for the 521 // 2 fewer filler requests: 1 for the "low" dummy at the start, and 1 for the
520 // one at the end, which will be tested. 522 // one at the end, which will be tested.
521 const int kNumFillerRequests = kMaxNumDelayableRequestsPerClient - 2; 523 const int kNumFillerRequests = kMaxNumDelayableRequestsPerClient - 2;
522 ScopedVector<TestRequest> lows; 524 ScopedVector<TestRequest> lows;
523 for (int i = 0; i < kNumFillerRequests; ++i) { 525 for (int i = 0; i < kNumFillerRequests; ++i) {
524 string url = "http://host" + base::IntToString(i) + "/low"; 526 std::string url = "http://host" + base::IntToString(i) + "/low";
525 lows.push_back(NewRequest(url.c_str(), net::LOWEST)); 527 lows.push_back(NewRequest(url.c_str(), net::LOWEST));
526 } 528 }
527 529
528 scheduler_.OnWillInsertBody(kChildId, kRouteId); 530 scheduler_.OnWillInsertBody(kChildId, kRouteId);
529 high.reset(); 531 high.reset();
530 532
531 EXPECT_FALSE(request->started()); 533 EXPECT_FALSE(request->started());
532 EXPECT_TRUE(idle->started()); 534 EXPECT_TRUE(idle->started());
533 } 535 }
534 536
535 TEST_F(ResourceSchedulerTest, ReprioritizedRequestGoesToBackOfQueue) { 537 TEST_F(ResourceSchedulerTest, ReprioritizedRequestGoesToBackOfQueue) {
536 // Dummies to enforce scheduling. 538 // Dummies to enforce scheduling.
537 scoped_ptr<TestRequest> high(NewRequest("http://host/high", net::HIGHEST)); 539 scoped_ptr<TestRequest> high(NewRequest("http://host/high", net::HIGHEST));
538 scoped_ptr<TestRequest> low(NewRequest("http://host/low", net::LOWEST)); 540 scoped_ptr<TestRequest> low(NewRequest("http://host/low", net::LOWEST));
539 541
540 scoped_ptr<TestRequest> request(NewRequest("http://host/req", net::LOWEST)); 542 scoped_ptr<TestRequest> request(NewRequest("http://host/req", net::LOWEST));
541 scoped_ptr<TestRequest> idle(NewRequest("http://host/idle", net::IDLE)); 543 scoped_ptr<TestRequest> idle(NewRequest("http://host/idle", net::IDLE));
542 EXPECT_FALSE(request->started()); 544 EXPECT_FALSE(request->started());
543 EXPECT_FALSE(idle->started()); 545 EXPECT_FALSE(idle->started());
544 546
545 const int kMaxNumDelayableRequestsPerClient = 10; // Should match the .cc. 547 const int kMaxNumDelayableRequestsPerClient = 10; // Should match the .cc.
546 ScopedVector<TestRequest> lows; 548 ScopedVector<TestRequest> lows;
547 for (int i = 0; i < kMaxNumDelayableRequestsPerClient; ++i) { 549 for (int i = 0; i < kMaxNumDelayableRequestsPerClient; ++i) {
548 string url = "http://host/low" + base::IntToString(i); 550 std::string url = "http://host/low" + base::IntToString(i);
549 lows.push_back(NewRequest(url.c_str(), net::LOWEST)); 551 lows.push_back(NewRequest(url.c_str(), net::LOWEST));
550 } 552 }
551 553
552 ChangeRequestPriority(request.get(), net::IDLE); 554 ChangeRequestPriority(request.get(), net::IDLE);
553 EXPECT_FALSE(request->started()); 555 EXPECT_FALSE(request->started());
554 EXPECT_FALSE(idle->started()); 556 EXPECT_FALSE(idle->started());
555 557
556 ChangeRequestPriority(request.get(), net::LOWEST); 558 ChangeRequestPriority(request.get(), net::LOWEST);
557 EXPECT_FALSE(request->started()); 559 EXPECT_FALSE(request->started());
558 EXPECT_FALSE(idle->started()); 560 EXPECT_FALSE(idle->started());
559 561
560 scheduler_.OnWillInsertBody(kChildId, kRouteId); 562 scheduler_.OnWillInsertBody(kChildId, kRouteId);
561 EXPECT_FALSE(request->started()); 563 EXPECT_FALSE(request->started());
562 EXPECT_FALSE(idle->started()); 564 EXPECT_FALSE(idle->started());
563 } 565 }
564 566
565 TEST_F(ResourceSchedulerTest, HigherIntraPriorityGoesToFrontOfQueue) { 567 TEST_F(ResourceSchedulerTest, HigherIntraPriorityGoesToFrontOfQueue) {
566 // Dummies to enforce scheduling. 568 // Dummies to enforce scheduling.
567 scoped_ptr<TestRequest> high(NewRequest("http://host/high", net::HIGHEST)); 569 scoped_ptr<TestRequest> high(NewRequest("http://host/high", net::HIGHEST));
568 scoped_ptr<TestRequest> low(NewRequest("http://host/low", net::LOWEST)); 570 scoped_ptr<TestRequest> low(NewRequest("http://host/low", net::LOWEST));
569 571
570 const int kMaxNumDelayableRequestsPerClient = 10; // Should match the .cc. 572 const int kMaxNumDelayableRequestsPerClient = 10; // Should match the .cc.
571 ScopedVector<TestRequest> lows; 573 ScopedVector<TestRequest> lows;
572 for (int i = 0; i < kMaxNumDelayableRequestsPerClient; ++i) { 574 for (int i = 0; i < kMaxNumDelayableRequestsPerClient; ++i) {
573 string url = "http://host/low" + base::IntToString(i); 575 std::string url = "http://host/low" + base::IntToString(i);
574 lows.push_back(NewRequest(url.c_str(), net::IDLE)); 576 lows.push_back(NewRequest(url.c_str(), net::IDLE));
575 } 577 }
576 578
577 scoped_ptr<TestRequest> request(NewRequest("http://host/req", net::IDLE)); 579 scoped_ptr<TestRequest> request(NewRequest("http://host/req", net::IDLE));
578 EXPECT_FALSE(request->started()); 580 EXPECT_FALSE(request->started());
579 581
580 ChangeRequestPriority(request.get(), net::IDLE, 1); 582 ChangeRequestPriority(request.get(), net::IDLE, 1);
581 EXPECT_FALSE(request->started()); 583 EXPECT_FALSE(request->started());
582 584
583 scheduler_.OnWillInsertBody(kChildId, kRouteId); 585 scheduler_.OnWillInsertBody(kChildId, kRouteId);
(...skipping 59 matching lines...) Expand 10 before | Expand all | Expand 10 after
643 645
644 TEST_F(ResourceSchedulerTest, NewSpdyHostInDelayableRequests) { 646 TEST_F(ResourceSchedulerTest, NewSpdyHostInDelayableRequests) {
645 scheduler_.OnWillInsertBody(kChildId, kRouteId); 647 scheduler_.OnWillInsertBody(kChildId, kRouteId);
646 const int kMaxNumDelayableRequestsPerClient = 10; // Should match the .cc. 648 const int kMaxNumDelayableRequestsPerClient = 10; // Should match the .cc.
647 649
648 scoped_ptr<TestRequest> low1_spdy( 650 scoped_ptr<TestRequest> low1_spdy(
649 NewRequest("http://spdyhost1:8080/low", net::LOWEST)); 651 NewRequest("http://spdyhost1:8080/low", net::LOWEST));
650 // Cancel a request after we learn the server supports SPDY. 652 // Cancel a request after we learn the server supports SPDY.
651 ScopedVector<TestRequest> lows; 653 ScopedVector<TestRequest> lows;
652 for (int i = 0; i < kMaxNumDelayableRequestsPerClient - 1; ++i) { 654 for (int i = 0; i < kMaxNumDelayableRequestsPerClient - 1; ++i) {
653 string url = "http://host" + base::IntToString(i) + "/low"; 655 std::string url = "http://host" + base::IntToString(i) + "/low";
654 lows.push_back(NewRequest(url.c_str(), net::LOWEST)); 656 lows.push_back(NewRequest(url.c_str(), net::LOWEST));
655 } 657 }
656 scoped_ptr<TestRequest> low1(NewRequest("http://host/low", net::LOWEST)); 658 scoped_ptr<TestRequest> low1(NewRequest("http://host/low", net::LOWEST));
657 EXPECT_FALSE(low1->started()); 659 EXPECT_FALSE(low1->started());
658 http_server_properties_.SetSupportsSpdy( 660 http_server_properties_.SetSupportsSpdy(
659 net::HostPortPair("spdyhost1", 8080), true); 661 net::HostPortPair("spdyhost1", 8080), true);
660 low1_spdy.reset(); 662 low1_spdy.reset();
661 EXPECT_TRUE(low1->started()); 663 EXPECT_TRUE(low1->started());
662 664
663 low1.reset(); 665 low1.reset();
(...skipping 1541 matching lines...) Expand 10 before | Expand all | Expand 10 after
2205 web_contents_2.reset(); 2207 web_contents_2.reset();
2206 base::RunLoop().RunUntilIdle(); 2208 base::RunLoop().RunUntilIdle();
2207 2209
2208 browser_context.reset(); 2210 browser_context.reset();
2209 render_process_host_factory.reset(); 2211 render_process_host_factory.reset();
2210 } 2212 }
2211 2213
2212 } // unnamed namespace 2214 } // unnamed namespace
2213 2215
2214 } // namespace content 2216 } // namespace content
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698