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"
15 class WebURLLoaderClient
;
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 blink::WebURLLoader
{
28 // This object becomes the owner of |default_loader|.
29 WebURLLoaderMock(WebURLLoaderMockFactory
* factory
,
30 blink::WebURLLoader
* default_loader
);
31 virtual ~WebURLLoaderMock();
33 // Simulates the asynchronous request being served.
34 void ServeAsynchronousRequest(const blink::WebURLResponse
& response
,
35 const blink::WebData
& data
,
36 const blink::WebURLError
& error
);
38 // Simulates the redirect being served.
39 blink::WebURLRequest
ServeRedirect(
40 const blink::WebURLResponse
& redirectResponse
);
42 // WebURLLoader methods:
43 virtual void loadSynchronously(const blink::WebURLRequest
& request
,
44 blink::WebURLResponse
& response
,
45 blink::WebURLError
& error
,
46 blink::WebData
& data
);
47 virtual void loadAsynchronously(const blink::WebURLRequest
& request
,
48 blink::WebURLLoaderClient
* client
);
49 virtual void cancel();
50 virtual void setDefersLoading(bool defer
);
52 bool isDeferred() { return is_deferred_
; }
55 WebURLLoaderMockFactory
* factory_
;
56 blink::WebURLLoaderClient
* client_
;
57 scoped_ptr
<blink::WebURLLoader
> default_loader_
;
58 bool using_default_loader_
;
61 DISALLOW_COPY_AND_ASSIGN(WebURLLoaderMock
);
64 #endif // CONTENT_TEST_WEBURL_LOADER_MOCK_H_