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

Unified Diff: net/http/http_stream_factory_impl_job_controller_unittest.cc

Issue 2887773006: Fix SpdySessionKey for HTTP/2 alternative Jobs. (Closed)
Patch Set: Add test. 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « net/http/http_stream_factory_impl_job.cc ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: net/http/http_stream_factory_impl_job_controller_unittest.cc
diff --git a/net/http/http_stream_factory_impl_job_controller_unittest.cc b/net/http/http_stream_factory_impl_job_controller_unittest.cc
index 6024ac0c087968780dcd4155ba1bafe70883ed0e..1c787fa7501575259f1dd9b474e184277e02d2ef 100644
--- a/net/http/http_stream_factory_impl_job_controller_unittest.cc
+++ b/net/http/http_stream_factory_impl_job_controller_unittest.cc
@@ -9,6 +9,7 @@
#include "base/memory/ptr_util.h"
#include "base/run_loop.h"
+#include "base/strings/stringprintf.h"
#include "base/test/histogram_tester.h"
#include "base/test/scoped_feature_list.h"
#include "base/test/scoped_mock_time_message_loop_task_runner.h"
@@ -141,6 +142,12 @@ class HttpStreamFactoryImplJobPeer {
static int GetNumStreams(const HttpStreamFactoryImpl::Job* job) {
return job->num_streams_;
}
+
+ // Return SpdySessionKey of |job|.
+ static const SpdySessionKey GetSpdySessionKey(
+ const HttpStreamFactoryImpl::Job* job) {
+ return job->GetSpdySessionKey();
+ }
};
class JobControllerPeer {
@@ -725,6 +732,45 @@ TEST_F(HttpStreamFactoryImplJobControllerTest,
EXPECT_TRUE(HttpStreamFactoryImplPeer::IsJobControllerDeleted(factory_));
}
+TEST_F(HttpStreamFactoryImplJobControllerTest,
+ SpdySessionKeyHasOriginHostPortPair) {
+ session_deps_.enable_http2_alternative_service = true;
+
+ const char origin_host[] = "www.example.org";
+ const uint16_t origin_port = 443;
+ const char alternative_host[] = "mail.example.org";
+ const uint16_t alternative_port = 123;
+
+ HttpRequestInfo request_info;
+ request_info.method = "GET";
+ request_info.url =
+ GURL(base::StringPrintf("https://%s:%u", origin_host, origin_port));
+ Initialize(request_info);
+
+ url::SchemeHostPort server(request_info.url);
+ AlternativeService alternative_service(kProtoHTTP2, alternative_host,
+ alternative_port);
+ SetAlternativeService(request_info, alternative_service);
+
+ request_.reset(
+ job_controller_->Start(&request_delegate_, nullptr, NetLogWithSource(),
+ HttpStreamRequest::HTTP_STREAM, DEFAULT_PRIORITY));
+
+ HostPortPair main_host_port_pair =
+ HttpStreamFactoryImplJobPeer::GetSpdySessionKey(
+ job_controller_->main_job())
+ .host_port_pair();
+ EXPECT_EQ(origin_host, main_host_port_pair.host());
+ EXPECT_EQ(origin_port, main_host_port_pair.port());
+
+ HostPortPair alternative_host_port_pair =
+ HttpStreamFactoryImplJobPeer::GetSpdySessionKey(
+ job_controller_->alternative_job())
+ .host_port_pair();
+ EXPECT_EQ(origin_host, alternative_host_port_pair.host());
+ EXPECT_EQ(origin_port, alternative_host_port_pair.port());
+}
+
// Tests that if an orphaned job completes after |request_| is gone,
// JobController will be cleaned up.
TEST_F(HttpStreamFactoryImplJobControllerTest,
« no previous file with comments | « net/http/http_stream_factory_impl_job.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698