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