Refactor management of overview window copy lifetime into a separate class.
[chromium-blink-merge.git] / content / test / weburl_loader_mock.h
blob6a77fd96b5a62c3bc38c3333ad1c3823a8227fe1
1 // Copyright 2013 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.
5 #ifndef CONTENT_TEST_WEBURL_LOADER_MOCK_H_
6 #define CONTENT_TEST_WEBURL_LOADER_MOCK_H_
8 #include "base/basictypes.h"
9 #include "base/memory/scoped_ptr.h"
10 #include "third_party/WebKit/public/platform/WebURLLoader.h"
12 namespace WebKit {
13 class WebData;
14 struct WebURLError;
15 class WebURLLoaderClient;
16 class WebURLRequest;
17 class WebURLResponse;
20 class WebURLLoaderMockFactory;
22 // A simple class for mocking WebURLLoader.
23 // If the WebURLLoaderMockFactory it is associated with has been configured to
24 // mock the request it gets, it serves the mocked resource. Otherwise it just
25 // forwards it to the default loader.
26 class WebURLLoaderMock : public WebKit::WebURLLoader {
27 public:
28 // This object becomes the owner of |default_loader|.
29 WebURLLoaderMock(WebURLLoaderMockFactory* factory,
30 WebKit::WebURLLoader* default_loader);
31 virtual ~WebURLLoaderMock();
33 // Simulates the asynchronous request being served.
34 void ServeAsynchronousRequest(const WebKit::WebURLResponse& response,
35 const WebKit::WebData& data,
36 const WebKit::WebURLError& error);
38 // Simulates the redirect being served.
39 WebKit::WebURLRequest ServeRedirect(
40 const WebKit::WebURLResponse& redirectResponse);
42 // WebURLLoader methods:
43 virtual void loadSynchronously(const WebKit::WebURLRequest& request,
44 WebKit::WebURLResponse& response,
45 WebKit::WebURLError& error,
46 WebKit::WebData& data);
47 virtual void loadAsynchronously(const WebKit::WebURLRequest& request,
48 WebKit::WebURLLoaderClient* client);
49 virtual void cancel();
50 virtual void setDefersLoading(bool defer);
52 bool isDeferred() { return is_deferred_; }
54 private:
55 WebURLLoaderMockFactory* factory_;
56 WebKit::WebURLLoaderClient* client_;
57 scoped_ptr<WebKit::WebURLLoader> default_loader_;
58 bool using_default_loader_;
59 bool is_deferred_;
61 DISALLOW_COPY_AND_ASSIGN(WebURLLoaderMock);
64 #endif // CONTENT_TEST_WEBURL_LOADER_MOCK_H_