- add sources.
[platform/framework/web/crosswalk.git] / src / google_apis / gaia / mock_url_fetcher_factory.h
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.
18 class 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
42 template<typename T>
43 class MockURLFetcherFactory : public net::URLFetcherFactory,
44                               public net::ScopedURLFetcherFactory {
45  public:
46   MockURLFetcherFactory()
47       : net::ScopedURLFetcherFactory(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_