Index: content/browser/loader/resource_scheduler_unittest.cc |
diff --git a/content/browser/loader/resource_scheduler_unittest.cc b/content/browser/loader/resource_scheduler_unittest.cc |
index 9474778d9f26d75542aa7af7c7940ea1840f0174..9f8605b4497c2e792a8e31841b2e3dfb4b908142 100644 |
--- a/content/browser/loader/resource_scheduler_unittest.cc |
+++ b/content/browser/loader/resource_scheduler_unittest.cc |
@@ -318,19 +318,41 @@ TEST_F(ResourceSchedulerTest, LimitedNumberOfDelayableRequestsInFlight) { |
EXPECT_TRUE(high->started()); |
const int kMaxNumDelayableRequestsPerClient = 10; // Should match the .cc. |
- ScopedVector<TestRequest> lows; |
- for (int i = 0; i < kMaxNumDelayableRequestsPerClient; ++i) { |
+ const int kMaxNumDelayableRequestsPerHost = 6; |
+ ScopedVector<TestRequest> lows_singlehost; |
+ // Queue up to the per-host limit (we subtract the current high-pri request). |
+ for (int i = 0; i < kMaxNumDelayableRequestsPerHost - 1; ++i) { |
string url = "http://host/low" + base::IntToString(i); |
- lows.push_back(NewRequest(url.c_str(), net::LOWEST)); |
- EXPECT_TRUE(lows[i]->started()); |
+ lows_singlehost.push_back(NewRequest(url.c_str(), net::LOWEST)); |
+ EXPECT_TRUE(lows_singlehost[i]->started()); |
} |
- scoped_ptr<TestRequest> last(NewRequest("http://host/last", net::LOWEST)); |
- EXPECT_FALSE(last->started()); |
+ scoped_ptr<TestRequest> second_last_singlehost(NewRequest("http://host/last", |
+ net::LOWEST)); |
+ scoped_ptr<TestRequest> last_singlehost(NewRequest("http://host/s_last", |
+ net::LOWEST)); |
+ |
+ EXPECT_FALSE(second_last_singlehost->started()); |
high.reset(); |
- EXPECT_FALSE(last->started()); |
- lows.erase(lows.begin()); |
- EXPECT_TRUE(last->started()); |
+ EXPECT_TRUE(second_last_singlehost->started()); |
+ EXPECT_FALSE(last_singlehost->started()); |
+ lows_singlehost.erase(lows_singlehost.begin()); |
+ EXPECT_TRUE(last_singlehost->started()); |
+ |
+ // Queue more requests from different hosts until we reach the total limit. |
+ int expected_slots_left = |
+ kMaxNumDelayableRequestsPerClient - kMaxNumDelayableRequestsPerHost; |
+ EXPECT_GT(expected_slots_left, 0); |
+ ScopedVector<TestRequest> lows_differenthosts; |
+ for (int i = 0; i < expected_slots_left; ++i) { |
+ string url = "http://host" + base::IntToString(i) + "/low"; |
+ lows_differenthosts.push_back(NewRequest(url.c_str(), net::LOWEST)); |
+ EXPECT_TRUE(lows_differenthosts[i]->started()); |
+ } |
+ |
+ scoped_ptr<TestRequest> last_differenthost(NewRequest("http://host_new/last", |
+ net::LOWEST)); |
+ EXPECT_FALSE(last_differenthost->started()); |
} |
TEST_F(ResourceSchedulerTest, RaisePriorityAndStart) { |
@@ -391,7 +413,7 @@ TEST_F(ResourceSchedulerTest, LowerPriority) { |
const int kNumFillerRequests = kMaxNumDelayableRequestsPerClient - 2; |
ScopedVector<TestRequest> lows; |
for (int i = 0; i < kNumFillerRequests; ++i) { |
- string url = "http://host/low" + base::IntToString(i); |
+ string url = "http://host" + base::IntToString(i) + "/low"; |
lows.push_back(NewRequest(url.c_str(), net::LOWEST)); |
} |