Upstream version 7.36.149.0
[platform/framework/web/crosswalk.git] / src / chrome / browser / devtools / devtools_sanity_browsertest.cc
index bdb8796..8b8c48b 100644 (file)
@@ -18,7 +18,6 @@
 #include "chrome/browser/extensions/extension_apitest.h"
 #include "chrome/browser/extensions/extension_browsertest.h"
 #include "chrome/browser/extensions/extension_service.h"
-#include "chrome/browser/extensions/extension_system.h"
 #include "chrome/browser/extensions/unpacked_installer.h"
 #include "chrome/browser/lifetime/application_lifetime.h"
 #include "chrome/browser/profiles/profile.h"
@@ -49,6 +48,7 @@
 #include "content/public/browser/worker_service_observer.h"
 #include "content/public/common/content_switches.h"
 #include "content/public/test/browser_test_utils.h"
+#include "extensions/browser/extension_system.h"
 #include "extensions/common/switches.h"
 #include "net/socket/tcp_listen_socket.h"
 #include "net/test/spawned_test_server/spawned_test_server.h"
@@ -89,21 +89,17 @@ void RunTestFunction(DevToolsWindow* window, const char* test_name) {
   // files have been loaded) and has runTest method.
   ASSERT_TRUE(
       content::ExecuteScriptAndExtractString(
-          window->GetRenderViewHost(),
+          window->web_contents()->GetRenderViewHost(),
           "window.domAutomationController.send("
           "    '' + (window.uiTests && (typeof uiTests.runTest)));",
           &result));
 
-  if (result == "function") {
-    ASSERT_TRUE(
-        content::ExecuteScriptAndExtractString(
-            window->GetRenderViewHost(),
-            base::StringPrintf("uiTests.runTest('%s')", test_name),
-            &result));
-    EXPECT_EQ("[OK]", result);
-  } else {
-    FAIL() << "DevTools front-end is broken.";
-  }
+  ASSERT_EQ("function", result) << "DevTools front-end is broken.";
+  ASSERT_TRUE(content::ExecuteScriptAndExtractString(
+      window->web_contents()->GetRenderViewHost(),
+      base::StringPrintf("uiTests.runTest('%s')", test_name),
+      &result));
+  EXPECT_EQ("[OK]", result);
 }
 
 }  // namespace
