Home | History | Annotate | Download | only in proxy
      1 // 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 "net/proxy/proxy_script_fetcher.h"
     10 #include "url/gurl.h"
     11 
     12 #include <string>
     13 
     14 namespace net {
     15 
     16 class URLRequestContext;
     17 
     18 // A mock ProxyScriptFetcher. No result will be returned to the fetch client
     19 // until we call NotifyFetchCompletion() to set the results.
     20 class MockProxyScriptFetcher : public ProxyScriptFetcher {
     21  public:
     22   MockProxyScriptFetcher();
     23   virtual ~MockProxyScriptFetcher();
     24 
     25   // ProxyScriptFetcher implementation.
     26   virtual int Fetch(const GURL& url,
     27                     base::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   base::string16* pending_request_text_;
     43   bool waiting_for_fetch_;
     44 };
     45 
     46 }  // namespace net
     47 
     48 #endif  // NET_PROXY_MOCK_PROXY_SCRIPT_FETCHER_H_
     49