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_TEST_WEBKIT_PLATFORM_SUPPORT_H_ 6 #define WEBKIT_SUPPORT_TEST_WEBKIT_PLATFORM_SUPPORT_H_ 7 8 #include "base/compiler_specific.h" 9 #include "base/files/scoped_temp_dir.h" 10 #include "third_party/WebKit/public/platform/WebUnitTestSupport.h" 11 #include "webkit/child/webkitplatformsupport_child_impl.h" 12 #include "webkit/glue/simple_webmimeregistry_impl.h" 13 #include "webkit/glue/webfileutilities_impl.h" 14 #include "webkit/renderer/compositor_bindings/web_compositor_support_impl.h" 15 #include "webkit/support/mock_webclipboard_impl.h" 16 #include "webkit/support/weburl_loader_mock_factory.h" 17 18 namespace WebKit { 19 class WebLayerTreeView; 20 } 21 22 // An implementation of WebKitPlatformSupport for tests. 23 class TestWebKitPlatformSupport : 24 public WebKit::WebUnitTestSupport, 25 public webkit_glue::WebKitPlatformSupportChildImpl { 26 public: 27 TestWebKitPlatformSupport(); 28 virtual ~TestWebKitPlatformSupport(); 29 30 virtual WebKit::WebMimeRegistry* mimeRegistry(); 31 virtual WebKit::WebClipboard* clipboard(); 32 virtual WebKit::WebFileUtilities* fileUtilities(); 33 virtual WebKit::WebIDBFactory* idbFactory(); 34 35 virtual WebKit::WebURLLoader* createURLLoader(); 36 virtual WebKit::WebData loadResource(const char* name); 37 virtual WebKit::WebString queryLocalizedString( 38 WebKit::WebLocalizedString::Name name); 39 virtual WebKit::WebString queryLocalizedString( 40 WebKit::WebLocalizedString::Name name, 41 const WebKit::WebString& value); 42 virtual WebKit::WebString queryLocalizedString( 43 WebKit::WebLocalizedString::Name name, 44 const WebKit::WebString& value1, 45 const WebKit::WebString& value2); 46 virtual WebKit::WebString defaultLocale(); 47 48 #if defined(OS_WIN) || defined(OS_MACOSX) 49 void SetThemeEngine(WebKit::WebThemeEngine* engine); 50 virtual WebKit::WebThemeEngine *themeEngine(); 51 #endif 52 53 virtual WebKit::WebCompositorSupport* compositorSupport(); 54 55 WebURLLoaderMockFactory* url_loader_factory() { 56 return &url_loader_factory_; 57 } 58 59 const base::FilePath& file_system_root() const { 60 return file_system_root_.path(); 61 } 62 63 virtual base::string16 GetLocalizedString(int message_id) OVERRIDE; 64 virtual base::StringPiece GetDataResource( 65 int resource_id, 66 ui::ScaleFactor scale_factor) OVERRIDE; 67 virtual webkit_glue::ResourceLoaderBridge* CreateResourceLoader( 68 const webkit_glue::ResourceLoaderBridge::RequestInfo& request_info) 69 OVERRIDE; 70 virtual webkit_glue::WebSocketStreamHandleBridge* CreateWebSocketBridge( 71 WebKit::WebSocketStreamHandle* handle, 72 webkit_glue::WebSocketStreamHandleDelegate* delegate) OVERRIDE; 73 74 virtual WebKit::WebGestureCurve* createFlingAnimationCurve( 75 int device_source, 76 const WebKit::WebFloatPoint& velocity, 77 const WebKit::WebSize& cumulative_scroll); 78 79 virtual WebKit::WebUnitTestSupport* unitTestSupport(); 80 81 // WebUnitTestSupport implementation 82 virtual void registerMockedURL(const WebKit::WebURL& url, 83 const WebKit::WebURLResponse& response, 84 const WebKit::WebString& filePath); 85 virtual void registerMockedErrorURL(const WebKit::WebURL& url, 86 const WebKit::WebURLResponse& response, 87 const WebKit::WebURLError& error); 88 virtual void unregisterMockedURL(const WebKit::WebURL& url); 89 virtual void unregisterAllMockedURLs(); 90 virtual void serveAsynchronousMockedRequests(); 91 virtual WebKit::WebString webKitRootDir(); 92 virtual WebKit::WebLayerTreeView* createLayerTreeViewForTesting(); 93 virtual WebKit::WebLayerTreeView* createLayerTreeViewForTesting( 94 TestViewType type); 95 virtual WebKit::WebData readFromFile(const WebKit::WebString& path); 96 97 private: 98 webkit_glue::SimpleWebMimeRegistryImpl mime_registry_; 99 MockWebClipboardImpl mock_clipboard_; 100 webkit_glue::WebFileUtilitiesImpl file_utilities_; 101 base::ScopedTempDir file_system_root_; 102 WebURLLoaderMockFactory url_loader_factory_; 103 webkit::WebCompositorSupportImpl compositor_support_; 104 105 #if defined(OS_WIN) || defined(OS_MACOSX) 106 WebKit::WebThemeEngine* active_theme_engine_; 107 #endif 108 DISALLOW_COPY_AND_ASSIGN(TestWebKitPlatformSupport); 109 }; 110 111 #endif // WEBKIT_SUPPORT_TEST_WEBKIT_PLATFORM_SUPPORT_H_ 112