Update To 11.40.268.0
[platform/framework/web/crosswalk.git] / src / chrome / browser / ui / webui / inspect_ui_browsertest.cc
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
3 // found in the LICENSE file.
4
5 #include "chrome/browser/devtools/device/adb/adb_device_provider.h"
6 #include "chrome/browser/devtools/device/adb/mock_adb_server.h"
7 #include "chrome/browser/devtools/device/devtools_android_bridge.h"
8 #include "chrome/browser/ui/browser.h"
9 #include "chrome/browser/ui/tabs/tab_strip_model.h"
10 #include "chrome/common/url_constants.h"
11 #include "chrome/test/base/ui_test_utils.h"
12 #include "chrome/test/base/web_ui_browser_test.h"
13 #include "content/public/browser/navigation_details.h"
14 #include "content/public/browser/web_contents.h"
15 #include "content/public/test/browser_test_utils.h"
16
17 using content::WebContents;
18
19 namespace {
20
21 const char kSharedWorkerTestPage[] =
22     "files/workers/workers_ui_shared_worker.html";
23 const char kSharedWorkerJs[] =
24     "files/workers/workers_ui_shared_worker.js";
25
26 class InspectUITest : public WebUIBrowserTest {
27  public:
28   InspectUITest() {}
29
30   void SetUpOnMainThread() override {
31     WebUIBrowserTest::SetUpOnMainThread();
32     AddLibrary(base::FilePath(FILE_PATH_LITERAL("inspect_ui_test.js")));
33   }
34
35  private:
36   DISALLOW_COPY_AND_ASSIGN(InspectUITest);
37 };
38
39 IN_PROC_BROWSER_TEST_F(InspectUITest, InspectUIPage) {
40   ui_test_utils::NavigateToURL(browser(), GURL(chrome::kChromeUIInspectURL));
41   ASSERT_TRUE(WebUIBrowserTest::RunJavascriptAsyncTest(
42       "testTargetListed",
43       new base::StringValue("#pages"),
44       new base::StringValue("populateWebContentsTargets"),
45       new base::StringValue(chrome::kChromeUIInspectURL)));
46 }
47
48 IN_PROC_BROWSER_TEST_F(InspectUITest, SharedWorker) {
49   ASSERT_TRUE(test_server()->Start());
50   GURL url = test_server()->GetURL(kSharedWorkerTestPage);
51   ui_test_utils::NavigateToURL(browser(), url);
52
53   ui_test_utils::NavigateToURLWithDisposition(
54       browser(),
55       GURL(chrome::kChromeUIInspectURL),
56       NEW_FOREGROUND_TAB,
57       ui_test_utils::BROWSER_TEST_WAIT_FOR_NAVIGATION);
58
59   ASSERT_TRUE(WebUIBrowserTest::RunJavascriptAsyncTest(
60       "testTargetListed",
61       new base::StringValue("#workers"),
62       new base::StringValue("populateWorkerTargets"),
63       new base::StringValue(kSharedWorkerJs)));
64
65   ASSERT_TRUE(WebUIBrowserTest::RunJavascriptAsyncTest(
66       "testTargetListed",
67       new base::StringValue("#pages"),
68       new base::StringValue("populateWebContentsTargets"),
69       new base::StringValue(kSharedWorkerTestPage)));
70 }
71
72 IN_PROC_BROWSER_TEST_F(InspectUITest, AndroidTargets) {
73   scoped_refptr<DevToolsAndroidBridge> android_bridge =
74       DevToolsAndroidBridge::Factory::GetForProfile(browser()->profile());
75   AndroidDeviceManager::DeviceProviders providers;
76   providers.push_back(new AdbDeviceProvider());
77   android_bridge->set_device_providers_for_test(providers);
78
79   StartMockAdbServer();
80
81   ui_test_utils::NavigateToURL(browser(), GURL(chrome::kChromeUIInspectURL));
82
83   ASSERT_TRUE(WebUIBrowserTest::RunJavascriptAsyncTest("testAdbTargetsListed"));
84
85   StopMockAdbServer();
86 }
87
88 IN_PROC_BROWSER_TEST_F(InspectUITest, ReloadCrash) {
89   ASSERT_TRUE(test_server()->Start());
90   ui_test_utils::NavigateToURL(browser(), GURL(chrome::kChromeUIInspectURL));
91   ui_test_utils::NavigateToURL(browser(), GURL(chrome::kChromeUIInspectURL));
92 }
93
94 }  // namespace