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 "base/files/file_path.h" |
| 6 #include "base/path_service.h" |
| 7 #include "chrome/browser/devtools/devtools_adb_bridge.h" |
5 #include "chrome/browser/ui/browser.h" | 8 #include "chrome/browser/ui/browser.h" |
6 #include "chrome/browser/ui/tabs/tab_strip_model.h" | 9 #include "chrome/browser/ui/tabs/tab_strip_model.h" |
| 10 #include "chrome/browser/ui/webui/extensions/extension_settings_browsertest.h" |
| 11 #include "chrome/common/chrome_paths.h" |
7 #include "chrome/common/url_constants.h" | 12 #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" | 13 #include "chrome/test/base/ui_test_utils.h" |
| 14 #include "chrome/test/base/web_ui_browsertest.h" |
10 #include "content/public/browser/navigation_details.h" | 15 #include "content/public/browser/navigation_details.h" |
11 #include "content/public/browser/web_contents.h" | 16 #include "content/public/browser/web_contents.h" |
12 #include "content/public/test/browser_test_utils.h" | 17 #include "content/public/test/browser_test_utils.h" |
13 | 18 |
14 using content::WebContents; | 19 using content::WebContents; |
15 | 20 |
16 namespace { | 21 namespace { |
17 | 22 |
18 const char kSharedWorkerTestPage[] = | 23 const char kSharedWorkerTestPage[] = |
19 "files/workers/workers_ui_shared_worker.html"; | 24 "files/workers/workers_ui_shared_worker.html"; |
20 const char kSharedWorkerJs[] = | 25 const char kSharedWorkerJs[] = |
21 "files/workers/workers_ui_shared_worker.js"; | 26 "files/workers/workers_ui_shared_worker.js"; |
22 | 27 |
23 class InspectUITest : public InProcessBrowserTest { | 28 class InspectUITest : public WebUIBrowserTest { |
24 public: | 29 public: |
25 InspectUITest() {} | 30 InspectUITest() {} |
26 | 31 |
| 32 virtual void SetUpOnMainThread() OVERRIDE { |
| 33 WebUIBrowserTest::SetUpOnMainThread(); |
| 34 AddLibrary(base::FilePath(FILE_PATH_LITERAL("inspect_ui_test.js"))); |
| 35 } |
| 36 |
27 private: | 37 private: |
28 DISALLOW_COPY_AND_ASSIGN(InspectUITest); | 38 DISALLOW_COPY_AND_ASSIGN(InspectUITest); |
29 }; | 39 }; |
30 | 40 |
31 // The test fails on Mac OS X and Windows, see crbug.com/89583 | 41 IN_PROC_BROWSER_TEST_F(InspectUITest, InspectUIPage) { |
32 // Intermittently fails on Linux. | 42 ui_test_utils::NavigateToURL(browser(), GURL(chrome::kChromeUIInspectURL)); |
33 IN_PROC_BROWSER_TEST_F(InspectUITest, DISABLED_SharedWorkersList) { | 43 ASSERT_TRUE(WebUIBrowserTest::RunJavascriptAsyncTest( |
| 44 "testTargetListed", |
| 45 new base::StringValue("#pages"), |
| 46 new base::StringValue(chrome::kChromeUIInspectURL))); |
| 47 } |
| 48 |
| 49 IN_PROC_BROWSER_TEST_F(InspectUITest, SharedWorker) { |
34 ASSERT_TRUE(test_server()->Start()); | 50 ASSERT_TRUE(test_server()->Start()); |
35 GURL url = test_server()->GetURL(kSharedWorkerTestPage); | 51 GURL url = test_server()->GetURL(kSharedWorkerTestPage); |
36 ui_test_utils::NavigateToURL(browser(), url); | 52 ui_test_utils::NavigateToURL(browser(), url); |
37 | 53 |
38 ui_test_utils::NavigateToURLWithDisposition( | 54 ui_test_utils::NavigateToURLWithDisposition( |
39 browser(), | 55 browser(), |
40 GURL(chrome::kChromeUIInspectURL), | 56 GURL(chrome::kChromeUIInspectURL), |
41 NEW_FOREGROUND_TAB, | 57 NEW_FOREGROUND_TAB, |
42 ui_test_utils::BROWSER_TEST_WAIT_FOR_NAVIGATION); | 58 ui_test_utils::BROWSER_TEST_WAIT_FOR_NAVIGATION); |
43 | 59 |
44 WebContents* web_contents = | 60 ASSERT_TRUE(WebUIBrowserTest::RunJavascriptAsyncTest( |
45 browser()->tab_strip_model()->GetActiveWebContents(); | 61 "testTargetListed", |
46 ASSERT_TRUE(web_contents != NULL); | 62 new base::StringValue("#workers"), |
| 63 new base::StringValue(kSharedWorkerJs))); |
47 | 64 |
48 std::string result; | 65 ASSERT_TRUE(WebUIBrowserTest::RunJavascriptAsyncTest( |
49 ASSERT_TRUE( | 66 "testTargetListed", |
50 content::ExecuteScriptAndExtractString( | 67 new base::StringValue("#pages"), |
51 web_contents, | 68 new base::StringValue(kSharedWorkerTestPage))); |
52 "window.domAutomationController.send(" | 69 } |
53 " '' + document.body.textContent);", | 70 |
54 &result)); | 71 IN_PROC_BROWSER_TEST_F(InspectUITest, AdbTargets) { |
55 ASSERT_TRUE(result.find(kSharedWorkerJs) != std::string::npos); | 72 ui_test_utils::NavigateToURL(browser(), GURL(chrome::kChromeUIInspectURL)); |
56 ASSERT_TRUE(result.find(kSharedWorkerTestPage) != std::string::npos); | 73 |
| 74 scoped_refptr<DevToolsAdbBridge> adb_bridge = |
| 75 DevToolsAdbBridge::Factory::GetForProfile(browser()->profile()); |
| 76 adb_bridge->set_device_provider_for_test( |
| 77 AndroidDeviceProvider::GetMockDeviceProviderForTest()); |
| 78 |
| 79 ASSERT_TRUE(WebUIBrowserTest::RunJavascriptAsyncTest("testAdbTargetsListed")); |
57 } | 80 } |
58 | 81 |
59 IN_PROC_BROWSER_TEST_F(InspectUITest, ReloadCrash) { | 82 IN_PROC_BROWSER_TEST_F(InspectUITest, ReloadCrash) { |
60 ASSERT_TRUE(test_server()->Start()); | 83 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)); | 84 ui_test_utils::NavigateToURL(browser(), GURL(chrome::kChromeUIInspectURL)); |
64 ui_test_utils::NavigateToURL(browser(), GURL(chrome::kChromeUIInspectURL)); | 85 ui_test_utils::NavigateToURL(browser(), GURL(chrome::kChromeUIInspectURL)); |
65 } | 86 } |
66 | 87 |
| 88 IN_PROC_BROWSER_TEST_F(ExtensionSettingsUIBrowserTest, ExtensionTarget) { |
| 89 AddLibrary(base::FilePath(FILE_PATH_LITERAL("inspect_ui_test.js"))); |
| 90 ui_test_utils::NavigateToURL(browser(), GURL(chrome::kChromeUIInspectURL)); |
| 91 |
| 92 base::FilePath test_data_dir; |
| 93 if (!PathService::Get(chrome::DIR_TEST_DATA, &test_data_dir)) { |
| 94 ADD_FAILURE(); |
| 95 return; |
| 96 } |
| 97 base::FilePath extensions_data_dir = test_data_dir.AppendASCII("webui"); |
| 98 InstallExtension(extensions_data_dir.AppendASCII("inspectable.crx")); |
| 99 |
| 100 ASSERT_TRUE(WebUIBrowserTest::RunJavascriptAsyncTest( |
| 101 "testTargetListed", |
| 102 new base::StringValue("#extensions"), |
| 103 new base::StringValue(last_loaded_extension_id()))); |
| 104 } |
| 105 |
67 } // namespace | 106 } // namespace |
OLD | NEW |