| OLD | NEW |
| 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 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 | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include "chrome/browser/devtools/devtools_adb_bridge.h" |
| 5 #include "chrome/browser/ui/browser.h" | 6 #include "chrome/browser/ui/browser.h" |
| 6 #include "chrome/browser/ui/tabs/tab_strip_model.h" | 7 #include "chrome/browser/ui/tabs/tab_strip_model.h" |
| 7 #include "chrome/common/url_constants.h" | 8 #include "chrome/common/url_constants.h" |
| 8 #include "chrome/test/base/in_process_browser_test.h" | |
| 9 #include "chrome/test/base/ui_test_utils.h" | 9 #include "chrome/test/base/ui_test_utils.h" |
| 10 #include "chrome/test/base/web_ui_browsertest.h" |
| 10 #include "content/public/browser/navigation_details.h" | 11 #include "content/public/browser/navigation_details.h" |
| 11 #include "content/public/browser/web_contents.h" | 12 #include "content/public/browser/web_contents.h" |
| 12 #include "content/public/test/browser_test_utils.h" | 13 #include "content/public/test/browser_test_utils.h" |
| 13 | 14 |
| 14 using content::WebContents; | 15 using content::WebContents; |
| 15 | 16 |
| 16 namespace { | 17 namespace { |
| 17 | 18 |
| 18 const char kSharedWorkerTestPage[] = | 19 const char kSharedWorkerTestPage[] = |
| 19 "files/workers/workers_ui_shared_worker.html"; | 20 "files/workers/workers_ui_shared_worker.html"; |
| 20 const char kSharedWorkerJs[] = | 21 const char kSharedWorkerJs[] = |
| 21 "files/workers/workers_ui_shared_worker.js"; | 22 "files/workers/workers_ui_shared_worker.js"; |
| 22 | 23 |
| 23 class InspectUITest : public InProcessBrowserTest { | 24 class InspectUITest : public WebUIBrowserTest { |
| 24 public: | 25 public: |
| 25 InspectUITest() {} | 26 InspectUITest() {} |
| 26 | 27 |
| 28 virtual void SetUpOnMainThread() OVERRIDE { |
| 29 WebUIBrowserTest::SetUpOnMainThread(); |
| 30 AddLibrary(base::FilePath(FILE_PATH_LITERAL("inspect_ui_test.js"))); |
| 31 } |
| 32 |
| 27 private: | 33 private: |
| 28 DISALLOW_COPY_AND_ASSIGN(InspectUITest); | 34 DISALLOW_COPY_AND_ASSIGN(InspectUITest); |
| 29 }; | 35 }; |
| 30 | 36 |
| 31 // The test fails on Mac OS X and Windows, see crbug.com/89583 | 37 IN_PROC_BROWSER_TEST_F(InspectUITest, InspectUIPage) { |
| 32 // Intermittently fails on Linux. | 38 ui_test_utils::NavigateToURL(browser(), GURL(chrome::kChromeUIInspectURL)); |
| 33 IN_PROC_BROWSER_TEST_F(InspectUITest, DISABLED_SharedWorkersList) { | 39 ASSERT_TRUE(WebUIBrowserTest::RunJavascriptAsyncTest( |
| 40 "testTargetListed", |
| 41 new base::StringValue("#pages"), |
| 42 new base::StringValue("populateWebContentsTargets"), |
| 43 new base::StringValue(chrome::kChromeUIInspectURL))); |
| 44 } |
| 45 |
| 46 IN_PROC_BROWSER_TEST_F(InspectUITest, SharedWorker) { |
| 34 ASSERT_TRUE(test_server()->Start()); | 47 ASSERT_TRUE(test_server()->Start()); |
| 35 GURL url = test_server()->GetURL(kSharedWorkerTestPage); | 48 GURL url = test_server()->GetURL(kSharedWorkerTestPage); |
| 36 ui_test_utils::NavigateToURL(browser(), url); | 49 ui_test_utils::NavigateToURL(browser(), url); |
| 37 | 50 |
| 38 ui_test_utils::NavigateToURLWithDisposition( | 51 ui_test_utils::NavigateToURLWithDisposition( |
| 39 browser(), | 52 browser(), |
| 40 GURL(chrome::kChromeUIInspectURL), | 53 GURL(chrome::kChromeUIInspectURL), |
| 41 NEW_FOREGROUND_TAB, | 54 NEW_FOREGROUND_TAB, |
| 42 ui_test_utils::BROWSER_TEST_WAIT_FOR_NAVIGATION); | 55 ui_test_utils::BROWSER_TEST_WAIT_FOR_NAVIGATION); |
| 43 | 56 |
| 44 WebContents* web_contents = | 57 ASSERT_TRUE(WebUIBrowserTest::RunJavascriptAsyncTest( |
| 45 browser()->tab_strip_model()->GetActiveWebContents(); | 58 "testTargetListed", |
| 46 ASSERT_TRUE(web_contents != NULL); | 59 new base::StringValue("#workers"), |
| 60 new base::StringValue("populateWorkerTargets"), |
| 61 new base::StringValue(kSharedWorkerJs))); |
| 47 | 62 |
| 48 std::string result; | 63 ASSERT_TRUE(WebUIBrowserTest::RunJavascriptAsyncTest( |
| 49 ASSERT_TRUE( | 64 "testTargetListed", |
| 50 content::ExecuteScriptAndExtractString( | 65 new base::StringValue("#pages"), |
| 51 web_contents, | 66 new base::StringValue("populateWebContentsTargets"), |
| 52 "window.domAutomationController.send(" | 67 new base::StringValue(kSharedWorkerTestPage))); |
| 53 " '' + document.body.textContent);", | 68 } |
| 54 &result)); | 69 |
| 55 ASSERT_TRUE(result.find(kSharedWorkerJs) != std::string::npos); | 70 IN_PROC_BROWSER_TEST_F(InspectUITest, AdbTargets) { |
| 56 ASSERT_TRUE(result.find(kSharedWorkerTestPage) != std::string::npos); | 71 ui_test_utils::NavigateToURL(browser(), GURL(chrome::kChromeUIInspectURL)); |
| 72 |
| 73 scoped_refptr<DevToolsAdbBridge> adb_bridge = |
| 74 DevToolsAdbBridge::Factory::GetForProfile(browser()->profile()); |
| 75 adb_bridge->set_device_provider_for_test( |
| 76 AndroidDeviceProvider::GetMockDeviceProviderForTest()); |
| 77 |
| 78 ASSERT_TRUE(WebUIBrowserTest::RunJavascriptAsyncTest("testAdbTargetsListed")); |
| 57 } | 79 } |
| 58 | 80 |
| 59 IN_PROC_BROWSER_TEST_F(InspectUITest, ReloadCrash) { | 81 IN_PROC_BROWSER_TEST_F(InspectUITest, ReloadCrash) { |
| 60 ASSERT_TRUE(test_server()->Start()); | 82 ASSERT_TRUE(test_server()->Start()); |
| 61 // Make sure that loading the inspect UI twice in the same tab | |
| 62 // connects/disconnects listeners without crashing. | |
| 63 ui_test_utils::NavigateToURL(browser(), GURL(chrome::kChromeUIInspectURL)); | 83 ui_test_utils::NavigateToURL(browser(), GURL(chrome::kChromeUIInspectURL)); |
| 64 ui_test_utils::NavigateToURL(browser(), GURL(chrome::kChromeUIInspectURL)); | 84 ui_test_utils::NavigateToURL(browser(), GURL(chrome::kChromeUIInspectURL)); |
| 65 } | 85 } |
| 66 | 86 |
| 67 } // namespace | 87 } // namespace |
| OLD | NEW |