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 18namespace net { 19class URLFetcherDelegate; 20} 21 22namespace 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 26class 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 44class 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 59class 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 74class 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 89class 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 112class 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