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

Side by Side Diff: net/http/http_stream_factory_impl_request_unittest.cc

Issue 2910463004: Revert "Revert CLs landed in HttpStreamFactoryImpl to track down a crasher" (Closed)
Patch Set: rebased Created 3 years, 6 months 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) 2013 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2013 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 "net/http/http_stream_factory_impl_request.h" 5 #include "net/http/http_stream_factory_impl_request.h"
6 6
7 #include <memory> 7 #include <memory>
8 #include <utility> 8 #include <utility>
9 9
10 #include "base/memory/ptr_util.h" 10 #include "base/memory/ptr_util.h"
11 #include "base/run_loop.h" 11 #include "base/run_loop.h"
12 #include "net/http/http_stream_factory_impl.h" 12 #include "net/http/http_stream_factory_impl.h"
13 #include "net/http/http_stream_factory_impl_job.h" 13 #include "net/http/http_stream_factory_impl_job.h"
14 #include "net/http/http_stream_factory_impl_job_controller.h" 14 #include "net/http/http_stream_factory_impl_job_controller.h"
15 #include "net/http/http_stream_factory_test_util.h" 15 #include "net/http/http_stream_factory_test_util.h"
16 #include "net/proxy/proxy_info.h" 16 #include "net/proxy/proxy_info.h"
17 #include "net/proxy/proxy_service.h" 17 #include "net/proxy/proxy_service.h"
18 #include "net/spdy/chromium/spdy_test_util_common.h" 18 #include "net/spdy/chromium/spdy_test_util_common.h"
19 #include "testing/gtest/include/gtest/gtest.h" 19 #include "testing/gtest/include/gtest/gtest.h"
20 20
21 using testing::_; 21 using testing::_;
22 22
23 namespace net { 23 namespace net {
24 24
25 class HttpStreamFactoryImplRequestTest : public ::testing::Test {}; 25 class HttpStreamFactoryImplRequestTest : public ::testing::Test {};
26 26
27 // Make sure that Request passes on its priority updates to its jobs. 27 // Make sure that Request passes on its priority updates to its jobs.
28 TEST_F(HttpStreamFactoryImplRequestTest, SetPriority) { 28 TEST_F(HttpStreamFactoryImplRequestTest, SetPriority) {
29 SequencedSocketData data(nullptr, 0, nullptr, 0);
30 data.set_connect_data(MockConnect(ASYNC, OK));
31 auto ssl_data = base::MakeUnique<SSLSocketDataProvider>(ASYNC, OK);
29 SpdySessionDependencies session_deps(ProxyService::CreateDirect()); 32 SpdySessionDependencies session_deps(ProxyService::CreateDirect());
33 session_deps.socket_factory->AddSocketDataProvider(&data);
34 session_deps.socket_factory->AddSSLSocketDataProvider(ssl_data.get());
35
30 std::unique_ptr<HttpNetworkSession> session = 36 std::unique_ptr<HttpNetworkSession> session =
31 SpdySessionDependencies::SpdyCreateSession(&session_deps); 37 SpdySessionDependencies::SpdyCreateSession(&session_deps);
32 HttpStreamFactoryImpl* factory = 38 HttpStreamFactoryImpl* factory =
33 static_cast<HttpStreamFactoryImpl*>(session->http_stream_factory()); 39 static_cast<HttpStreamFactoryImpl*>(session->http_stream_factory());
34 MockHttpStreamRequestDelegate request_delegate; 40 MockHttpStreamRequestDelegate request_delegate;
35 TestJobFactory job_factory; 41 TestJobFactory job_factory;
36 HttpRequestInfo request_info; 42 HttpRequestInfo request_info;
43 request_info.url = GURL("http://www.example.com/");
37 auto job_controller = base::MakeUnique<HttpStreamFactoryImpl::JobController>( 44 auto job_controller = base::MakeUnique<HttpStreamFactoryImpl::JobController>(
38 factory, &request_delegate, session.get(), &job_factory, request_info, 45 factory, &request_delegate, session.get(), &job_factory, request_info,
39 /* is_preconnect = */ false, 46 /* is_preconnect = */ false,
40 /* enable_ip_based_pooling = */ true, 47 /* enable_ip_based_pooling = */ true,
41 /* enable_alternative_services = */ true); 48 /* enable_alternative_services = */ true, SSLConfig(), SSLConfig());
42 HttpStreamFactoryImpl::JobController* job_controller_raw_ptr = 49 HttpStreamFactoryImpl::JobController* job_controller_raw_ptr =
43 job_controller.get(); 50 job_controller.get();
44 factory->job_controller_set_.insert(std::move(job_controller)); 51 factory->job_controller_set_.insert(std::move(job_controller));
45 52
46 std::unique_ptr<HttpStreamFactoryImpl::Request> request( 53 std::unique_ptr<HttpStreamFactoryImpl::Request> request(
47 job_controller_raw_ptr->Start( 54 job_controller_raw_ptr->Start(
48 request_info, &request_delegate, nullptr, NetLogWithSource(), 55 &request_delegate, nullptr, NetLogWithSource(),
49 HttpStreamRequest::HTTP_STREAM, DEFAULT_PRIORITY, SSLConfig(), 56 HttpStreamRequest::HTTP_STREAM, DEFAULT_PRIORITY));
50 SSLConfig()));
51 EXPECT_TRUE(job_controller_raw_ptr->main_job()); 57 EXPECT_TRUE(job_controller_raw_ptr->main_job());
52 EXPECT_EQ(DEFAULT_PRIORITY, job_controller_raw_ptr->main_job()->priority()); 58 EXPECT_EQ(DEFAULT_PRIORITY, job_controller_raw_ptr->main_job()->priority());
53 59
54 request->SetPriority(MEDIUM); 60 request->SetPriority(MEDIUM);
55 EXPECT_EQ(MEDIUM, job_controller_raw_ptr->main_job()->priority()); 61 EXPECT_EQ(MEDIUM, job_controller_raw_ptr->main_job()->priority());
56 62
57 EXPECT_CALL(request_delegate, OnStreamFailed(_, _)).Times(1); 63 EXPECT_CALL(request_delegate, OnStreamFailed(_, _)).Times(1);
58 job_controller_raw_ptr->OnStreamFailed(job_factory.main_job(), ERR_FAILED, 64 job_controller_raw_ptr->OnStreamFailed(job_factory.main_job(), ERR_FAILED,
59 SSLConfig()); 65 SSLConfig());
60 66
61 request->SetPriority(IDLE); 67 request->SetPriority(IDLE);
62 EXPECT_EQ(IDLE, job_controller_raw_ptr->main_job()->priority()); 68 EXPECT_EQ(IDLE, job_controller_raw_ptr->main_job()->priority());
69 EXPECT_TRUE(data.AllReadDataConsumed());
70 EXPECT_TRUE(data.AllWriteDataConsumed());
63 } 71 }
64 } // namespace net 72 } // namespace net
OLDNEW
« no previous file with comments | « net/http/http_stream_factory_impl_job_controller_unittest.cc ('k') | net/http/http_stream_factory_impl_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698