blob: 8d81e41c7f90c0356b1cf0b87951a589a4d99a1d [file] [log] [blame]
// Copyright 2014 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#ifndef CHROMEOS_LOGIN_AUTH_MOCK_URL_FETCHERS_H_
#define CHROMEOS_LOGIN_AUTH_MOCK_URL_FETCHERS_H_
#include <string>
#include "base/compiler_specific.h"
#include "base/memory/weak_ptr.h"
#include "base/message_loop/message_loop.h"
#include "chromeos/chromeos_export.h"
#include "net/url_request/test_url_fetcher_factory.h"
#include "net/url_request/url_request_status.h"
#include "url/gurl.h"
namespace net {
class URLFetcherDelegate;
}
namespace chromeos {
// Simulates a URL fetch by posting a delayed task. This fetch expects to be
// canceled, and fails the test if it is not
class ExpectCanceledFetcher : public net::TestURLFetcher {
public:
ExpectCanceledFetcher(bool success,
const GURL& url,
const std::string& results,
net::URLFetcher::RequestType request_type,
net::URLFetcherDelegate* d);
~ExpectCanceledFetcher() override;
void Start() override;
void CompleteFetch();
private:
base::WeakPtrFactory<ExpectCanceledFetcher> weak_factory_;
DISALLOW_COPY_AND_ASSIGN(ExpectCanceledFetcher);
};
class GotCanceledFetcher : public net::TestURLFetcher {
public:
GotCanceledFetcher(bool success,
const GURL& url,
const std::string& results,
net::URLFetcher::RequestType request_type,
net::URLFetcherDelegate* d);
~GotCanceledFetcher() override;
void Start() override;
private:
DISALLOW_COPY_AND_ASSIGN(GotCanceledFetcher);
};
class SuccessFetcher : public net::TestURLFetcher {
public:
SuccessFetcher(bool success,
const GURL& url,
const std::string& results,
net::URLFetcher::RequestType request_type,
net::URLFetcherDelegate* d);
~SuccessFetcher() override;
void Start() override;
private:
DISALLOW_COPY_AND_ASSIGN(SuccessFetcher);
};
class FailFetcher : public net::TestURLFetcher {
public:
FailFetcher(bool success,
const GURL& url,
const std::string& results,
net::URLFetcher::RequestType request_type,
net::URLFetcherDelegate* d);
~FailFetcher() override;
void Start() override;
private:
DISALLOW_COPY_AND_ASSIGN(FailFetcher);
};
class CaptchaFetcher : public net::TestURLFetcher {
public:
CaptchaFetcher(bool success,
const GURL& url,
const std::string& results,
net::URLFetcher::RequestType request_type,
net::URLFetcherDelegate* d);
~CaptchaFetcher() override;
static std::string GetCaptchaToken();
static std::string GetCaptchaUrl();
static std::string GetUnlockUrl();
void Start() override;
private:
static const char kCaptchaToken[];
static const char kCaptchaUrlBase[];
static const char kCaptchaUrlFragment[];
static const char kUnlockUrl[];
DISALLOW_COPY_AND_ASSIGN(CaptchaFetcher);
};
class HostedFetcher : public net::TestURLFetcher {
public:
HostedFetcher(bool success,
const GURL& url,
const std::string& results,
net::URLFetcher::RequestType request_type,
net::URLFetcherDelegate* d);
~HostedFetcher() override;
void Start() override;
private:
DISALLOW_COPY_AND_ASSIGN(HostedFetcher);
};
} // namespace chromeos
#endif // CHROMEOS_LOGIN_AUTH_MOCK_URL_FETCHERS_H_