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

Unified Diff: net/url_request/url_request_http_job_unittest.cc

Issue 992733002: Remove //net (except for Android test stuff) and sdch (Closed) Base URL: git@github.com:domokit/mojo.git@master
Patch Set: Created 5 years, 9 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/url_request/url_request_http_job.cc ('k') | net/url_request/url_request_intercepting_job_factory.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: net/url_request/url_request_http_job_unittest.cc
diff --git a/net/url_request/url_request_http_job_unittest.cc b/net/url_request/url_request_http_job_unittest.cc
deleted file mode 100644
index 84fd7c061ae679842bec72f3ae0dbff80d34aaef..0000000000000000000000000000000000000000
--- a/net/url_request/url_request_http_job_unittest.cc
+++ /dev/null
@@ -1,353 +0,0 @@
-// Copyright (c) 2013 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#include "net/url_request/url_request_http_job.h"
-
-#include <cstddef>
-
-#include "base/compiler_specific.h"
-#include "base/memory/ref_counted.h"
-#include "base/memory/scoped_ptr.h"
-#include "base/run_loop.h"
-#include "net/base/auth.h"
-#include "net/base/request_priority.h"
-#include "net/http/http_transaction_factory.h"
-#include "net/http/http_transaction_test_util.h"
-#include "net/socket/socket_test_util.h"
-#include "net/url_request/url_request.h"
-#include "net/url_request/url_request_status.h"
-#include "net/url_request/url_request_test_util.h"
-#include "net/websockets/websocket_handshake_stream_base.h"
-#include "testing/gmock/include/gmock/gmock.h"
-#include "testing/gtest/include/gtest/gtest.h"
-#include "url/gurl.h"
-
-namespace net {
-
-namespace {
-
-using ::testing::Return;
-
-// Inherit from URLRequestHttpJob to expose the priority and some
-// other hidden functions.
-class TestURLRequestHttpJob : public URLRequestHttpJob {
- public:
- explicit TestURLRequestHttpJob(URLRequest* request)
- : URLRequestHttpJob(request, request->context()->network_delegate(),
- request->context()->http_user_agent_settings()) {}
-
- using URLRequestHttpJob::SetPriority;
- using URLRequestHttpJob::Start;
- using URLRequestHttpJob::Kill;
- using URLRequestHttpJob::priority;
-
- protected:
- ~TestURLRequestHttpJob() override {}
-};
-
-class URLRequestHttpJobTest : public ::testing::Test {
- protected:
- URLRequestHttpJobTest()
- : req_(context_.CreateRequest(GURL("http://www.example.com"),
- DEFAULT_PRIORITY,
- &delegate_,
- nullptr)) {
- context_.set_http_transaction_factory(&network_layer_);
- }
-
- bool TransactionAcceptsSdchEncoding() {
- base::WeakPtr<MockNetworkTransaction> transaction(
- network_layer_.last_transaction());
- EXPECT_TRUE(transaction);
- if (!transaction) return false;
-
- const HttpRequestInfo* request_info = transaction->request();
- EXPECT_TRUE(request_info);
- if (!request_info) return false;
-
- std::string encoding_headers;
- bool get_success = request_info->extra_headers.GetHeader(
- "Accept-Encoding", &encoding_headers);
- EXPECT_TRUE(get_success);
- if (!get_success) return false;
-
- // This check isn't wrapped with EXPECT* macros because different
- // results from this function may be expected in different tests.
- std::vector<std::string> tokens;
- size_t num_tokens = Tokenize(encoding_headers, ", ", &tokens);
- for (size_t i = 0; i < num_tokens; i++) {
- if (!base::strncasecmp(tokens[i].data(), "sdch", tokens[i].length()))
- return true;
- }
- return false;
- }
-
- void EnableSdch() {
- context_.SetSdchManager(scoped_ptr<SdchManager>(new SdchManager).Pass());
- }
-
- MockNetworkLayer network_layer_;
- TestURLRequestContext context_;
- TestDelegate delegate_;
- scoped_ptr<URLRequest> req_;
-};
-
-// Make sure that SetPriority actually sets the URLRequestHttpJob's
-// priority, both before and after start.
-TEST_F(URLRequestHttpJobTest, SetPriorityBasic) {
- scoped_refptr<TestURLRequestHttpJob> job(
- new TestURLRequestHttpJob(req_.get()));
- EXPECT_EQ(DEFAULT_PRIORITY, job->priority());
-
- job->SetPriority(LOWEST);
- EXPECT_EQ(LOWEST, job->priority());
-
- job->SetPriority(LOW);
- EXPECT_EQ(LOW, job->priority());
-
- job->Start();
- EXPECT_EQ(LOW, job->priority());
-
- job->SetPriority(MEDIUM);
- EXPECT_EQ(MEDIUM, job->priority());
-}
-
-// Make sure that URLRequestHttpJob passes on its priority to its
-// transaction on start.
-TEST_F(URLRequestHttpJobTest, SetTransactionPriorityOnStart) {
- scoped_refptr<TestURLRequestHttpJob> job(
- new TestURLRequestHttpJob(req_.get()));
- job->SetPriority(LOW);
-
- EXPECT_FALSE(network_layer_.last_transaction());
-
- job->Start();
-
- ASSERT_TRUE(network_layer_.last_transaction());
- EXPECT_EQ(LOW, network_layer_.last_transaction()->priority());
-}
-
-// Make sure that URLRequestHttpJob passes on its priority updates to
-// its transaction.
-TEST_F(URLRequestHttpJobTest, SetTransactionPriority) {
- scoped_refptr<TestURLRequestHttpJob> job(
- new TestURLRequestHttpJob(req_.get()));
- job->SetPriority(LOW);
- job->Start();
- ASSERT_TRUE(network_layer_.last_transaction());
- EXPECT_EQ(LOW, network_layer_.last_transaction()->priority());
-
- job->SetPriority(HIGHEST);
- EXPECT_EQ(HIGHEST, network_layer_.last_transaction()->priority());
-}
-
-// Make sure that URLRequestHttpJob passes on its priority updates to
-// newly-created transactions after the first one.
-TEST_F(URLRequestHttpJobTest, SetSubsequentTransactionPriority) {
- scoped_refptr<TestURLRequestHttpJob> job(
- new TestURLRequestHttpJob(req_.get()));
- job->Start();
-
- job->SetPriority(LOW);
- ASSERT_TRUE(network_layer_.last_transaction());
- EXPECT_EQ(LOW, network_layer_.last_transaction()->priority());
-
- job->Kill();
- network_layer_.ClearLastTransaction();
-
- // Creates a second transaction.
- job->Start();
- ASSERT_TRUE(network_layer_.last_transaction());
- EXPECT_EQ(LOW, network_layer_.last_transaction()->priority());
-}
-
-// Confirm we do advertise SDCH encoding in the case of a GET.
-TEST_F(URLRequestHttpJobTest, SdchAdvertisementGet) {
- EnableSdch();
- req_->set_method("GET"); // Redundant with default.
- scoped_refptr<TestURLRequestHttpJob> job(
- new TestURLRequestHttpJob(req_.get()));
- job->Start();
- EXPECT_TRUE(TransactionAcceptsSdchEncoding());
-}
-
-// Confirm we don't advertise SDCH encoding in the case of a POST.
-TEST_F(URLRequestHttpJobTest, SdchAdvertisementPost) {
- EnableSdch();
- req_->set_method("POST");
- scoped_refptr<TestURLRequestHttpJob> job(
- new TestURLRequestHttpJob(req_.get()));
- job->Start();
- EXPECT_FALSE(TransactionAcceptsSdchEncoding());
-}
-
-// This base class just serves to set up some things before the TestURLRequest
-// constructor is called.
-class URLRequestHttpJobWebSocketTestBase : public ::testing::Test {
- protected:
- URLRequestHttpJobWebSocketTestBase() : socket_data_(nullptr, 0, nullptr, 0),
- context_(true) {
- // A Network Delegate is required for the WebSocketHandshakeStreamBase
- // object to be passed on to the HttpNetworkTransaction.
- context_.set_network_delegate(&network_delegate_);
-
- // Attempting to create real ClientSocketHandles is not going to work out so
- // well. Set up a fake socket factory.
- socket_factory_.AddSocketDataProvider(&socket_data_);
- context_.set_client_socket_factory(&socket_factory_);
- context_.Init();
- }
-
- StaticSocketDataProvider socket_data_;
- TestNetworkDelegate network_delegate_;
- MockClientSocketFactory socket_factory_;
- TestURLRequestContext context_;
-};
-
-class URLRequestHttpJobWebSocketTest
- : public URLRequestHttpJobWebSocketTestBase {
- protected:
- URLRequestHttpJobWebSocketTest()
- : req_(context_.CreateRequest(GURL("ws://www.example.com"),
- DEFAULT_PRIORITY,
- &delegate_,
- nullptr)) {
- // The TestNetworkDelegate expects a call to NotifyBeforeURLRequest before
- // anything else happens.
- GURL url("ws://localhost/");
- TestCompletionCallback dummy;
- network_delegate_.NotifyBeforeURLRequest(
- req_.get(), dummy.callback(), &url);
- }
-
- TestDelegate delegate_;
- scoped_ptr<URLRequest> req_;
-};
-
-class MockCreateHelper : public WebSocketHandshakeStreamBase::CreateHelper {
- public:
- // GoogleMock does not appear to play nicely with move-only types like
- // scoped_ptr, so this forwarding method acts as a workaround.
- virtual WebSocketHandshakeStreamBase* CreateBasicStream(
- scoped_ptr<ClientSocketHandle> connection,
- bool using_proxy) override {
- // Discard the arguments since we don't need them anyway.
- return CreateBasicStreamMock();
- }
-
- MOCK_METHOD0(CreateBasicStreamMock,
- WebSocketHandshakeStreamBase*());
-
- MOCK_METHOD2(CreateSpdyStream,
- WebSocketHandshakeStreamBase*(const base::WeakPtr<SpdySession>&,
- bool));
-};
-
-class FakeWebSocketHandshakeStream : public WebSocketHandshakeStreamBase {
- public:
- FakeWebSocketHandshakeStream() : initialize_stream_was_called_(false) {}
-
- bool initialize_stream_was_called() const {
- return initialize_stream_was_called_;
- }
-
- // Fake implementation of HttpStreamBase methods.
- int InitializeStream(const HttpRequestInfo* request_info,
- RequestPriority priority,
- const BoundNetLog& net_log,
- const CompletionCallback& callback) override {
- initialize_stream_was_called_ = true;
- return ERR_IO_PENDING;
- }
-
- int SendRequest(const HttpRequestHeaders& request_headers,
- HttpResponseInfo* response,
- const CompletionCallback& callback) override {
- return ERR_IO_PENDING;
- }
-
- int ReadResponseHeaders(const CompletionCallback& callback) override {
- return ERR_IO_PENDING;
- }
-
- int ReadResponseBody(IOBuffer* buf,
- int buf_len,
- const CompletionCallback& callback) override {
- return ERR_IO_PENDING;
- }
-
- void Close(bool not_reusable) override {}
-
- bool IsResponseBodyComplete() const override { return false; }
-
- bool CanFindEndOfResponse() const override { return false; }
-
- bool IsConnectionReused() const override { return false; }
- void SetConnectionReused() override {}
-
- bool IsConnectionReusable() const override { return false; }
-
- int64 GetTotalReceivedBytes() const override { return 0; }
-
- bool GetLoadTimingInfo(LoadTimingInfo* load_timing_info) const override {
- return false;
- }
-
- void GetSSLInfo(SSLInfo* ssl_info) override {}
-
- void GetSSLCertRequestInfo(SSLCertRequestInfo* cert_request_info) override {}
-
- bool IsSpdyHttpStream() const override { return false; }
-
- void Drain(HttpNetworkSession* session) override {}
-
- void SetPriority(RequestPriority priority) override {}
-
- UploadProgress GetUploadProgress() const override {
- return UploadProgress();
- }
-
- HttpStream* RenewStreamForAuth() override { return nullptr; }
-
- // Fake implementation of WebSocketHandshakeStreamBase method(s)
- scoped_ptr<WebSocketStream> Upgrade() override {
- return scoped_ptr<WebSocketStream>();
- }
-
- private:
- bool initialize_stream_was_called_;
-};
-
-TEST_F(URLRequestHttpJobWebSocketTest, RejectedWithoutCreateHelper) {
- scoped_refptr<TestURLRequestHttpJob> job(
- new TestURLRequestHttpJob(req_.get()));
- job->Start();
- base::RunLoop().RunUntilIdle();
- EXPECT_EQ(URLRequestStatus::FAILED, req_->status().status());
- EXPECT_EQ(ERR_DISALLOWED_URL_SCHEME, req_->status().error());
-}
-
-TEST_F(URLRequestHttpJobWebSocketTest, CreateHelperPassedThrough) {
- scoped_refptr<TestURLRequestHttpJob> job(
- new TestURLRequestHttpJob(req_.get()));
- scoped_ptr<MockCreateHelper> create_helper(
- new ::testing::StrictMock<MockCreateHelper>());
- FakeWebSocketHandshakeStream* fake_handshake_stream(
- new FakeWebSocketHandshakeStream);
- // Ownership of fake_handshake_stream is transferred when CreateBasicStream()
- // is called.
- EXPECT_CALL(*create_helper, CreateBasicStreamMock())
- .WillOnce(Return(fake_handshake_stream));
- req_->SetUserData(WebSocketHandshakeStreamBase::CreateHelper::DataKey(),
- create_helper.release());
- req_->SetLoadFlags(LOAD_DISABLE_CACHE);
- job->Start();
- base::RunLoop().RunUntilIdle();
- EXPECT_EQ(URLRequestStatus::IO_PENDING, req_->status().status());
- EXPECT_TRUE(fake_handshake_stream->initialize_stream_was_called());
-}
-
-} // namespace
-
-} // namespace net
« no previous file with comments | « net/url_request/url_request_http_job.cc ('k') | net/url_request/url_request_intercepting_job_factory.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698