• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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.
4 
5 #ifndef CONTENT_TEST_WEBURL_LOADER_MOCK_H_
6 #define CONTENT_TEST_WEBURL_LOADER_MOCK_H_
7 
8 #include "base/basictypes.h"
9 #include "base/memory/scoped_ptr.h"
10 #include "third_party/WebKit/public/platform/WebURLLoader.h"
11 
12 namespace blink {
13 class WebData;
14 struct WebURLError;
15 class WebURLLoaderClient;
16 class WebURLRequest;
17 class WebURLResponse;
18 }
19 
20 class WebURLLoaderMockFactory;
21 
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 {
27  public:
28   // This object becomes the owner of |default_loader|.
29   WebURLLoaderMock(WebURLLoaderMockFactory* factory,
30                    blink::WebURLLoader* default_loader);
31   virtual ~WebURLLoaderMock();
32 
33   // Simulates the asynchronous request being served.
34   void ServeAsynchronousRequest(const blink::WebURLResponse& response,
35                                 const blink::WebData& data,
36                                 const blink::WebURLError& error);
37 
38   // Simulates the redirect being served.
39   blink::WebURLRequest ServeRedirect(
40       const blink::WebURLResponse& redirectResponse);
41 
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);
51 
isDeferred()52   bool isDeferred() { return is_deferred_; }
53 
54  private:
55   WebURLLoaderMockFactory* factory_;
56   blink::WebURLLoaderClient* client_;
57   scoped_ptr<blink::WebURLLoader> default_loader_;
58   bool using_default_loader_;
59   bool is_deferred_;
60 
61   DISALLOW_COPY_AND_ASSIGN(WebURLLoaderMock);
62 };
63 
64 #endif  // CONTENT_TEST_WEBURL_LOADER_MOCK_H_
65