@@ -122,25 +118,18 @@ class DevToolsSanityTest : public InProcessBrowserTest {
   }
 
   void LoadTestPage(const std::string& test_page) {
-    content::WindowedNotificationObserver load_observer(
-        content::NOTIFICATION_LOAD_STOP,
-        content::NotificationService::AllSources());
     GURL url = test_server()->GetURL(test_page);
     ui_test_utils::NavigateToURL(browser(), url);
-    load_observer.Wait();
   }
 
   void OpenDevToolsWindow(const std::string& test_page, bool is_docked) {
     ASSERT_TRUE(test_server()->Start());
     LoadTestPage(test_page);
 
-    content::WindowedNotificationObserver observer(
-        content::NOTIFICATION_LOAD_STOP,
-        content::NotificationService::AllSources());
     inspected_rvh_ = GetInspectedTab()->GetRenderViewHost();
     window_ =
         DevToolsWindow::OpenDevToolsWindowForTest(inspected_rvh_, is_docked);
-    observer.Wait();
+    ui_test_utils::WaitUntilDevToolsWindowLoaded(window_);
   }
 
   WebContents* GetInspectedTab() {
@@ -267,12 +256,9 @@ class DevToolsBeforeUnloadTest: public DevToolsSanityTest {
 
   DevToolsWindow* OpenDevToolWindowOnWebContents(
       content::WebContents* contents, bool is_docked) {
-    content::WindowedNotificationObserver observer(
-        content::NOTIFICATION_LOAD_STOP,
-        content::NotificationService::AllSources());
     DevToolsWindow* window = DevToolsWindow::OpenDevToolsWindowForTest(
         contents->GetRenderViewHost(), is_docked);
-    observer.Wait();
+    ui_test_utils::WaitUntilDevToolsWindowLoaded(window);
     return window;
   }
 
@@ -333,7 +319,7 @@ class DevToolsUnresponsiveBeforeUnloadTest: public DevToolsBeforeUnloadTest {
 };
 
 void TimeoutCallback(const std::string& timeout_message) {
-  FAIL() << timeout_message;
+  ADD_FAILURE() << timeout_message;
   base::MessageLoop::current()->Quit();
 }
 
@@ -362,7 +348,8 @@ class DevToolsExtensionTest : public DevToolsSanityTest,
     size_t num_before = service->extensions()->size();
     {
       content::NotificationRegistrar registrar;
-      registrar.Add(this, chrome::NOTIFICATION_EXTENSION_LOADED,
+      registrar.Add(this,
+                    chrome::NOTIFICATION_EXTENSION_LOADED_DEPRECATED,
                     content::NotificationService::AllSources());
       base::CancelableClosure timeout(
           base::Bind(&TimeoutCallback, "Extension load timed out."));
@@ -413,7 +400,7 @@ class DevToolsExtensionTest : public DevToolsSanityTest,
                        const content::NotificationSource& source,
                        const content::NotificationDetails& details) OVERRIDE {
     switch (type) {
-      case chrome::NOTIFICATION_EXTENSION_LOADED:
+      case chrome::NOTIFICATION_EXTENSION_LOADED_DEPRECATED:
       case chrome::NOTIFICATION_EXTENSION_HOST_DID_STOP_LOADING:
         base::MessageLoopForUI::current()->Quit();
         break;
@@ -506,13 +493,11 @@ class WorkerDevToolsSanityTest : public InProcessBrowserTest {
   }
 
   static void TerminateWorkerOnIOThread(scoped_refptr<WorkerData> worker_data) {
-    if (WorkerService::GetInstance()->TerminateWorker(
-            worker_data->worker_process_id, worker_data->worker_route_id)) {
-      WorkerService::GetInstance()->AddObserver(
-          new WorkerTerminationObserver(worker_data.get()));
-      return;
-    }
-    FAIL() << "Failed to terminate worker.\n";
+    if (!WorkerService::GetInstance()->TerminateWorker(
+        worker_data->worker_process_id, worker_data->worker_route_id))
+      FAIL() << "Failed to terminate worker.\n";
+    WorkerService::GetInstance()->AddObserver(
+        new WorkerTerminationObserver(worker_data.get()));
   }
 
   static void TerminateWorker(scoped_refptr<WorkerData> worker_data) {
@@ -554,15 +539,9 @@ class WorkerDevToolsSanityTest : public InProcessBrowserTest {
             worker_data->worker_process_id,
             worker_data->worker_route_id));
     window_ = DevToolsWindow::OpenDevToolsWindowForWorker(profile, agent_host);
-    RenderViewHost* client_rvh = window_->GetRenderViewHost();
+    RenderViewHost* client_rvh = window_->web_contents()->GetRenderViewHost();
     WebContents* client_contents = WebContents::FromRenderViewHost(client_rvh);
-    if (client_contents->IsLoading()) {
-      content::WindowedNotificationObserver observer(
-          content::NOTIFICATION_LOAD_STOP,
-          content::Source<NavigationController>(
-              &client_contents->GetController()));
-      observer.Wait();
-    }
+    content::WaitForLoadStop(client_contents);
   }
 
   void CloseDevToolsWindow() {
@@ -719,7 +698,7 @@ IN_PROC_BROWSER_TEST_F(DevToolsBeforeUnloadTest,
     content::WindowedNotificationObserver close_observer(
         chrome::NOTIFICATION_BROWSER_CLOSED,
         content::Source<Browser>(browser()));
-    chrome::StartKeepAlive();
+    chrome::IncrementKeepAliveCount();
     chrome::CloseAllBrowsers();
     AcceptModalDialog();
     AcceptModalDialog();
@@ -862,6 +841,11 @@ IN_PROC_BROWSER_TEST_F(DevToolsSanityTest, TestConsoleOnNavigateBack) {
 IN_PROC_BROWSER_TEST_F(DevToolsSanityTest, TestDevToolsExternalNavigation) {
   OpenDevToolsWindow(kDebuggerTestPage, true);
   GURL url = test_server()->GetURL(kNavigateBackTestPage);
+  // TODO(dgozman): remove this once notifications are gone.
+  // Right now notifications happen after observers, so DevTools window is
+  // already loaded, but we still catch it's notification when looking for
+  // all sources.
+  content::WaitForLoadStop(window_->web_contents());
   content::WindowedNotificationObserver observer(
       content::NOTIFICATION_LOAD_STOP,
       content::NotificationService::AllSources());
@@ -871,33 +855,15 @@ IN_PROC_BROWSER_TEST_F(DevToolsSanityTest, TestDevToolsExternalNavigation) {
   observer.Wait();
 
   ASSERT_TRUE(window_->web_contents()->GetURL().
-                  SchemeIs(chrome::kChromeDevToolsScheme));
-  ASSERT_EQ(GetInspectedTab()->GetURL(), url);
+                  SchemeIs(content::kChromeDevToolsScheme));
+  ASSERT_EQ(url, GetInspectedTab()->GetURL());
   CloseDevToolsWindow();
 }
 
-#if defined(OS_WIN) || defined(OS_MACOSX)
-// Flakily times out: http://crbug.com/163411
-#define MAYBE_TestReattachAfterCrash DISABLED_TestReattachAfterCrash
-#else
-#define MAYBE_TestReattachAfterCrash TestReattachAfterCrash
-#endif
 // Tests that inspector will reattach to inspected page when it is reloaded
 // after a crash. See http://crbug.com/101952
-IN_PROC_BROWSER_TEST_F(DevToolsSanityTest, MAYBE_TestReattachAfterCrash) {
-  OpenDevToolsWindow(kDebuggerTestPage, false);
-
-  content::CrashTab(GetInspectedTab());
-  content::WindowedNotificationObserver observer(
-      content::NOTIFICATION_LOAD_STOP,
-      content::Source<NavigationController>(
-          &browser()->tab_strip_model()->GetActiveWebContents()->
-              GetController()));
-  chrome::Reload(browser(), CURRENT_TAB);
-  observer.Wait();
-
-  RunTestFunction(window_, "testReattachAfterCrash");
-  CloseDevToolsWindow();
+IN_PROC_BROWSER_TEST_F(DevToolsSanityTest, TestReattachAfterCrash) {
+  RunTest("testReattachAfterCrash", std::string());
 }
 
 IN_PROC_BROWSER_TEST_F(DevToolsSanityTest, TestPageWithNoJavaScript) {
@@ -905,7 +871,7 @@ IN_PROC_BROWSER_TEST_F(DevToolsSanityTest, TestPageWithNoJavaScript) {
   std::string result;
   ASSERT_TRUE(
       content::ExecuteScriptAndExtractString(
-          window_->GetRenderViewHost(),
+          window_->web_contents()->GetRenderViewHost(),
           "window.domAutomationController.send("
           "    '' + (window.uiTests && (typeof uiTests.runTest)));",
           &result));