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

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

Issue 2895263003: Revert CLs landed in HttpStreamFactoryImpl to track down a crasher (Closed)
Patch Set: Revert "Fix SpdySessionKey for HTTP/2 alternative Jobs." 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);
31 SpdySessionDependencies session_deps(ProxyService::CreateDirect()); 28 SpdySessionDependencies session_deps(ProxyService::CreateDirect());
32 session_deps.socket_factory->AddSocketDataProvider(&data);
33 session_deps.socket_factory->AddSSLSocketDataProvider(ssl_data.get());
34
35 std::unique_ptr<HttpNetworkSession> session = 29 std::unique_ptr<HttpNetworkSession> session =
36 SpdySessionDependencies::SpdyCreateSession(&session_deps); 30 SpdySessionDependencies::SpdyCreateSession(&session_deps);
37 HttpStreamFactoryImpl* factory = 31 HttpStreamFactoryImpl* factory =
38 static_cast<HttpStreamFactoryImpl*>(session->http_stream_factory()); 32 static_cast<HttpStreamFactoryImpl*>(session->http_stream_factory());
39 MockHttpStreamRequestDelegate request_delegate; 33 MockHttpStreamRequestDelegate request_delegate;
40 TestJobFactory job_factory; 34 TestJobFactory job_factory;
41 HttpRequestInfo request_info; 35 HttpRequestInfo request_info;
42 request_info.url = GURL("http://www.example.com/");
43 auto job_controller = base::MakeUnique<HttpStreamFactoryImpl::JobController>( 36 auto job_controller = base::MakeUnique<HttpStreamFactoryImpl::JobController>(
44 factory, &request_delegate, session.get(), &job_factory, request_info, 37 factory, &request_delegate, session.get(), &job_factory, request_info,
45 /* is_preconnect = */ false, 38 /* is_preconnect = */ false,
46 /* enable_ip_based_pooling = */ true, 39 /* enable_ip_based_pooling = */ true,
47 /* enable_alternative_services = */ true, SSLConfig(), SSLConfig()); 40 /* enable_alternative_services = */ true);
48 HttpStreamFactoryImpl::JobController* job_controller_raw_ptr = 41 HttpStreamFactoryImpl::JobController* job_controller_raw_ptr =
49 job_controller.get(); 42 job_controller.get();
50 factory->job_controller_set_.insert(std::move(job_controller)); 43 factory->job_controller_set_.insert(std::move(job_controller));
51 44
52 std::unique_ptr<HttpStreamFactoryImpl::Request> request( 45 std::unique_ptr<HttpStreamFactoryImpl::Request> request(
53 job_controller_raw_ptr->Start( 46 job_controller_raw_ptr->Start(
54 &request_delegate, nullptr, NetLogWithSource(), 47 request_info, &request_delegate, nullptr, NetLogWithSource(),
55 HttpStreamRequest::HTTP_STREAM, DEFAULT_PRIORITY)); 48 HttpStreamRequest::HTTP_STREAM, DEFAULT_PRIORITY, SSLConfig(),
49 SSLConfig()));
56 EXPECT_TRUE(job_controller_raw_ptr->main_job()); 50 EXPECT_TRUE(job_controller_raw_ptr->main_job());
57 EXPECT_EQ(DEFAULT_PRIORITY, job_controller_raw_ptr->main_job()->priority()); 51 EXPECT_EQ(DEFAULT_PRIORITY, job_controller_raw_ptr->main_job()->priority());
58 52
59 request->SetPriority(MEDIUM); 53 request->SetPriority(MEDIUM);
60 EXPECT_EQ(MEDIUM, job_controller_raw_ptr->main_job()->priority()); 54 EXPECT_EQ(MEDIUM, job_controller_raw_ptr->main_job()->priority());
61 55
62 EXPECT_CALL(request_delegate, OnStreamFailed(_, _)).Times(1); 56 EXPECT_CALL(request_delegate, OnStreamFailed(_, _)).Times(1);
63 job_controller_raw_ptr->OnStreamFailed(job_factory.main_job(), ERR_FAILED, 57 job_controller_raw_ptr->OnStreamFailed(job_factory.main_job(), ERR_FAILED,
64 SSLConfig()); 58 SSLConfig());
65 59
66 request->SetPriority(IDLE); 60 request->SetPriority(IDLE);
67 EXPECT_EQ(IDLE, job_controller_raw_ptr->main_job()->priority()); 61 EXPECT_EQ(IDLE, job_controller_raw_ptr->main_job()->priority());
68 EXPECT_TRUE(data.AllReadDataConsumed());
69 EXPECT_TRUE(data.AllWriteDataConsumed());
70 } 62 }
71 } // namespace net 63 } // namespace net
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698