Upstream version 9.37.195.0
[platform/framework/web/crosswalk.git] / src / content / test / test_webkit_platform_support.cc
index 4c9bf77..a55ebf6 100644 (file)
@@ -11,6 +11,7 @@
 #include "base/metrics/stats_counters.h"
 #include "base/path_service.h"
 #include "base/strings/utf_string_conversions.h"
+#include "content/public/common/content_switches.h"
 #include "content/test/mock_webclipboard_impl.h"
 #include "content/test/web_gesture_curve_mock.h"
 #include "content/test/web_layer_tree_view_impl_for_testing.h"
 #include "third_party/WebKit/public/web/WebDatabase.h"
 #include "third_party/WebKit/public/web/WebKit.h"
 #include "third_party/WebKit/public/web/WebRuntimeFeatures.h"
-#include "third_party/WebKit/public/web/WebScriptController.h"
 #include "third_party/WebKit/public/web/WebSecurityPolicy.h"
 #include "third_party/WebKit/public/web/WebStorageEventDispatcher.h"
 #include "v8/include/v8.h"
 #include "webkit/browser/database/vfs_backend.h"
-#include "webkit/child/webkitplatformsupport_impl.h"
-#include "webkit/glue/simple_webmimeregistry_impl.h"
-#include "webkit/glue/webkit_glue.h"
-#include "webkit/renderer/compositor_bindings/web_compositor_support_impl.h"
 
-#if defined(OS_WIN)
-#include "third_party/WebKit/public/platform/win/WebThemeEngine.h"
-#elif defined(OS_MACOSX)
+#if defined(OS_MACOSX)
 #include "base/mac/mac_util.h"
 #endif
 
