Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(3220)

Unified Diff: chrome/test/data/webui/inspect_ui_test.js

Issue 208013003: DevTools: Create end-to-end test for chrome://inspect (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Reimplemented as WebUIBrowserTest Created 6 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: chrome/test/data/webui/inspect_ui_test.js
diff --git a/chrome/test/data/webui/inspect_ui_test.js b/chrome/test/data/webui/inspect_ui_test.js
new file mode 100644
index 0000000000000000000000000000000000000000..a0fdb05c17421f6052e994ea35f6f1c418f7e989
--- /dev/null
+++ b/chrome/test/data/webui/inspect_ui_test.js
@@ -0,0 +1,67 @@
+// Copyright 2014 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+function waitForElements(selector, callback, timeout) {
+ var deadline = Date.now() + 3000;
+ function check() {
+ var elements = document.querySelectorAll(selector);
+ if (elements.length) {
+ callback(elements);
+ } else if (Date.now() < deadline) {
+ setTimeout(check, 100);
pfeldman 2014/03/26 09:18:45 timeout in tests is a 100% guarantee of flake. you
+ } else {
+ expectNotReached('DOM element(s) missing: ' + selector);
+ testDone();
+ }
+ }
+ check();
+}
+
+function findByContentSubstring(elements, content, childSelector) {
+ return Array.prototype.filter.call(elements, function(element) {
+ if (childSelector)
+ element = element.querySelector(childSelector);
+ return element && element.textContent.indexOf(content) >= 0;
+ })[0];
+}
+
+function testTargetListed(sectionSelector, url) {
+ waitForElements(sectionSelector + ' .row', function(elements) {
+ var urlElement = findByContentSubstring(elements, url, '.url');
+ expectNotEquals(undefined, urlElement);
+ testDone();
+ });
+}
+
+function testAdbTargetsListed() {
+ waitForElements('.device', function(devices) {
+ expectEquals(2, devices.length);
+
+ var offlineDevice = findByContentSubstring(
+ devices, 'Offline', '.device-name');
+ expectNotEquals(undefined, offlineDevice);
+
+ var onlineDevice = findByContentSubstring(
+ devices, 'Nexus 6', '.device-name');
+ expectNotEquals(undefined, onlineDevice);
+
+ var browsers = onlineDevice.querySelectorAll('.browser');
+ expectEquals(4, browsers.length);
+
+ var chromeBrowser = findByContentSubstring(
+ browsers, 'Chrome (32.0.1679.0)', '.browser-name');
+ expectNotEquals(undefined, chromeBrowser);
+
+ var chromePages = chromeBrowser.querySelectorAll('.pages');
+ var chromiumPage = findByContentSubstring(
+ chromePages, 'http://www.chromium.org/', '.url');
+ expectNotEquals(undefined, chromiumPage);
+
+ var webView = findByContentSubstring(
+ browsers, 'WebView in com.sample.feed (4.0)', '.browser-name');
+ expectNotEquals(undefined, webView);
+
+ testDone();
+ });
+}

Powered by Google App Engine
This is Rietveld 408576698