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_TEST_WEBKIT_PLATFORM_SUPPORT_H_
6 #define CONTENT_TEST_TEST_WEBKIT_PLATFORM_SUPPORT_H_
8 #include "base/compiler_specific.h"
9 #include "base/files/scoped_temp_dir.h"
10 #include "content/child/blink_platform_impl.h"
11 #include "content/child/simple_webmimeregistry_impl.h"
12 #include "content/child/webfileutilities_impl.h"
13 #include "content/renderer/compositor_bindings/web_compositor_support_impl.h"
14 #include "content/test/mock_webclipboard_impl.h"
15 #include "content/test/weburl_loader_mock_factory.h"
16 #include "third_party/WebKit/public/platform/WebUnitTestSupport.h"
23 class WebLayerTreeView
;
28 // An implementation of WebKitPlatformSupport for tests.
29 class TestWebKitPlatformSupport
30 : public blink::WebUnitTestSupport
,
31 public BlinkPlatformImpl
{
33 TestWebKitPlatformSupport();
34 virtual ~TestWebKitPlatformSupport();
36 virtual blink::WebMimeRegistry
* mimeRegistry();
37 virtual blink::WebClipboard
* clipboard();
38 virtual blink::WebFileUtilities
* fileUtilities();
39 virtual blink::WebIDBFactory
* idbFactory();
41 virtual blink::WebURLLoader
* createURLLoader();
42 virtual blink::WebString
userAgent() OVERRIDE
;
43 virtual blink::WebData
loadResource(const char* name
);
44 virtual blink::WebString
queryLocalizedString(
45 blink::WebLocalizedString::Name name
);
46 virtual blink::WebString
queryLocalizedString(
47 blink::WebLocalizedString::Name name
,
48 const blink::WebString
& value
);
49 virtual blink::WebString
queryLocalizedString(
50 blink::WebLocalizedString::Name name
,
51 const blink::WebString
& value1
,
52 const blink::WebString
& value2
);
53 virtual blink::WebString
defaultLocale();
55 #if defined(OS_WIN) || defined(OS_MACOSX)
56 void SetThemeEngine(blink::WebThemeEngine
* engine
);
57 virtual blink::WebThemeEngine
* themeEngine();
60 virtual blink::WebCompositorSupport
* compositorSupport();
62 WebURLLoaderMockFactory
* url_loader_factory() {
63 return url_loader_factory_
.get();
66 const base::FilePath
& file_system_root() const {
67 return file_system_root_
.path();
70 virtual blink::WebGestureCurve
* createFlingAnimationCurve(
71 blink::WebGestureDevice device_source
,
72 const blink::WebFloatPoint
& velocity
,
73 const blink::WebSize
& cumulative_scroll
) OVERRIDE
;
75 virtual blink::WebUnitTestSupport
* unitTestSupport();
77 // WebUnitTestSupport implementation
78 virtual void registerMockedURL(const blink::WebURL
& url
,
79 const blink::WebURLResponse
& response
,
80 const blink::WebString
& filePath
);
81 virtual void registerMockedErrorURL(const blink::WebURL
& url
,
82 const blink::WebURLResponse
& response
,
83 const blink::WebURLError
& error
);
84 virtual void unregisterMockedURL(const blink::WebURL
& url
);
85 virtual void unregisterAllMockedURLs();
86 virtual void serveAsynchronousMockedRequests();
87 virtual blink::WebString
webKitRootDir();
88 virtual blink::WebLayerTreeView
* createLayerTreeViewForTesting();
89 virtual blink::WebData
readFromFile(const blink::WebString
& path
);
92 SimpleWebMimeRegistryImpl mime_registry_
;
93 scoped_ptr
<MockWebClipboardImpl
> mock_clipboard_
;
94 WebFileUtilitiesImpl file_utilities_
;
95 base::ScopedTempDir file_system_root_
;
96 scoped_ptr
<WebURLLoaderMockFactory
> url_loader_factory_
;
97 WebCompositorSupportImpl compositor_support_
;
98 scoped_ptr
<base::StatsTable
> stats_table_
;
100 #if defined(OS_WIN) || defined(OS_MACOSX)
101 blink::WebThemeEngine
* active_theme_engine_
;
103 DISALLOW_COPY_AND_ASSIGN(TestWebKitPlatformSupport
);
106 } // namespace content
108 #endif // CONTENT_TEST_TEST_WEBKIT_PLATFORM_SUPPORT_H_