15821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Copyright (c) 2012 The Chromium Authors. All rights reserved. 25821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Use of this source code is governed by a BSD-style license that can be 35821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// found in the LICENSE file. 45821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 5010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)#include "chrome/browser/devtools/device/adb/adb_device_provider.h" 65c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu#include "chrome/browser/devtools/device/adb/mock_adb_server.h" 70529e5d033099cbfc42635f6f6183833b09dff6eBen Murdoch#include "chrome/browser/devtools/device/devtools_android_bridge.h" 85821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "chrome/browser/ui/browser.h" 92a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#include "chrome/browser/ui/tabs/tab_strip_model.h" 105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "chrome/common/url_constants.h" 115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "chrome/test/base/ui_test_utils.h" 1246d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)#include "chrome/test/base/web_ui_browser_test.h" 135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "content/public/browser/navigation_details.h" 145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "content/public/browser/web_contents.h" 155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "content/public/test/browser_test_utils.h" 165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)using content::WebContents; 185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)namespace { 205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)const char kSharedWorkerTestPage[] = 225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) "files/workers/workers_ui_shared_worker.html"; 235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)const char kSharedWorkerJs[] = 245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) "files/workers/workers_ui_shared_worker.js"; 255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 26effb81e5f8246d0db0270817048dc992db66e9fbBen Murdochclass InspectUITest : public WebUIBrowserTest { 275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) public: 285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) InspectUITest() {} 295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 30effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch virtual void SetUpOnMainThread() OVERRIDE { 31effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch WebUIBrowserTest::SetUpOnMainThread(); 32effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch AddLibrary(base::FilePath(FILE_PATH_LITERAL("inspect_ui_test.js"))); 33effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch } 34effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch 355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) private: 365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) DISALLOW_COPY_AND_ASSIGN(InspectUITest); 375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}; 385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 39effb81e5f8246d0db0270817048dc992db66e9fbBen MurdochIN_PROC_BROWSER_TEST_F(InspectUITest, InspectUIPage) { 40effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch ui_test_utils::NavigateToURL(browser(), GURL(chrome::kChromeUIInspectURL)); 41effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch ASSERT_TRUE(WebUIBrowserTest::RunJavascriptAsyncTest( 42effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch "testTargetListed", 43effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch new base::StringValue("#pages"), 44effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch new base::StringValue("populateWebContentsTargets"), 45effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch new base::StringValue(chrome::kChromeUIInspectURL))); 46effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch} 47effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch 48effb81e5f8246d0db0270817048dc992db66e9fbBen MurdochIN_PROC_BROWSER_TEST_F(InspectUITest, SharedWorker) { 495821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ASSERT_TRUE(test_server()->Start()); 505821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) GURL url = test_server()->GetURL(kSharedWorkerTestPage); 515821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ui_test_utils::NavigateToURL(browser(), url); 525821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 535821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ui_test_utils::NavigateToURLWithDisposition( 545821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) browser(), 555821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) GURL(chrome::kChromeUIInspectURL), 565821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) NEW_FOREGROUND_TAB, 575821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ui_test_utils::BROWSER_TEST_WAIT_FOR_NAVIGATION); 585821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 59effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch ASSERT_TRUE(WebUIBrowserTest::RunJavascriptAsyncTest( 60effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch "testTargetListed", 61effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch new base::StringValue("#workers"), 62effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch new base::StringValue("populateWorkerTargets"), 63effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch new base::StringValue(kSharedWorkerJs))); 64effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch 65effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch ASSERT_TRUE(WebUIBrowserTest::RunJavascriptAsyncTest( 66effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch "testTargetListed", 67effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch new base::StringValue("#pages"), 68effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch new base::StringValue("populateWebContentsTargets"), 69effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch new base::StringValue(kSharedWorkerTestPage))); 70effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch} 71effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch 720529e5d033099cbfc42635f6f6183833b09dff6eBen MurdochIN_PROC_BROWSER_TEST_F(InspectUITest, AndroidTargets) { 730529e5d033099cbfc42635f6f6183833b09dff6eBen Murdoch scoped_refptr<DevToolsAndroidBridge> android_bridge = 740529e5d033099cbfc42635f6f6183833b09dff6eBen Murdoch DevToolsAndroidBridge::Factory::GetForProfile(browser()->profile()); 75c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch AndroidDeviceManager::DeviceProviders providers; 76010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) providers.push_back(new AdbDeviceProvider()); 770529e5d033099cbfc42635f6f6183833b09dff6eBen Murdoch android_bridge->set_device_providers_for_test(providers); 78c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch 795c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu StartMockAdbServer(); 805c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu 81c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch ui_test_utils::NavigateToURL(browser(), GURL(chrome::kChromeUIInspectURL)); 82effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch 83effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch ASSERT_TRUE(WebUIBrowserTest::RunJavascriptAsyncTest("testAdbTargetsListed")); 845c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu 855c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu StopMockAdbServer(); 865821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 875821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 88558790d6acca3451cf3a6b497803a5f07d0bec58Ben MurdochIN_PROC_BROWSER_TEST_F(InspectUITest, ReloadCrash) { 89558790d6acca3451cf3a6b497803a5f07d0bec58Ben Murdoch ASSERT_TRUE(test_server()->Start()); 90558790d6acca3451cf3a6b497803a5f07d0bec58Ben Murdoch ui_test_utils::NavigateToURL(browser(), GURL(chrome::kChromeUIInspectURL)); 91558790d6acca3451cf3a6b497803a5f07d0bec58Ben Murdoch ui_test_utils::NavigateToURL(browser(), GURL(chrome::kChromeUIInspectURL)); 92558790d6acca3451cf3a6b497803a5f07d0bec58Ben Murdoch} 93558790d6acca3451cf3a6b497803a5f07d0bec58Ben Murdoch 945821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} // namespace 95