inspect_ui_browsertest.cc revision effb81e5f8246d0db0270817048dc992db66e9fb
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/devtools_adb_bridge.h"
6#include "chrome/browser/ui/browser.h"
7#include "chrome/browser/ui/tabs/tab_strip_model.h"
8#include "chrome/common/url_constants.h"
9#include "chrome/test/base/ui_test_utils.h"
10#include "chrome/test/base/web_ui_browsertest.h"
11#include "content/public/browser/navigation_details.h"
12#include "content/public/browser/web_contents.h"
13#include "content/public/test/browser_test_utils.h"
14
15using content::WebContents;
16
17namespace {
18
19const char kSharedWorkerTestPage[] =
20    "files/workers/workers_ui_shared_worker.html";
21const char kSharedWorkerJs[] =
22    "files/workers/workers_ui_shared_worker.js";
23
24class InspectUITest : public WebUIBrowserTest {
25 public:
26  InspectUITest() {}
27
28  virtual void SetUpOnMainThread() OVERRIDE {
29    WebUIBrowserTest::SetUpOnMainThread();
30    AddLibrary(base::FilePath(FILE_PATH_LITERAL("inspect_ui_test.js")));
31  }
32
33 private:
34  DISALLOW_COPY_AND_ASSIGN(InspectUITest);
35};
36
37IN_PROC_BROWSER_TEST_F(InspectUITest, InspectUIPage) {
38  ui_test_utils::NavigateToURL(browser(), GURL(chrome::kChromeUIInspectURL));
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
46IN_PROC_BROWSER_TEST_F(InspectUITest, SharedWorker) {
47  ASSERT_TRUE(test_server()->Start());
48  GURL url = test_server()->GetURL(kSharedWorkerTestPage);
49  ui_test_utils::NavigateToURL(browser(), url);
50
51  ui_test_utils::NavigateToURLWithDisposition(
52      browser(),
53      GURL(chrome::kChromeUIInspectURL),
54      NEW_FOREGROUND_TAB,
55      ui_test_utils::BROWSER_TEST_WAIT_FOR_NAVIGATION);
56
57  ASSERT_TRUE(WebUIBrowserTest::RunJavascriptAsyncTest(
58      "testTargetListed",
59      new base::StringValue("#workers"),
60      new base::StringValue("populateWorkerTargets"),
61      new base::StringValue(kSharedWorkerJs)));
62
63  ASSERT_TRUE(WebUIBrowserTest::RunJavascriptAsyncTest(
64      "testTargetListed",
65      new base::StringValue("#pages"),
66      new base::StringValue("populateWebContentsTargets"),
67      new base::StringValue(kSharedWorkerTestPage)));
68}
69
70IN_PROC_BROWSER_TEST_F(InspectUITest, AdbTargets) {
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"));
79}
80
81IN_PROC_BROWSER_TEST_F(InspectUITest, ReloadCrash) {
82  ASSERT_TRUE(test_server()->Start());
83  ui_test_utils::NavigateToURL(browser(), GURL(chrome::kChromeUIInspectURL));
84  ui_test_utils::NavigateToURL(browser(), GURL(chrome::kChromeUIInspectURL));
85}
86
87}  // namespace
88