1// Copyright 2014 The Chromium Authors. All rights reserved. 2// Use of this source code is governed by a BSD-style license that can be 3// found in the LICENSE file. 4 5#ifndef NET_FAILING_HTTP_TRANSACTION_FACTORY_H_ 6#define NET_FAILING_HTTP_TRANSACTION_FACTORY_H_ 7 8#include "base/memory/scoped_ptr.h" 9#include "net/base/net_errors.h" 10#include "net/base/request_priority.h" 11#include "net/http/http_transaction.h" 12#include "net/http/http_transaction_factory.h" 13 14namespace net { 15 16class HttpCache; 17class HttpNetworkSession; 18 19// Creates transactions that always (asynchronously) return a specified 20// error. The error is returned asynchronously, just after the transaction is 21// started. 22class NET_EXPORT FailingHttpTransactionFactory : public HttpTransactionFactory { 23 public: 24 // The caller must guarantee that |session| outlives this object. 25 FailingHttpTransactionFactory(HttpNetworkSession* session, Error error); 26 virtual ~FailingHttpTransactionFactory(); 27 28 // HttpTransactionFactory: 29 virtual int CreateTransaction( 30 RequestPriority priority, 31 scoped_ptr<HttpTransaction>* trans) OVERRIDE; 32 virtual HttpCache* GetCache() OVERRIDE; 33 virtual HttpNetworkSession* GetSession() OVERRIDE; 34 35 private: 36 HttpNetworkSession* session_; 37 Error error_; 38}; 39 40} // namespace net 41 42#endif // NET_FAILING_HTTP_TRANSACTION_FACTORY_H_ 43