Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(291)

Side by Side Diff: webkit/support/weburl_loader_mock_factory.h

Issue 23526028: Move source files from webkit/support to content/test (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: fixes Created 7 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « webkit/support/weburl_loader_mock.cc ('k') | webkit/support/weburl_loader_mock_factory.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
(Empty)
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 WEBKIT_SUPPORT_WEBURL_LOADER_MOCK_FACTORY_H_
6 #define WEBKIT_SUPPORT_WEBURL_LOADER_MOCK_FACTORY_H_
7
8 #include <map>
9
10 #include "base/files/file_path.h"
11 #include "third_party/WebKit/public/platform/WebURL.h"
12 #include "third_party/WebKit/public/platform/WebURLError.h"
13 #include "third_party/WebKit/public/platform/WebURLRequest.h"
14 #include "third_party/WebKit/public/platform/WebURLResponse.h"
15
16 namespace WebKit {
17 class WebData;
18 class WebURLLoader;
19 }
20
21 class WebURLLoaderMock;
22
23 // A factory that creates WebURLLoaderMock to simulate resource loading in
24 // tests.
25 // You register files for specific URLs, the content of the file is then served
26 // when these URLs are loaded.
27 // In order to serve the asynchronous requests, you need to invoke
28 // ServeAsynchronousRequest.
29 class WebURLLoaderMockFactory {
30 public:
31 WebURLLoaderMockFactory();
32 virtual ~WebURLLoaderMockFactory();
33
34 // Called by TestWebKitPlatformSupport to create a WebURLLoader.
35 // Non-mocked request are forwarded to |default_loader| which should not be
36 // NULL.
37 virtual WebKit::WebURLLoader* CreateURLLoader(
38 WebKit::WebURLLoader* default_loader);
39
40 // Registers a response and the contents to be served when the specified URL
41 // is loaded.
42 void RegisterURL(const WebKit::WebURL& url,
43 const WebKit::WebURLResponse& response,
44 const WebKit::WebString& filePath);
45
46 // Registers an error to be served when the specified URL is requested.
47 void RegisterErrorURL(const WebKit::WebURL& url,
48 const WebKit::WebURLResponse& response,
49 const WebKit::WebURLError& error);
50
51 // Unregisters |url| so it will no longer be mocked.
52 void UnregisterURL(const WebKit::WebURL& url);
53
54 // Unregister all URLs so no URL will be mocked anymore.
55 void UnregisterAllURLs();
56
57 // Serves all the pending asynchronous requests.
58 void ServeAsynchronousRequests();
59
60 // Returns the last request handled by |ServeAsynchronousRequests()|.
61 WebKit::WebURLRequest GetLastHandledAsynchronousRequest();
62
63 // Returns true if |url| was registered for being mocked.
64 bool IsMockedURL(const WebKit::WebURL& url);
65
66 // Called by the loader to load a resource.
67 void LoadSynchronously(const WebKit::WebURLRequest& request,
68 WebKit::WebURLResponse* response,
69 WebKit::WebURLError* error,
70 WebKit::WebData* data);
71 void LoadAsynchronouly(const WebKit::WebURLRequest& request,
72 WebURLLoaderMock* loader);
73
74 // Removes the loader from the list of pending loaders.
75 void CancelLoad(WebURLLoaderMock* loader);
76
77 private:
78 struct ResponseInfo {
79 WebKit::WebURLResponse response;
80 base::FilePath file_path;
81 };
82
83
84 // Loads the specified request and populates the response, error and data
85 // accordingly.
86 void LoadRequest(const WebKit::WebURLRequest& request,
87 WebKit::WebURLResponse* response,
88 WebKit::WebURLError* error,
89 WebKit::WebData* data);
90
91 // Checks if the loader is pending. Otherwise, it may have been deleted.
92 bool IsPending(WebURLLoaderMock* loader);
93
94 // Reads |m_filePath| and puts its content in |data|.
95 // Returns true if it successfully read the file.
96 static bool ReadFile(const base::FilePath& file_path, WebKit::WebData* data);
97
98 // The loaders that have not being served data yet.
99 typedef std::map<WebURLLoaderMock*, WebKit::WebURLRequest> LoaderToRequestMap;
100 LoaderToRequestMap pending_loaders_;
101
102 typedef std::map<GURL, WebKit::WebURLError> URLToErrorMap;
103 URLToErrorMap url_to_error_info_;
104
105 // Table of the registered URLs and the responses that they should receive.
106 typedef std::map<GURL, ResponseInfo> URLToResponseMap;
107 URLToResponseMap url_to_reponse_info_;
108
109 WebKit::WebURLRequest last_handled_asynchronous_request_;
110
111 DISALLOW_COPY_AND_ASSIGN(WebURLLoaderMockFactory);
112 };
113
114 #endif // WEBKIT_SUPPORT_WEBURL_LOADER_MOCK_FACTORY_H_
115
OLDNEW
« no previous file with comments | « webkit/support/weburl_loader_mock.cc ('k') | webkit/support/weburl_loader_mock_factory.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698