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

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

Issue 2814633003: Extract Proxy Resolution out of HttpStreamFactoryImpl::Job (Closed)
Patch Set: add one more test for ReconsiderProxyAfterError Created 3 years, 7 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 8
9 #include "base/memory/ptr_util.h" 9 #include "base/memory/ptr_util.h"
10 #include "base/run_loop.h" 10 #include "base/run_loop.h"
11 #include "net/http/http_stream_factory_impl.h" 11 #include "net/http/http_stream_factory_impl.h"
12 #include "net/http/http_stream_factory_impl_job.h" 12 #include "net/http/http_stream_factory_impl_job.h"
13 #include "net/http/http_stream_factory_impl_job_controller.h" 13 #include "net/http/http_stream_factory_impl_job_controller.h"
14 #include "net/http/http_stream_factory_test_util.h" 14 #include "net/http/http_stream_factory_test_util.h"
15 #include "net/proxy/proxy_info.h" 15 #include "net/proxy/proxy_info.h"
16 #include "net/proxy/proxy_service.h" 16 #include "net/proxy/proxy_service.h"
17 #include "net/spdy/chromium/spdy_test_util_common.h" 17 #include "net/spdy/chromium/spdy_test_util_common.h"
18 #include "testing/gtest/include/gtest/gtest.h" 18 #include "testing/gtest/include/gtest/gtest.h"
19 19
20 using testing::_; 20 using testing::_;
21 21
22 namespace net { 22 namespace net {
23 23
24 class HttpStreamFactoryImplRequestTest : public ::testing::Test {}; 24 class HttpStreamFactoryImplRequestTest : public ::testing::Test {};
25 25
26 // Make sure that Request passes on its priority updates to its jobs. 26 // Make sure that Request passes on its priority updates to its jobs.
27 TEST_F(HttpStreamFactoryImplRequestTest, SetPriority) { 27 TEST_F(HttpStreamFactoryImplRequestTest, SetPriority) {
28 SequencedSocketData data(nullptr, 0, nullptr, 0);
29 data.set_connect_data(MockConnect(ASYNC, OK));
30 auto ssl_data = base::MakeUnique<SSLSocketDataProvider>(ASYNC, OK);
28 SpdySessionDependencies session_deps(ProxyService::CreateDirect()); 31 SpdySessionDependencies session_deps(ProxyService::CreateDirect());
32 session_deps.socket_factory->AddSocketDataProvider(&data);
33 session_deps.socket_factory->AddSSLSocketDataProvider(ssl_data.get());
34
29 std::unique_ptr<HttpNetworkSession> session = 35 std::unique_ptr<HttpNetworkSession> session =
30 SpdySessionDependencies::SpdyCreateSession(&session_deps); 36 SpdySessionDependencies::SpdyCreateSession(&session_deps);
31 HttpStreamFactoryImpl* factory = 37 HttpStreamFactoryImpl* factory =
32 static_cast<HttpStreamFactoryImpl*>(session->http_stream_factory()); 38 static_cast<HttpStreamFactoryImpl*>(session->http_stream_factory());
33 MockHttpStreamRequestDelegate request_delegate; 39 MockHttpStreamRequestDelegate request_delegate;
34 TestJobFactory job_factory; 40 TestJobFactory job_factory;
35 HttpRequestInfo request_info; 41 HttpRequestInfo request_info;
42 request_info.url = GURL("http://www.example.com/");
36 auto job_controller = base::MakeUnique<HttpStreamFactoryImpl::JobController>( 43 auto job_controller = base::MakeUnique<HttpStreamFactoryImpl::JobController>(
37 factory, &request_delegate, session.get(), &job_factory, request_info, 44 factory, &request_delegate, session.get(), &job_factory, request_info,
38 /* is_preconnect = */ false, 45 /* is_preconnect = */ false,
39 /* enable_ip_based_pooling = */ true, 46 /* enable_ip_based_pooling = */ true,
40 /* enable_alternative_services = */ true); 47 /* enable_alternative_services = */ true, SSLConfig(), SSLConfig());
41 HttpStreamFactoryImpl::JobController* job_controller_raw_ptr = 48 HttpStreamFactoryImpl::JobController* job_controller_raw_ptr =
42 job_controller.get(); 49 job_controller.get();
43 factory->job_controller_set_.insert(std::move(job_controller)); 50 factory->job_controller_set_.insert(std::move(job_controller));
44 51
45 std::unique_ptr<HttpStreamFactoryImpl::Request> request( 52 std::unique_ptr<HttpStreamFactoryImpl::Request> request(
46 job_controller_raw_ptr->Start( 53 job_controller_raw_ptr->Start(
47 request_info, &request_delegate, nullptr, NetLogWithSource(), 54 &request_delegate, nullptr, NetLogWithSource(),
48 HttpStreamRequest::HTTP_STREAM, DEFAULT_PRIORITY, SSLConfig(), 55 HttpStreamRequest::HTTP_STREAM, DEFAULT_PRIORITY));
49 SSLConfig()));
50 EXPECT_TRUE(job_controller_raw_ptr->main_job()); 56 EXPECT_TRUE(job_controller_raw_ptr->main_job());
51 EXPECT_EQ(DEFAULT_PRIORITY, job_controller_raw_ptr->main_job()->priority()); 57 EXPECT_EQ(DEFAULT_PRIORITY, job_controller_raw_ptr->main_job()->priority());
52 58
53 request->SetPriority(MEDIUM); 59 request->SetPriority(MEDIUM);
54 EXPECT_EQ(MEDIUM, job_controller_raw_ptr->main_job()->priority()); 60 EXPECT_EQ(MEDIUM, job_controller_raw_ptr->main_job()->priority());
55 61
56 EXPECT_CALL(request_delegate, OnStreamFailed(_, _)).Times(1); 62 EXPECT_CALL(request_delegate, OnStreamFailed(_, _)).Times(1);
57 job_controller_raw_ptr->OnStreamFailed(job_factory.main_job(), ERR_FAILED, 63 job_controller_raw_ptr->OnStreamFailed(job_factory.main_job(), ERR_FAILED,
58 SSLConfig()); 64 SSLConfig());
59 65
60 request->SetPriority(IDLE); 66 request->SetPriority(IDLE);
61 EXPECT_EQ(IDLE, job_controller_raw_ptr->main_job()->priority()); 67 EXPECT_EQ(IDLE, job_controller_raw_ptr->main_job()->priority());
68 EXPECT_TRUE(data.AllReadDataConsumed());
69 EXPECT_TRUE(data.AllWriteDataConsumed());
62 } 70 }
63 } // namespace net 71 } // namespace net
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698