mock_url_fetcher_factory.h revision 5821806d5e7f356e8fa4b058a389a808ea183019
1// Copyright (c) 2012 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// A collection of classes that are useful when testing things that use a 6// GaiaAuthFetcher. 7 8#ifndef GOOGLE_APIS_GAIA_MOCK_URL_FETCHER_FACTORY_H_ 9#define GOOGLE_APIS_GAIA_MOCK_URL_FETCHER_FACTORY_H_ 10 11#include <string> 12 13#include "google_apis/gaia/gaia_auth_fetcher.h" 14#include "net/url_request/test_url_fetcher_factory.h" 15#include "net/url_request/url_request_status.h" 16 17// Responds as though ClientLogin returned from the server. 18class MockFetcher : public net::TestURLFetcher { 19 public: 20 MockFetcher(bool success, 21 const GURL& url, 22 const std::string& results, 23 net::URLFetcher::RequestType request_type, 24 net::URLFetcherDelegate* d); 25 26 MockFetcher(const GURL& url, 27 const net::URLRequestStatus& status, 28 int response_code, 29 const net::ResponseCookies& cookies, 30 const std::string& results, 31 net::URLFetcher::RequestType request_type, 32 net::URLFetcherDelegate* d); 33 34 virtual ~MockFetcher(); 35 36 virtual void Start() OVERRIDE; 37 38 private: 39 DISALLOW_COPY_AND_ASSIGN(MockFetcher); 40}; 41 42template<typename T> 43class MockURLFetcherFactory : public net::URLFetcherFactory, 44 public net::ScopedURLFetcherFactory { 45 public: 46 MockURLFetcherFactory() 47 : net::ScopedURLFetcherFactory(ALLOW_THIS_IN_INITIALIZER_LIST(this)), 48 success_(true) { 49 } 50 ~MockURLFetcherFactory() {} 51 net::URLFetcher* CreateURLFetcher( 52 int id, 53 const GURL& url, 54 net::URLFetcher::RequestType request_type, 55 net::URLFetcherDelegate* d) OVERRIDE { 56 return new T(success_, url, results_, request_type, d); 57 } 58 void set_success(bool success) { 59 success_ = success; 60 } 61 void set_results(const std::string& results) { 62 results_ = results; 63 } 64 private: 65 bool success_; 66 std::string results_; 67 DISALLOW_COPY_AND_ASSIGN(MockURLFetcherFactory); 68}; 69 70#endif // GOOGLE_APIS_GAIA_MOCK_URL_FETCHER_FACTORY_H_ 71