gaia_auth_fetcher_unittest.h revision dc0f95d653279beabeb9817299e2902918ba123e
1// Copyright (c) 2011 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 CHROME_COMMON_NET_GAIA_GAIA_AUTH_FETCHER_UNITTEST_H_
9#define CHROME_COMMON_NET_GAIA_GAIA_AUTH_FETCHER_UNITTEST_H_
10#pragma once
11
12#include <string>
13
14#include "chrome/common/net/gaia/gaia_auth_fetcher.h"
15#include "chrome/common/net/url_fetcher.h"
16#include "chrome/common/net/http_return.h"
17#include "net/url_request/url_request_status.h"
18
19// Responds as though ClientLogin returned from the server.
20class MockFetcher : public URLFetcher {
21 public:
22  MockFetcher(bool success,
23              const GURL& url,
24              const std::string& results,
25              URLFetcher::RequestType request_type,
26              URLFetcher::Delegate* d);
27
28  virtual ~MockFetcher();
29
30  virtual void Start();
31
32 private:
33  bool success_;
34  GURL url_;
35  std::string results_;
36  DISALLOW_COPY_AND_ASSIGN(MockFetcher);
37};
38
39template<typename T>
40class MockFactory : public URLFetcher::Factory {
41 public:
42  MockFactory()
43      : success_(true) {}
44  ~MockFactory() {}
45  URLFetcher* CreateURLFetcher(int id,
46                               const GURL& url,
47                               URLFetcher::RequestType request_type,
48                               URLFetcher::Delegate* d) {
49    return new T(success_, url, results_, request_type, d);
50  }
51  void set_success(bool success) {
52    success_ = success;
53  }
54  void set_results(const std::string& results) {
55    results_ = results;
56  }
57 private:
58  bool success_;
59  std::string results_;
60  DISALLOW_COPY_AND_ASSIGN(MockFactory);
61};
62
63#endif  // CHROME_COMMON_NET_GAIA_GAIA_AUTH_FETCHER_UNITTEST_H_
64