| 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 ea1eee17edf49fe31cfef1e12f9195432c46ffad..f205da0faa69ffe6e0e754607c37dfabbc3c4cb8 100644
|
| --- a/content/browser/loader/resource_scheduler_unittest.cc
|
| +++ b/content/browser/loader/resource_scheduler_unittest.cc
|
| @@ -190,13 +190,15 @@ class ResourceSchedulerTest : public testing::Test {
|
| }
|
|
|
| void ChangeRequestPriority(TestRequest* request,
|
| - net::RequestPriority new_priority) {
|
| + net::RequestPriority new_priority,
|
| + int intra_priority = 0) {
|
| scoped_refptr<FakeResourceMessageFilter> filter(
|
| new FakeResourceMessageFilter(kChildId));
|
| const ResourceRequestInfoImpl* info = ResourceRequestInfoImpl::ForRequest(
|
| request->url_request());
|
| const GlobalRequestID& id = info->GetGlobalRequestID();
|
| - ResourceHostMsg_DidChangePriority msg(id.request_id, new_priority);
|
| + ResourceHostMsg_DidChangePriority msg(id.request_id, new_priority,
|
| + intra_priority);
|
| bool ok = false;
|
| rdh_.OnMessageReceived(msg, filter.get(), &ok);
|
| EXPECT_TRUE(ok);
|
| @@ -455,6 +457,28 @@ TEST_F(ResourceSchedulerTest, ReprioritizedRequestGoesToBackOfQueue) {
|
| EXPECT_FALSE(idle->started());
|
| }
|
|
|
| +TEST_F(ResourceSchedulerTest, HigherIntraPriorityGoesToFrontOfQueue) {
|
| + // Dummies to enforce scheduling.
|
| + scoped_ptr<TestRequest> high(NewRequest("http://host/high", net::HIGHEST));
|
| + scoped_ptr<TestRequest> low(NewRequest("http://host/high", net::LOWEST));
|
| +
|
| + const int kMaxNumDelayableRequestsPerClient = 10; // Should match the .cc.
|
| + ScopedVector<TestRequest> lows;
|
| + for (int i = 0; i < kMaxNumDelayableRequestsPerClient; ++i) {
|
| + string url = "http://host/low" + base::IntToString(i);
|
| + lows.push_back(NewRequest(url.c_str(), net::IDLE));
|
| + }
|
| +
|
| + scoped_ptr<TestRequest> request(NewRequest("http://host/req", net::IDLE));
|
| + EXPECT_FALSE(request->started());
|
| +
|
| + ChangeRequestPriority(request.get(), net::IDLE, 1);
|
| + EXPECT_FALSE(request->started());
|
| +
|
| + scheduler_.OnWillInsertBody(kChildId, kRouteId);
|
| + EXPECT_TRUE(request->started());
|
| +}
|
| +
|
| TEST_F(ResourceSchedulerTest, NonHTTPSchedulesImmediately) {
|
| // Dummies to enforce scheduling.
|
| scoped_ptr<TestRequest> high(NewRequest("http://host/high", net::HIGHEST));
|
|
|