summaryrefslogtreecommitdiffstats
path: root/net
diff options
context:
space:
mode:
authorbnc <bnc@chromium.org>2015-05-14 12:07:20 -0700
committerCommit bot <commit-bot@chromium.org>2015-05-14 19:07:37 +0000
commitb07c0553bc25ef32023c8dfcb7df1516414daeac (patch)
tree02876a33122143dc8c527109492267f29ab232c7 /net
parent88afb7e7518d67ead34d90f5bec598dc10193c86 (diff)
downloadchromium_src-b07c0553bc25ef32023c8dfcb7df1516414daeac.zip
chromium_src-b07c0553bc25ef32023c8dfcb7df1516414daeac.tar.gz
chromium_src-b07c0553bc25ef32023c8dfcb7df1516414daeac.tar.bz2
Custom hosts in QuicTestPacketMaker.
* Add host parameter to QuicTestPacketMaker constructor to allow for non-default hostnames in generated packets. * Change hostname in QuicNetworkTransactionTest.SecureResourceOver* in anticipation for a future CL that will enforce certificate validation in these unittests. * s/kServerHostname/kDefaultServerHostName/ in QuicHttpStreamTest to match QuicStreamFactoryTest. BUG=474217 Review URL: https://codereview.chromium.org/1142523004 Cr-Commit-Position: refs/heads/master@{#329890}
Diffstat (limited to 'net')
-rw-r--r--net/quic/quic_http_stream_test.cc15
-rw-r--r--net/quic/quic_network_transaction_unittest.cc17
-rw-r--r--net/quic/quic_stream_factory_test.cc2
-rw-r--r--net/quic/test_tools/quic_test_packet_maker.cc12
-rw-r--r--net/quic/test_tools/quic_test_packet_maker.h5
5 files changed, 34 insertions, 17 deletions
diff --git a/net/quic/quic_http_stream_test.cc b/net/quic/quic_http_stream_test.cc
index 74979b3..3e24ccb 100644
--- a/net/quic/quic_http_stream_test.cc
+++ b/net/quic/quic_http_stream_test.cc
@@ -50,8 +50,8 @@ namespace test {
namespace {
const char kUploadData[] = "Really nifty data!";
-const char kServerHostname[] = "www.google.com";
-const uint16 kServerPort = 80;
+const char kDefaultServerHostName[] = "www.google.com";
+const uint16 kDefaultServerPort = 80;
class TestQuicConnection : public QuicConnection {
public:
@@ -135,7 +135,7 @@ class QuicHttpStreamTest : public ::testing::TestWithParam<QuicVersion> {
read_buffer_(new IOBufferWithSize(4096)),
connection_id_(2),
stream_id_(kClientDataStreamId1),
- maker_(GetParam(), connection_id_, &clock_),
+ maker_(GetParam(), connection_id_, &clock_, kDefaultServerHostName),
random_generator_(0) {
IPAddressNumber ip;
CHECK(ParseIPLiteralToNumber("192.0.2.33", &ip));
@@ -210,11 +210,10 @@ class QuicHttpStreamTest : public ::testing::TestWithParam<QuicVersion> {
&transport_security_state_, make_scoped_ptr((QuicServerInfo*)nullptr),
DefaultQuicConfig(), "CONNECTION_UNKNOWN", base::TimeTicks::Now(),
base::MessageLoop::current()->message_loop_proxy().get(), nullptr));
- session_->InitializeSession(QuicServerId(kServerHostname, kServerPort,
- /*is_secure=*/false,
- PRIVACY_MODE_DISABLED),
- &crypto_config_,
- &crypto_client_stream_factory_);
+ session_->InitializeSession(
+ QuicServerId(kDefaultServerHostName, kDefaultServerPort,
+ /*is_secure=*/false, PRIVACY_MODE_DISABLED),
+ &crypto_config_, &crypto_client_stream_factory_);
session_->GetCryptoStream()->CryptoConnect();
EXPECT_TRUE(session_->IsCryptoHandshakeConfirmed());
stream_.reset(use_closing_stream_ ?
diff --git a/net/quic/quic_network_transaction_unittest.cc b/net/quic/quic_network_transaction_unittest.cc
index d3ca186..ed0d740 100644
--- a/net/quic/quic_network_transaction_unittest.cc
+++ b/net/quic/quic_network_transaction_unittest.cc
@@ -63,6 +63,8 @@ static const char kQuicAlternateProtocolDifferentPortHttpHeader[] =
static const char kQuicAlternateProtocolHttpsHeader[] =
"Alternate-Protocol: 443:quic\r\n\r\n";
+const char kDefaultServerHostName[] = "www.google.com";
+
} // namespace
// Helper class to encapsulate MockReads and MockWrites for QUIC.
@@ -134,7 +136,7 @@ class QuicNetworkTransactionTest
protected:
QuicNetworkTransactionTest()
: clock_(new MockClock),
- maker_(GetParam(), 0, clock_),
+ maker_(GetParam(), 0, clock_, kDefaultServerHostName),
ssl_config_service_(new SSLConfigServiceDefaults),
proxy_service_(ProxyService::CreateDirect()),
auth_handler_factory_(
@@ -142,7 +144,9 @@ class QuicNetworkTransactionTest
random_generator_(0),
hanging_data_(nullptr, 0, nullptr, 0) {
request_.method = "GET";
- request_.url = GURL("http://www.google.com/");
+ std::string url("http://");
+ url.append(kDefaultServerHostName);
+ request_.url = GURL(url);
request_.load_flags = 0;
clock_->AdvanceTime(QuicTime::Delta::FromMilliseconds(20));
}
@@ -1205,6 +1209,7 @@ TEST_P(QuicNetworkTransactionTest, ConnectionCloseDuringConnect) {
// the appropriate error code. Note that this never happens in production,
// because the handshake (which this test mocks) would fail in this scenario.
TEST_P(QuicNetworkTransactionTest, SecureResourceOverInsecureQuic) {
+ maker_.set_hostname("www.example.org");
MockQuicData mock_quic_data;
mock_quic_data.AddWrite(
ConstructRequestHeadersPacket(1, kClientDataStreamId1, true, true,
@@ -1217,7 +1222,7 @@ TEST_P(QuicNetworkTransactionTest, SecureResourceOverInsecureQuic) {
mock_quic_data.AddRead(SYNCHRONOUS, 0);
mock_quic_data.AddSocketDataToFactory(&socket_factory_);
- request_.url = GURL("https://www.google.com:443");
+ request_.url = GURL("https://www.example.org:443");
AddHangingNonAlternateProtocolSocketData();
CreateSessionWithNextProtos();
AddQuicAlternateProtocolMapping(MockCryptoClientStream::CONFIRM_HANDSHAKE);
@@ -1230,6 +1235,7 @@ TEST_P(QuicNetworkTransactionTest, SecureResourceOverInsecureQuic) {
}
TEST_P(QuicNetworkTransactionTest, SecureResourceOverSecureQuic) {
+ maker_.set_hostname("www.example.org");
MockQuicData mock_quic_data;
mock_quic_data.AddWrite(
ConstructRequestHeadersPacket(1, kClientDataStreamId1, true, true,
@@ -1245,11 +1251,14 @@ TEST_P(QuicNetworkTransactionTest, SecureResourceOverSecureQuic) {
scoped_refptr<X509Certificate> cert(
ImportCertFromFile(GetTestCertsDirectory(), "spdy_pooling.pem"));
ASSERT_TRUE(cert.get());
+ bool common_name_fallback_used;
+ EXPECT_TRUE(
+ cert->VerifyNameMatch("www.example.org", &common_name_fallback_used));
ProofVerifyDetailsChromium verify_details;
verify_details.cert_verify_result.verified_cert = cert;
crypto_client_stream_factory_.set_proof_verify_details(&verify_details);
- request_.url = GURL("https://www.google.com:443");
+ request_.url = GURL("https://www.example.org:443");
AddHangingNonAlternateProtocolSocketData();
CreateSessionWithNextProtos();
AddQuicAlternateProtocolMapping(MockCryptoClientStream::CONFIRM_HANDSHAKE);
diff --git a/net/quic/quic_stream_factory_test.cc b/net/quic/quic_stream_factory_test.cc
index dd7865b..b5a1b5b 100644
--- a/net/quic/quic_stream_factory_test.cc
+++ b/net/quic/quic_stream_factory_test.cc
@@ -197,7 +197,7 @@ class QuicStreamFactoryTest : public ::testing::TestWithParam<TestParams> {
: random_generator_(0),
clock_(new MockClock()),
runner_(new TestTaskRunner(clock_)),
- maker_(GetParam().version, 0, clock_),
+ maker_(GetParam().version, 0, clock_, kDefaultServerHostName),
cert_verifier_(CertVerifier::CreateDefault()),
channel_id_service_(
new ChannelIDService(new DefaultChannelIDStore(nullptr),
diff --git a/net/quic/test_tools/quic_test_packet_maker.cc b/net/quic/test_tools/quic_test_packet_maker.cc
index cd0ac58..2ac6b40 100644
--- a/net/quic/test_tools/quic_test_packet_maker.cc
+++ b/net/quic/test_tools/quic_test_packet_maker.cc
@@ -18,10 +18,12 @@ namespace test {
QuicTestPacketMaker::QuicTestPacketMaker(QuicVersion version,
QuicConnectionId connection_id,
- MockClock* clock)
+ MockClock* clock,
+ const std::string& host)
: version_(version),
connection_id_(connection_id),
clock_(clock),
+ host_(host),
spdy_request_framer_(SPDY4),
spdy_response_framer_(SPDY4) {
}
@@ -29,6 +31,10 @@ QuicTestPacketMaker::QuicTestPacketMaker(QuicVersion version,
QuicTestPacketMaker::~QuicTestPacketMaker() {
}
+void QuicTestPacketMaker::set_hostname(const std::string& host) {
+ host_.assign(host);
+}
+
scoped_ptr<QuicEncryptedPacket> QuicTestPacketMaker::MakeRstPacket(
QuicPacketSequenceNumber num,
bool include_version,
@@ -226,9 +232,9 @@ SpdyHeaderBlock QuicTestPacketMaker::GetRequestHeaders(
SpdyHeaderBlock headers;
headers[":method"] = method;
if (version_ <= QUIC_VERSION_24) {
- headers[":host"] = "www.google.com";
+ headers[":host"] = host_;
} else {
- headers[":authority"] = "www.google.com";
+ headers[":authority"] = host_;
}
headers[":path"] = path;
headers[":scheme"] = scheme;
diff --git a/net/quic/test_tools/quic_test_packet_maker.h b/net/quic/test_tools/quic_test_packet_maker.h
index 6a75e7c..23eb856 100644
--- a/net/quic/test_tools/quic_test_packet_maker.h
+++ b/net/quic/test_tools/quic_test_packet_maker.h
@@ -22,9 +22,11 @@ class QuicTestPacketMaker {
public:
QuicTestPacketMaker(QuicVersion version,
QuicConnectionId connection_id,
- MockClock* clock);
+ MockClock* clock,
+ const std::string& host);
~QuicTestPacketMaker();
+ void set_hostname(const std::string& host);
scoped_ptr<QuicEncryptedPacket> MakeRstPacket(
QuicPacketSequenceNumber num,
bool include_version,
@@ -82,6 +84,7 @@ class QuicTestPacketMaker {
QuicVersion version_;
QuicConnectionId connection_id_;
MockClock* clock_; // Owned by QuicStreamFactory.
+ std::string host_;
SpdyFramer spdy_request_framer_;
SpdyFramer spdy_response_framer_;
MockRandom random_generator_;