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