• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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 CHROMEOS_LOGIN_AUTH_MOCK_URL_FETCHERS_H_
6 #define CHROMEOS_LOGIN_AUTH_MOCK_URL_FETCHERS_H_
7 
8 #include <string>
9 
10 #include "base/compiler_specific.h"
11 #include "base/memory/weak_ptr.h"
12 #include "base/message_loop/message_loop.h"
13 #include "chromeos/chromeos_export.h"
14 #include "net/url_request/test_url_fetcher_factory.h"
15 #include "net/url_request/url_request_status.h"
16 #include "url/gurl.h"
17 
18 namespace net {
19 class URLFetcherDelegate;
20 }
21 
22 namespace chromeos {
23 
24 // Simulates a URL fetch by posting a delayed task. This fetch expects to be
25 // canceled, and fails the test if it is not
26 class ExpectCanceledFetcher : public net::TestURLFetcher {
27  public:
28   ExpectCanceledFetcher(bool success,
29                         const GURL& url,
30                         const std::string& results,
31                         net::URLFetcher::RequestType request_type,
32                         net::URLFetcherDelegate* d);
33   virtual ~ExpectCanceledFetcher();
34 
35   virtual void Start() OVERRIDE;
36 
37   void CompleteFetch();
38 
39  private:
40   base::WeakPtrFactory<ExpectCanceledFetcher> weak_factory_;
41   DISALLOW_COPY_AND_ASSIGN(ExpectCanceledFetcher);
42 };
43 
44 class GotCanceledFetcher : public net::TestURLFetcher {
45  public:
46   GotCanceledFetcher(bool success,
47                      const GURL& url,
48                      const std::string& results,
49                      net::URLFetcher::RequestType request_type,
50                      net::URLFetcherDelegate* d);
51   virtual ~GotCanceledFetcher();
52 
53   virtual void Start() OVERRIDE;
54 
55  private:
56   DISALLOW_COPY_AND_ASSIGN(GotCanceledFetcher);
57 };
58 
59 class SuccessFetcher : public net::TestURLFetcher {
60  public:
61   SuccessFetcher(bool success,
62                  const GURL& url,
63                  const std::string& results,
64                  net::URLFetcher::RequestType request_type,
65                  net::URLFetcherDelegate* d);
66   virtual ~SuccessFetcher();
67 
68   virtual void Start() OVERRIDE;
69 
70  private:
71   DISALLOW_COPY_AND_ASSIGN(SuccessFetcher);
72 };
73 
74 class FailFetcher : public net::TestURLFetcher {
75  public:
76   FailFetcher(bool success,
77               const GURL& url,
78               const std::string& results,
79               net::URLFetcher::RequestType request_type,
80               net::URLFetcherDelegate* d);
81   virtual ~FailFetcher();
82 
83   virtual void Start() OVERRIDE;
84 
85  private:
86   DISALLOW_COPY_AND_ASSIGN(FailFetcher);
87 };
88 
89 class CaptchaFetcher : public net::TestURLFetcher {
90  public:
91   CaptchaFetcher(bool success,
92                  const GURL& url,
93                  const std::string& results,
94                  net::URLFetcher::RequestType request_type,
95                  net::URLFetcherDelegate* d);
96   virtual ~CaptchaFetcher();
97 
98   static std::string GetCaptchaToken();
99   static std::string GetCaptchaUrl();
100   static std::string GetUnlockUrl();
101 
102   virtual void Start() OVERRIDE;
103 
104  private:
105   static const char kCaptchaToken[];
106   static const char kCaptchaUrlBase[];
107   static const char kCaptchaUrlFragment[];
108   static const char kUnlockUrl[];
109   DISALLOW_COPY_AND_ASSIGN(CaptchaFetcher);
110 };
111 
112 class HostedFetcher : public net::TestURLFetcher {
113  public:
114   HostedFetcher(bool success,
115                 const GURL& url,
116                 const std::string& results,
117                 net::URLFetcher::RequestType request_type,
118                 net::URLFetcherDelegate* d);
119   virtual ~HostedFetcher();
120 
121   virtual void Start() OVERRIDE;
122 
123  private:
124   DISALLOW_COPY_AND_ASSIGN(HostedFetcher);
125 };
126 
127 }  // namespace chromeos
128 
129 #endif  // CHROMEOS_LOGIN_AUTH_MOCK_URL_FETCHERS_H_
130