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 |