Upstream version 5.34.104.0
[platform/framework/web/crosswalk.git] / src / content / shell / renderer / test_runner / TestInterfaces.cpp
index 2241d8e..426f652 100644 (file)
@@ -6,12 +6,13 @@
 
 #include <string>
 
+#include "base/strings/stringprintf.h"
 #include "content/shell/renderer/test_runner/AccessibilityController.h"
 #include "content/shell/renderer/test_runner/EventSender.h"
-#include "content/shell/renderer/test_runner/GamepadController.h"
 #include "content/shell/renderer/test_runner/TestRunner.h"
-#include "content/shell/renderer/test_runner/TextInputController.h"
 #include "content/shell/renderer/test_runner/WebTestProxy.h"
+#include "content/shell/renderer/test_runner/gamepad_controller.h"
+#include "content/shell/renderer/test_runner/text_input_controller.h"
 #include "third_party/WebKit/public/platform/WebString.h"
 #include "third_party/WebKit/public/platform/WebURL.h"
 #include "third_party/WebKit/public/web/WebCache.h"
@@ -27,8 +28,8 @@ namespace WebTestRunner {
 TestInterfaces::TestInterfaces()
     : m_accessibilityController(new AccessibilityController())
     , m_eventSender(new EventSender(this))
-    , m_gamepadController(new GamepadController())
-    , m_textInputController(new TextInputController())
+    , m_gamepadController(new content::GamepadController())
+    , m_textInputController(new content::TextInputController())
     , m_testRunner(new TestRunner(this))
     , m_delegate(0)
 {
@@ -45,12 +46,12 @@ TestInterfaces::~TestInterfaces()
     m_accessibilityController->setWebView(0);
     m_eventSender->setWebView(0);
     // m_gamepadController doesn't depend on WebView.
-    m_textInputController->setWebView(0);
+    m_textInputController->SetWebView(NULL);
     m_testRunner->setWebView(0, 0);
 
     m_accessibilityController->setDelegate(0);
     m_eventSender->setDelegate(0);
-    m_gamepadController->setDelegate(0);
+    m_gamepadController->SetDelegate(0);
     // m_textInputController doesn't depend on WebTestDelegate.
     m_testRunner->setDelegate(0);
 }
@@ -61,7 +62,7 @@ void TestInterfaces::setWebView(WebView* webView, WebTestProxyBase* proxy)
     m_accessibilityController->setWebView(webView);
     m_eventSender->setWebView(webView);
     // m_gamepadController doesn't depend on WebView.
-    m_textInputController->setWebView(webView);
+    m_textInputController->SetWebView(webView);
     m_testRunner->setWebView(webView, proxy);
 }
 
@@ -69,7 +70,7 @@ void TestInterfaces::setDelegate(WebTestDelegate* delegate)
 {
     m_accessibilityController->setDelegate(delegate);
     m_eventSender->setDelegate(delegate);
-    m_gamepadController->setDelegate(delegate);
+    m_gamepadController->SetDelegate(delegate);
     // m_textInputController doesn't depend on WebTestDelegate.
     m_testRunner->setDelegate(delegate);
     m_delegate = delegate;
@@ -79,8 +80,8 @@ void TestInterfaces::bindTo(WebFrame* frame)
 {
     m_accessibilityController->bindToJavascript(frame, WebString::fromUTF8("accessibilityController"));
     m_eventSender->bindToJavascript(frame, WebString::fromUTF8("eventSender"));
-    m_gamepadController->bindToJavascript(frame, WebString::fromUTF8("gamepadController"));
-    m_textInputController->bindToJavascript(frame, WebString::fromUTF8("textInputController"));
+    m_gamepadController->Install(frame);
+    m_textInputController->Install(frame);
     m_testRunner->bindToJavascript(frame, WebString::fromUTF8("testRunner"));
     m_testRunner->bindToJavascript(frame, WebString::fromUTF8("layoutTestController"));
 }
@@ -89,7 +90,7 @@ void TestInterfaces::resetTestHelperControllers()
 {
     m_accessibilityController->reset();
     m_eventSender->reset();
-    m_gamepadController->reset();
+    m_gamepadController->Reset();
     // m_textInputController doesn't have any state to reset.
     WebCache::clear();
 }
@@ -118,8 +119,18 @@ void TestInterfaces::configureForTestWithURL(const WebURL& testURL, bool generat
     if (spec.find("/inspector/") != string::npos
         || spec.find("/inspector-enabled/") != string::npos)
         m_testRunner->clearDevToolsLocalStorage();
-    if (spec.find("/inspector/") != string::npos)
-        m_testRunner->showDevTools();
+    if (spec.find("/inspector/") != string::npos) {
+        // Subfolder name determines default panel to open.
+        string settings = "";
+        string test_path = spec.substr(spec.find("/inspector/") + 11);
+        size_t slash_index = test_path.find("/");
+        if (slash_index != string::npos) {
+            settings = base::StringPrintf(
+                "{\"lastActivePanel\":\"\\\"%s\\\"\"}",
+                test_path.substr(0, slash_index).c_str());
+        }
+        m_testRunner->showDevTools(settings);
+    }
     if (spec.find("/viewsource/") != string::npos) {
         m_testRunner->setShouldEnableViewSource(true);
         m_testRunner->setShouldGeneratePixelResults(false);
@@ -174,21 +185,16 @@ const vector<WebTestProxyBase*>& TestInterfaces::windowList()
 
 WebThemeEngine* TestInterfaces::themeEngine()
 {
-#if defined(USE_DEFAULT_RENDER_THEME) || !(defined(WIN32) || defined(__APPLE__) || defined(ANDROID))
-    if (!m_themeEngine.get())
-        m_themeEngine.reset(new WebTestThemeEngineMock());
-    return m_themeEngine.get();
-#elif defined(WIN32)
-    if (!m_themeEngine.get())
-        m_themeEngine.reset(new WebTestThemeEngineWin());
-    return m_themeEngine.get();
-#elif defined(__APPLE__)
+    if (!m_testRunner->useMockTheme())
+        return 0;
+#if defined(__APPLE__)
     if (!m_themeEngine.get())
         m_themeEngine.reset(new WebTestThemeEngineMac());
-    return m_themeEngine.get();
 #else
-    return 0;
+    if (!m_themeEngine.get())
+        m_themeEngine.reset(new WebTestThemeEngineMock());
 #endif
+    return m_themeEngine.get();
 }
 
 }