-using WebKit::WebScriptController;
-using webkit::WebLayerTreeViewImplForTesting;
-
 namespace content {
 
 TestWebKitPlatformSupport::TestWebKitPlatformSupport() {
   url_loader_factory_.reset(new WebURLLoaderMockFactory());
   mock_clipboard_.reset(new MockWebClipboardImpl());
-  v8::V8::SetCounterFunction(base::StatsTable::FindLocation);
-
-  WebKit::initialize(this);
-  WebKit::setLayoutTestMode(true);
-  WebKit::WebSecurityPolicy::registerURLSchemeAsLocal(
-      WebKit::WebString::fromUTF8("test-shell-resource"));
-  WebKit::WebSecurityPolicy::registerURLSchemeAsNoAccess(
-      WebKit::WebString::fromUTF8("test-shell-resource"));
-  WebKit::WebSecurityPolicy::registerURLSchemeAsDisplayIsolated(
-      WebKit::WebString::fromUTF8("test-shell-resource"));
-  WebKit::WebSecurityPolicy::registerURLSchemeAsEmptyDocument(
-      WebKit::WebString::fromUTF8("test-shell-resource"));
-  WebScriptController::enableV8SingleThreadMode();
-  WebKit::WebRuntimeFeatures::enableApplicationCache(true);
-  WebKit::WebRuntimeFeatures::enableDatabase(true);
-  WebKit::WebRuntimeFeatures::enableNotifications(true);
-  WebKit::WebRuntimeFeatures::enableTouch(true);
+
+  // Create an anonymous stats table since we don't need to share between
+  // processes.
+  stats_table_.reset(
+      new base::StatsTable(base::StatsTable::TableIdentifier(), 20, 200));
+  base::StatsTable::set_current(stats_table_.get());
+
+  blink::initialize(this);
+  blink::mainThreadIsolate()->SetCounterFunction(
+      base::StatsTable::FindLocation);
+  blink::setLayoutTestMode(true);
+  blink::WebSecurityPolicy::registerURLSchemeAsLocal(
+      blink::WebString::fromUTF8("test-shell-resource"));
+  blink::WebSecurityPolicy::registerURLSchemeAsNoAccess(
+      blink::WebString::fromUTF8("test-shell-resource"));
+  blink::WebSecurityPolicy::registerURLSchemeAsDisplayIsolated(
+      blink::WebString::fromUTF8("test-shell-resource"));
+  blink::WebSecurityPolicy::registerURLSchemeAsEmptyDocument(
+      blink::WebString::fromUTF8("test-shell-resource"));
+  blink::WebRuntimeFeatures::enableApplicationCache(true);
+  blink::WebRuntimeFeatures::enableDatabase(true);
+  blink::WebRuntimeFeatures::enableNotifications(true);
+  blink::WebRuntimeFeatures::enableTouch(true);
 
   // Load libraries for media and enable the media player.
   bool enable_media = false;
@@ -80,13 +77,9 @@ TestWebKitPlatformSupport::TestWebKitPlatformSupport() {
     if (media::InitializeMediaLibrary(module_path))
       enable_media = true;
   }
-  WebKit::WebRuntimeFeatures::enableMediaPlayer(enable_media);
+  blink::WebRuntimeFeatures::enableMediaPlayer(enable_media);
   LOG_IF(WARNING, !enable_media) << "Failed to initialize the media library.\n";
 
-  // TODO(joth): Make a dummy geolocation service implemenation for
-  // test_shell, and set this to true. http://crbug.com/36451
-  WebKit::WebRuntimeFeatures::enableGeolocation(false);
-
   file_utilities_.set_sandbox_enabled(false);
 
   if (!file_system_root_.CreateUniqueTempDir()) {
@@ -100,44 +93,51 @@ TestWebKitPlatformSupport::TestWebKitPlatformSupport() {
   SetThemeEngine(NULL);
 #endif
 
-  net::CookieMonster::EnableFileScheme();
+  CommandLine::ForCurrentProcess()->AppendSwitch(switches::kEnableFileCookies);
 
   // Test shell always exposes the GC.
-  webkit_glue::SetJavaScriptFlags(" --expose-gc");
+  std::string flags("--expose-gc");
+  v8::V8::SetFlagsFromString(flags.c_str(), static_cast<int>(flags.size()));
 }
 
 TestWebKitPlatformSupport::~TestWebKitPlatformSupport() {
   url_loader_factory_.reset();
   mock_clipboard_.reset();
-  WebKit::shutdown();
+  blink::shutdown();
+  base::StatsTable::set_current(NULL);
+  stats_table_.reset();
 }
 
-WebKit::WebMimeRegistry* TestWebKitPlatformSupport::mimeRegistry() {
+blink::WebMimeRegistry* TestWebKitPlatformSupport::mimeRegistry() {
   return &mime_registry_;
 }
 
-WebKit::WebClipboard* TestWebKitPlatformSupport::clipboard() {
+blink::WebClipboard* TestWebKitPlatformSupport::clipboard() {
   // Mock out clipboard calls so that tests don't mess
   // with each other's copies/pastes when running in parallel.
   return mock_clipboard_.get();
 }
 
-WebKit::WebFileUtilities* TestWebKitPlatformSupport::fileUtilities() {
+blink::WebFileUtilities* TestWebKitPlatformSupport::fileUtilities() {
   return &file_utilities_;
 }
 
-WebKit::WebIDBFactory* TestWebKitPlatformSupport::idbFactory() {
+blink::WebIDBFactory* TestWebKitPlatformSupport::idbFactory() {
   NOTREACHED() <<
       "IndexedDB cannot be tested with in-process harnesses.";
   return NULL;
 }
 
-WebKit::WebURLLoader* TestWebKitPlatformSupport::createURLLoader() {
+blink::WebURLLoader* TestWebKitPlatformSupport::createURLLoader() {
   return url_loader_factory_->CreateURLLoader(
-      webkit_glue::WebKitPlatformSupportImpl::createURLLoader());
+      BlinkPlatformImpl::createURLLoader());
 }
 
-WebKit::WebData TestWebKitPlatformSupport::loadResource(const char* name) {
+blink::WebString TestWebKitPlatformSupport::userAgent() {
+  return blink::WebString::fromUTF8("DumpRenderTree/0.0.0.0");
+}
+
+blink::WebData TestWebKitPlatformSupport::loadResource(const char* name) {
   if (!strcmp(name, "deleteButton")) {
     // Create a red 30x30 square.
     const char red_square[] =
@@ -152,130 +152,104 @@ WebKit::WebData TestWebKitPlatformSupport::loadResource(const char* name) {
         "\x18\x50\xb9\x33\x47\xf9\xa8\x01\x32\xd4\xc2\x03\x00\x33\x84\x0d"
         "\x02\x3a\x91\xeb\xa5\x00\x00\x00\x00\x49\x45\x4e\x44\xae\x42\x60"
         "\x82";
-    return WebKit::WebData(red_square, arraysize(red_square));
+    return blink::WebData(red_square, arraysize(red_square));
   }
-  return webkit_glue::WebKitPlatformSupportImpl::loadResource(name);
+  return blink::WebData();
 }
 
-WebKit::WebString TestWebKitPlatformSupport::queryLocalizedString(
-    WebKit::WebLocalizedString::Name name) {
+blink::WebString TestWebKitPlatformSupport::queryLocalizedString(
+    blink::WebLocalizedString::Name name) {
   // Returns placeholder strings to check if they are correctly localized.
   switch (name) {
-    case WebKit::WebLocalizedString::OtherDateLabel:
-      return ASCIIToUTF16("<<OtherDateLabel>>");
-    case WebKit::WebLocalizedString::OtherMonthLabel:
-      return ASCIIToUTF16("<<OtherMonthLabel>>");
-    case WebKit::WebLocalizedString::OtherTimeLabel:
-      return ASCIIToUTF16("<<OtherTimeLabel>>");
-    case WebKit::WebLocalizedString::OtherWeekLabel:
-      return ASCIIToUTF16("<<OtherWeekLabel>>");
-    case WebKit::WebLocalizedString::CalendarClear:
-      return ASCIIToUTF16("<<CalendarClear>>");
-    case WebKit::WebLocalizedString::CalendarToday:
-      return ASCIIToUTF16("<<CalendarToday>>");
-    case WebKit::WebLocalizedString::ThisMonthButtonLabel:
-      return ASCIIToUTF16("<<ThisMonthLabel>>");
-    case WebKit::WebLocalizedString::ThisWeekButtonLabel:
-      return ASCIIToUTF16("<<ThisWeekLabel>>");
-    case WebKit::WebLocalizedString::WeekFormatTemplate:
-      return ASCIIToUTF16("Week $2, $1");
+    case blink::WebLocalizedString::OtherDateLabel:
+      return base::ASCIIToUTF16("<<OtherDateLabel>>");
+    case blink::WebLocalizedString::OtherMonthLabel:
+      return base::ASCIIToUTF16("<<OtherMonthLabel>>");
+    case blink::WebLocalizedString::OtherTimeLabel:
+      return base::ASCIIToUTF16("<<OtherTimeLabel>>");
+    case blink::WebLocalizedString::OtherWeekLabel:
+      return base::ASCIIToUTF16("<<OtherWeekLabel>>");
+    case blink::WebLocalizedString::CalendarClear:
+      return base::ASCIIToUTF16("<<CalendarClear>>");
+    case blink::WebLocalizedString::CalendarToday:
+      return base::ASCIIToUTF16("<<CalendarToday>>");
+    case blink::WebLocalizedString::ThisMonthButtonLabel:
+      return base::ASCIIToUTF16("<<ThisMonthLabel>>");
+    case blink::WebLocalizedString::ThisWeekButtonLabel:
+      return base::ASCIIToUTF16("<<ThisWeekLabel>>");
+    case blink::WebLocalizedString::WeekFormatTemplate:
+      return base::ASCIIToUTF16("Week $2, $1");
     default:
-      return WebKitPlatformSupportImpl::queryLocalizedString(name);
+      return blink::WebString();
   }
 }
 
-WebKit::WebString TestWebKitPlatformSupport::queryLocalizedString(
-    WebKit::WebLocalizedString::Name name,
-    const WebKit::WebString& value) {
-  if (name == WebKit::WebLocalizedString::ValidationRangeUnderflow)
-    return ASCIIToUTF16("range underflow");
-  if (name == WebKit::WebLocalizedString::ValidationRangeOverflow)
-    return ASCIIToUTF16("range overflow");
-  return WebKitPlatformSupportImpl::queryLocalizedString(name, value);
+blink::WebString TestWebKitPlatformSupport::queryLocalizedString(
+    blink::WebLocalizedString::Name name,
+    const blink::WebString& value) {
+  if (name == blink::WebLocalizedString::ValidationRangeUnderflow)
+    return base::ASCIIToUTF16("range underflow");
+  if (name == blink::WebLocalizedString::ValidationRangeOverflow)
+    return base::ASCIIToUTF16("range overflow");
+  return BlinkPlatformImpl::queryLocalizedString(name, value);
 }
 
-WebKit::WebString TestWebKitPlatformSupport::queryLocalizedString(
-    WebKit::WebLocalizedString::Name name,
-    const WebKit::WebString& value1,
-    const WebKit::WebString& value2) {
-  if (name == WebKit::WebLocalizedString::ValidationTooLong)
-    return ASCIIToUTF16("too long");
-  if (name == WebKit::WebLocalizedString::ValidationStepMismatch)
-    return ASCIIToUTF16("step mismatch");
-  return WebKitPlatformSupportImpl::queryLocalizedString(name, value1, value2);
+blink::WebString TestWebKitPlatformSupport::queryLocalizedString(
+    blink::WebLocalizedString::Name name,
+    const blink::WebString& value1,
+    const blink::WebString& value2) {
+  if (name == blink::WebLocalizedString::ValidationTooLong)
+    return base::ASCIIToUTF16("too long");
+  if (name == blink::WebLocalizedString::ValidationStepMismatch)
+    return base::ASCIIToUTF16("step mismatch");
+  return BlinkPlatformImpl::queryLocalizedString(name, value1, value2);
 }
 
-WebKit::WebString TestWebKitPlatformSupport::defaultLocale() {
-  return ASCIIToUTF16("en-US");
+blink::WebString TestWebKitPlatformSupport::defaultLocale() {
+  return base::ASCIIToUTF16("en-US");
 }
 
 #if defined(OS_WIN) || defined(OS_MACOSX)
-void TestWebKitPlatformSupport::SetThemeEngine(WebKit::WebThemeEngine* engine) {
-  active_theme_engine_ = engine ?
-      engine : WebKitPlatformSupportChildImpl::themeEngine();
+void TestWebKitPlatformSupport::SetThemeEngine(blink::WebThemeEngine* engine) {
+  active_theme_engine_ = engine ? engine : BlinkPlatformImpl::themeEngine();
 }
 
-WebKit::WebThemeEngine* TestWebKitPlatformSupport::themeEngine() {
+blink::WebThemeEngine* TestWebKitPlatformSupport::themeEngine() {
   return active_theme_engine_;
 }
 #endif
 
-WebKit::WebCompositorSupport* TestWebKitPlatformSupport::compositorSupport() {
+blink::WebCompositorSupport* TestWebKitPlatformSupport::compositorSupport() {
   return &compositor_support_;
 }
 
-base::string16 TestWebKitPlatformSupport::GetLocalizedString(int message_id) {
-  return base::string16();
-}
-
-base::StringPiece TestWebKitPlatformSupport::GetDataResource(
-    int resource_id,
-    ui::ScaleFactor scale_factor) {
-  return base::StringPiece();
-}
-
-webkit_glue::ResourceLoaderBridge*
-TestWebKitPlatformSupport::CreateResourceLoader(
-    const webkit_glue::ResourceLoaderBridge::RequestInfo& request_info) {
-  NOTREACHED();
-  return NULL;
-}
-
-webkit_glue::WebSocketStreamHandleBridge*
-TestWebKitPlatformSupport::CreateWebSocketStreamBridge(
-    WebKit::WebSocketStreamHandle* handle,
-    webkit_glue::WebSocketStreamHandleDelegate* delegate) {
-  NOTREACHED();
-  return NULL;
-}
-
-WebKit::WebGestureCurve* TestWebKitPlatformSupport::createFlingAnimationCurve(
-    int device_source,
-    const WebKit::WebFloatPoint& velocity,
-    const WebKit::WebSize& cumulative_scroll) {
+blink::WebGestureCurve* TestWebKitPlatformSupport::createFlingAnimationCurve(
+    blink::WebGestureDevice device_source,
+    const blink::WebFloatPoint& velocity,
+    const blink::WebSize& cumulative_scroll) {
   // Caller will retain and release.
   return new WebGestureCurveMock(velocity, cumulative_scroll);
 }
 
-WebKit::WebUnitTestSupport* TestWebKitPlatformSupport::unitTestSupport() {
+blink::WebUnitTestSupport* TestWebKitPlatformSupport::unitTestSupport() {
   return this;
 }
 
 void TestWebKitPlatformSupport::registerMockedURL(
-    const WebKit::WebURL& url,
-    const WebKit::WebURLResponse& response,
-    const WebKit::WebString& file_path) {
+    const blink::WebURL& url,
+    const blink::WebURLResponse& response,
+    const blink::WebString& file_path) {
   url_loader_factory_->RegisterURL(url, response, file_path);
 }
 
 void TestWebKitPlatformSupport::registerMockedErrorURL(
-    const WebKit::WebURL& url,
-    const WebKit::WebURLResponse& response,
-    const WebKit::WebURLError& error) {
+    const blink::WebURL& url,
+    const blink::WebURLResponse& response,
+    const blink::WebURLError& error) {
   url_loader_factory_->RegisterErrorURL(url, response, error);
 }
 
-void TestWebKitPlatformSupport::unregisterMockedURL(const WebKit::WebURL& url) {
+void TestWebKitPlatformSupport::unregisterMockedURL(const blink::WebURL& url) {
   url_loader_factory_->UnregisterURL(url);
 }
 
@@ -287,7 +261,7 @@ void TestWebKitPlatformSupport::serveAsynchronousMockedRequests() {
   url_loader_factory_->ServeAsynchronousRequests();
 }
 
-WebKit::WebString TestWebKitPlatformSupport::webKitRootDir() {
+blink::WebString TestWebKitPlatformSupport::webKitRootDir() {
   base::FilePath path;
   PathService::Get(base::DIR_SOURCE_ROOT, &path);
   path = path.Append(FILE_PATH_LITERAL("third_party/WebKit"));
@@ -295,33 +269,26 @@ WebKit::WebString TestWebKitPlatformSupport::webKitRootDir() {
   CHECK(!path.empty());
   std::string path_ascii = path.MaybeAsASCII();
   CHECK(!path_ascii.empty());
-  return WebKit::WebString::fromUTF8(path_ascii.c_str());
+  return blink::WebString::fromUTF8(path_ascii.c_str());
 }
 
-WebKit::WebLayerTreeView*
+blink::WebLayerTreeView*
 TestWebKitPlatformSupport::createLayerTreeViewForTesting() {
   scoped_ptr<WebLayerTreeViewImplForTesting> view(
       new WebLayerTreeViewImplForTesting());
 
-  if (!view->Initialize())
-    return NULL;
+  view->Initialize();
   return view.release();
 }
 
-WebKit::WebLayerTreeView*
-TestWebKitPlatformSupport::createLayerTreeViewForTesting(TestViewType type) {
-  DCHECK_EQ(TestViewTypeUnitTest, type);
-  return createLayerTreeViewForTesting();
-}
-
-WebKit::WebData TestWebKitPlatformSupport::readFromFile(
-    const WebKit::WebString& path) {
+blink::WebData TestWebKitPlatformSupport::readFromFile(
+    const blink::WebString& path) {
   base::FilePath file_path = base::FilePath::FromUTF16Unsafe(path);
 
   std::string buffer;
   base::ReadFileToString(file_path, &buffer);
 
-  return WebKit::WebData(buffer.data(), buffer.size());
+  return blink::WebData(buffer.data(), buffer.size());
 }
 
 }  // namespace content