|  | // Copyright 2013 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 CONTENT_TEST_WEBURL_LOADER_MOCK_H_ | 
|  | #define CONTENT_TEST_WEBURL_LOADER_MOCK_H_ | 
|  |  | 
|  | #include "base/basictypes.h" | 
|  | #include "base/memory/scoped_ptr.h" | 
|  | #include "third_party/WebKit/public/platform/WebURLLoader.h" | 
|  |  | 
|  | namespace blink { | 
|  | class WebData; | 
|  | struct WebURLError; | 
|  | class WebURLLoaderClient; | 
|  | class WebURLRequest; | 
|  | class WebURLResponse; | 
|  | } | 
|  |  | 
|  | class WebURLLoaderMockFactory; | 
|  |  | 
|  | // A simple class for mocking WebURLLoader. | 
|  | // If the WebURLLoaderMockFactory it is associated with has been configured to | 
|  | // mock the request it gets, it serves the mocked resource.  Otherwise it just | 
|  | // forwards it to the default loader. | 
|  | class WebURLLoaderMock : public blink::WebURLLoader { | 
|  | public: | 
|  | // This object becomes the owner of |default_loader|. | 
|  | WebURLLoaderMock(WebURLLoaderMockFactory* factory, | 
|  | blink::WebURLLoader* default_loader); | 
|  | virtual ~WebURLLoaderMock(); | 
|  |  | 
|  | // Simulates the asynchronous request being served. | 
|  | void ServeAsynchronousRequest(const blink::WebURLResponse& response, | 
|  | const blink::WebData& data, | 
|  | const blink::WebURLError& error); | 
|  |  | 
|  | // Simulates the redirect being served. | 
|  | blink::WebURLRequest ServeRedirect( | 
|  | const blink::WebURLResponse& redirectResponse); | 
|  |  | 
|  | // WebURLLoader methods: | 
|  | virtual void loadSynchronously(const blink::WebURLRequest& request, | 
|  | blink::WebURLResponse& response, | 
|  | blink::WebURLError& error, | 
|  | blink::WebData& data); | 
|  | virtual void loadAsynchronously(const blink::WebURLRequest& request, | 
|  | blink::WebURLLoaderClient* client); | 
|  | virtual void cancel(); | 
|  | virtual void setDefersLoading(bool defer); | 
|  |  | 
|  | bool isDeferred() { return is_deferred_; } | 
|  |  | 
|  | private: | 
|  | WebURLLoaderMockFactory* factory_; | 
|  | blink::WebURLLoaderClient* client_; | 
|  | scoped_ptr<blink::WebURLLoader> default_loader_; | 
|  | bool using_default_loader_; | 
|  | bool is_deferred_; | 
|  | bool* this_deleted_; | 
|  |  | 
|  | DISALLOW_COPY_AND_ASSIGN(WebURLLoaderMock); | 
|  | }; | 
|  |  | 
|  | #endif  // CONTENT_TEST_WEBURL_LOADER_MOCK_H_ |