| Index: net/spdy/spdy_session_unittest.cc
|
| diff --git a/net/spdy/spdy_session_unittest.cc b/net/spdy/spdy_session_unittest.cc
|
| index 1fa5f2e92c4b0a18d5624e395b0cf0f9d8178525..8194fe7d09788cced9fbd0634525bc5f70673100 100644
|
| --- a/net/spdy/spdy_session_unittest.cc
|
| +++ b/net/spdy/spdy_session_unittest.cc
|
| @@ -4,6 +4,7 @@
|
|
|
| #include "net/spdy/spdy_session.h"
|
|
|
| +#include "base/base64.h"
|
| #include "base/bind.h"
|
| #include "base/callback.h"
|
| #include "base/memory/scoped_ptr.h"
|
| @@ -2375,7 +2376,7 @@ TEST_P(SpdySessionTest, CloseActivatedStreamThatClosesSession) {
|
| EXPECT_TRUE(session == NULL);
|
| }
|
|
|
| -TEST_P(SpdySessionTest, DISABLED_VerifyDomainAuthentication) {
|
| +TEST_P(SpdySessionTest, VerifyDomainAuthentication) {
|
| session_deps_.host_resolver->set_synchronous_mode(true);
|
|
|
| MockConnect connect_data(SYNCHRONOUS, OK);
|
| @@ -2417,8 +2418,7 @@ TEST_P(SpdySessionTest, DISABLED_VerifyDomainAuthentication) {
|
| EXPECT_FALSE(session->VerifyDomainAuthentication("mail.google.com"));
|
| }
|
|
|
| -// TODO(rch): re-enable this.
|
| -TEST_P(SpdySessionTest, DISABLED_ConnectionPooledWithTlsChannelId) {
|
| +TEST_P(SpdySessionTest, ConnectionPooledWithTlsChannelId) {
|
| session_deps_.host_resolver->set_synchronous_mode(true);
|
|
|
| MockConnect connect_data(SYNCHRONOUS, OK);
|
| @@ -5001,4 +5001,108 @@ TEST(MapNetErrorToGoAwayStatus, MapsValue) {
|
| CHECK_EQ(GOAWAY_PROTOCOL_ERROR, MapNetErrorToGoAwayStatus(ERR_UNEXPECTED));
|
| }
|
|
|
| +TEST(CanPoolTest, CanPool) {
|
| + // Load a cert that is valid for:
|
| + // www.example.org
|
| + // mail.example.org
|
| + // www.example.com
|
| +
|
| + TransportSecurityState tss;
|
| + SSLInfo ssl_info;
|
| + ssl_info.cert = ImportCertFromFile(GetTestCertsDirectory(),
|
| + "spdy_pooling.pem");
|
| +
|
| + EXPECT_TRUE(SpdySession::CanPool(
|
| + &tss, ssl_info, "www.example.org", "www.example.org"));
|
| + EXPECT_TRUE(SpdySession::CanPool(
|
| + &tss, ssl_info, "www.example.org", "mail.example.org"));
|
| + EXPECT_TRUE(SpdySession::CanPool(
|
| + &tss, ssl_info, "www.example.org", "mail.example.com"));
|
| + EXPECT_FALSE(SpdySession::CanPool(
|
| + &tss, ssl_info, "www.example.org", "mail.google.com"));
|
| +}
|
| +
|
| +TEST(CanPoolTest, CanNotPoolWithCertErrors) {
|
| + // Load a cert that is valid for:
|
| + // www.example.org
|
| + // mail.example.org
|
| + // www.example.com
|
| +
|
| + TransportSecurityState tss;
|
| + SSLInfo ssl_info;
|
| + ssl_info.cert = ImportCertFromFile(GetTestCertsDirectory(),
|
| + "spdy_pooling.pem");
|
| + ssl_info.cert_status = CERT_STATUS_REVOKED;
|
| +
|
| + EXPECT_FALSE(SpdySession::CanPool(
|
| + &tss, ssl_info, "www.example.org", "mail.example.org"));
|
| +}
|
| +
|
| +TEST(CanPoolTest, CanNotPoolWithClientCerts) {
|
| + // Load a cert that is valid for:
|
| + // www.example.org
|
| + // mail.example.org
|
| + // www.example.com
|
| +
|
| + TransportSecurityState tss;
|
| + SSLInfo ssl_info;
|
| + ssl_info.cert = ImportCertFromFile(GetTestCertsDirectory(),
|
| + "spdy_pooling.pem");
|
| + ssl_info.client_cert_sent = true;
|
| +
|
| + EXPECT_FALSE(SpdySession::CanPool(
|
| + &tss, ssl_info, "www.example.org", "mail.example.org"));
|
| +}
|
| +
|
| +TEST(CanPoolTest, CanNotPoolAcrossETLDsWithChannelID) {
|
| + // Load a cert that is valid for:
|
| + // www.example.org
|
| + // mail.example.org
|
| + // www.example.com
|
| +
|
| + TransportSecurityState tss;
|
| + SSLInfo ssl_info;
|
| + ssl_info.cert = ImportCertFromFile(GetTestCertsDirectory(),
|
| + "spdy_pooling.pem");
|
| + ssl_info.channel_id_sent = true;
|
| +
|
| + EXPECT_TRUE(SpdySession::CanPool(
|
| + &tss, ssl_info, "www.example.org", "mail.example.org"));
|
| + EXPECT_FALSE(SpdySession::CanPool(
|
| + &tss, ssl_info, "www.example.org", "www.example.com"));
|
| +}
|
| +
|
| +TEST(CanPoolTest, CanNotPoolWithBadPins) {
|
| + uint8 primary_pin = 1;
|
| + uint8 backup_pin = 2;
|
| + uint8 bad_pin = 3;
|
| + TransportSecurityState tss;
|
| + test::AddPin(&tss, "mail.example.org", primary_pin, backup_pin);
|
| +
|
| + SSLInfo ssl_info;
|
| + ssl_info.cert = ImportCertFromFile(GetTestCertsDirectory(),
|
| + "spdy_pooling.pem");
|
| + ssl_info.is_issued_by_known_root = true;
|
| + ssl_info.public_key_hashes.push_back(test::GetTestHashValue(bad_pin));
|
| +
|
| + EXPECT_FALSE(SpdySession::CanPool(
|
| + &tss, ssl_info, "www.example.org", "mail.example.org"));
|
| +}
|
| +
|
| +TEST(CanPoolTest, CanPoolWithAcceptablePins) {
|
| + uint8 primary_pin = 1;
|
| + uint8 backup_pin = 2;
|
| + TransportSecurityState tss;
|
| + test::AddPin(&tss, "mail.example.org", primary_pin, backup_pin);
|
| +
|
| + SSLInfo ssl_info;
|
| + ssl_info.cert = ImportCertFromFile(GetTestCertsDirectory(),
|
| + "spdy_pooling.pem");
|
| + ssl_info.is_issued_by_known_root = true;
|
| + ssl_info.public_key_hashes.push_back(test::GetTestHashValue(primary_pin));
|
| +
|
| + EXPECT_TRUE(SpdySession::CanPool(
|
| + &tss, ssl_info, "www.example.org", "mail.example.org"));
|
| +}
|
| +
|
| } // namespace net
|
|
|