blob: 12b963f9e768b09ac2c25246886beb031896403d [file] [log] [blame]
David Ghandehari9e5b5872016-07-28 09:50:04 -07001// Copyright (c) 2012 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 NET_PROXY_MOCK_PROXY_SCRIPT_FETCHER_H_
6#define NET_PROXY_MOCK_PROXY_SCRIPT_FETCHER_H_
7
8#include "base/compiler_specific.h"
9#include "googleurl/src/gurl.h"
10#include "net/proxy/proxy_script_fetcher.h"
11
12#include <string>
13
14namespace net {
15
16class URLRequestContext;
17
18// A mock ProxyScriptFetcher. No result will be returned to the fetch client
19// until we call NotifyFetchCompletion() to set the results.
20class MockProxyScriptFetcher : public ProxyScriptFetcher {
21 public:
22 MockProxyScriptFetcher();
23 virtual ~MockProxyScriptFetcher();
24
25 // ProxyScriptFetcher implementation.
26 virtual int Fetch(const GURL& url,
27 string16* text,
28 const CompletionCallback& callback) OVERRIDE;
29 virtual void Cancel() OVERRIDE;
30 virtual URLRequestContext* GetRequestContext() const OVERRIDE;
31
32 void NotifyFetchCompletion(int result, const std::string& ascii_text);
33 const GURL& pending_request_url() const;
34 bool has_pending_request() const;
35
36 // Spins the message loop until this->Fetch() is invoked.
37 void WaitUntilFetch();
38
39 private:
40 GURL pending_request_url_;
41 CompletionCallback pending_request_callback_;
42 string16* pending_request_text_;
43 bool waiting_for_fetch_;
44};
45
46} // namespace net
47
48#endif // NET_PROXY_MOCK_PROXY_SCRIPT_FETCHER_H_