| Index: net/websockets/websocket_job_unittest.cc
|
| ===================================================================
|
| --- net/websockets/websocket_job_unittest.cc (revision 81709)
|
| +++ net/websockets/websocket_job_unittest.cc (working copy)
|
| @@ -13,6 +13,7 @@
|
| #include "net/base/cookie_store.h"
|
| #include "net/base/net_errors.h"
|
| #include "net/base/sys_addrinfo.h"
|
| +#include "net/base/transport_security_state.h"
|
| #include "net/socket_stream/socket_stream.h"
|
| #include "net/url_request/url_request_context.h"
|
| #include "net/websockets/websocket_job.h"
|
| @@ -156,11 +157,18 @@
|
| CookiePolicy* cookie_policy) {
|
| set_cookie_store(cookie_store);
|
| set_cookie_policy(cookie_policy);
|
| + transport_security_state_ = new TransportSecurityState();
|
| + set_transport_security_state(transport_security_state_.get());
|
| + TransportSecurityState::DomainState state;
|
| + state.expiry = base::Time::Now() + base::TimeDelta::FromSeconds(1000);
|
| + transport_security_state_->EnableHost("upgrademe.com", state);
|
| }
|
|
|
| private:
|
| friend class base::RefCountedThreadSafe<MockURLRequestContext>;
|
| virtual ~MockURLRequestContext() {}
|
| +
|
| + scoped_refptr<TransportSecurityState> transport_security_state_;
|
| };
|
|
|
| class WebSocketJobTest : public PlatformTest {
|
| @@ -209,6 +217,9 @@
|
| websocket_->delegate_ = NULL;
|
| websocket_->socket_ = NULL;
|
| }
|
| + SocketStream* GetSocket(SocketStreamJob* job) {
|
| + return job->socket_.get();
|
| + }
|
|
|
| scoped_refptr<MockCookieStore> cookie_store_;
|
| scoped_ptr<MockCookiePolicy> cookie_policy_;
|
| @@ -494,4 +505,19 @@
|
| CloseWebSocketJob();
|
| }
|
|
|
| +TEST_F(WebSocketJobTest, HSTSUpgrade) {
|
| + GURL url("ws://upgrademe.com/");
|
| + MockSocketStreamDelegate delegate;
|
| + scoped_refptr<SocketStreamJob> job = SocketStreamJob::CreateSocketStreamJob(
|
| + url, &delegate, *context_.get());
|
| + EXPECT_TRUE(GetSocket(job.get())->is_secure());
|
| + job->DetachDelegate();
|
| +
|
| + url = GURL("ws://donotupgrademe.com/");
|
| + job = SocketStreamJob::CreateSocketStreamJob(
|
| + url, &delegate, *context_.get());
|
| + EXPECT_FALSE(GetSocket(job.get())->is_secure());
|
| + job->DetachDelegate();
|
| +}
|
| +
|
| } // namespace net
|
|
|