| 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 e677f8f12d8c6d7297c4a081b29764e53f032ee5..7fba2a54306d94a4b50fa1a50f5df27f6018e07d 100644
|
| --- a/content/browser/loader/resource_scheduler_unittest.cc
|
| +++ b/content/browser/loader/resource_scheduler_unittest.cc
|
| @@ -502,6 +502,37 @@ TEST_F(ResourceSchedulerTest, SpdyProxySchedulesImmediately) {
|
| EXPECT_TRUE(after->started());
|
| }
|
|
|
| +TEST_F(ResourceSchedulerTest, NewSpdyHostInDelayableRequests) {
|
| + scheduler_.OnWillInsertBody(kChildId, kRouteId);
|
| + const int kMaxNumDelayableRequestsPerClient = 10; // Should match the .cc.
|
| +
|
| + scoped_ptr<TestRequest> low1_spdy(
|
| + NewRequest("http://spdyhost1:8080/low", net::LOWEST));
|
| + // Cancel a request after we learn the server supports SPDY.
|
| + ScopedVector<TestRequest> lows;
|
| + for (int i = 0; i < kMaxNumDelayableRequestsPerClient - 1; ++i) {
|
| + string url = "http://host" + base::IntToString(i) + "/low";
|
| + lows.push_back(NewRequest(url.c_str(), net::LOWEST));
|
| + }
|
| + scoped_ptr<TestRequest> low1(NewRequest("http://host/low", net::LOWEST));
|
| + EXPECT_FALSE(low1->started());
|
| + http_server_properties_.SetSupportsSpdy(
|
| + net::HostPortPair("spdyhost1", 8080), true);
|
| + low1_spdy.reset();
|
| + EXPECT_TRUE(low1->started());
|
| +
|
| + low1.reset();
|
| + scoped_ptr<TestRequest> low2_spdy(
|
| + NewRequest("http://spdyhost2:8080/low", net::IDLE));
|
| + // Reprioritize a request after we learn the server supports SPDY.
|
| + EXPECT_TRUE(low2_spdy->started());
|
| + http_server_properties_.SetSupportsSpdy(
|
| + net::HostPortPair("spdyhost2", 8080), true);
|
| + ChangeRequestPriority(low2_spdy.get(), net::LOWEST);
|
| + scoped_ptr<TestRequest> low2(NewRequest("http://host/low", net::LOWEST));
|
| + EXPECT_TRUE(low2->started());
|
| +}
|
| +
|
| } // unnamed namespace
|
|
|
| } // namespace content
|
|
|