OLD | NEW |
---|---|
(Empty) | |
1 // Copyright 2014 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 function waitForElements(selector, callback, timeout) { | |
6 var deadline = Date.now() + 3000; | |
7 function check() { | |
8 var elements = document.querySelectorAll(selector); | |
9 if (elements.length) { | |
10 callback(elements); | |
11 } else if (Date.now() < deadline) { | |
12 setTimeout(check, 100); | |
pfeldman
2014/03/26 09:18:45
timeout in tests is a 100% guarantee of flake. you
| |
13 } else { | |
14 expectNotReached('DOM element(s) missing: ' + selector); | |
15 testDone(); | |
16 } | |
17 } | |
18 check(); | |
19 } | |
20 | |
21 function findByContentSubstring(elements, content, childSelector) { | |
22 return Array.prototype.filter.call(elements, function(element) { | |
23 if (childSelector) | |
24 element = element.querySelector(childSelector); | |
25 return element && element.textContent.indexOf(content) >= 0; | |
26 })[0]; | |
27 } | |
28 | |
29 function testTargetListed(sectionSelector, url) { | |
30 waitForElements(sectionSelector + ' .row', function(elements) { | |
31 var urlElement = findByContentSubstring(elements, url, '.url'); | |
32 expectNotEquals(undefined, urlElement); | |
33 testDone(); | |
34 }); | |
35 } | |
36 | |
37 function testAdbTargetsListed() { | |
38 waitForElements('.device', function(devices) { | |
39 expectEquals(2, devices.length); | |
40 | |
41 var offlineDevice = findByContentSubstring( | |
42 devices, 'Offline', '.device-name'); | |
43 expectNotEquals(undefined, offlineDevice); | |
44 | |
45 var onlineDevice = findByContentSubstring( | |
46 devices, 'Nexus 6', '.device-name'); | |
47 expectNotEquals(undefined, onlineDevice); | |
48 | |
49 var browsers = onlineDevice.querySelectorAll('.browser'); | |
50 expectEquals(4, browsers.length); | |
51 | |
52 var chromeBrowser = findByContentSubstring( | |
53 browsers, 'Chrome (32.0.1679.0)', '.browser-name'); | |
54 expectNotEquals(undefined, chromeBrowser); | |
55 | |
56 var chromePages = chromeBrowser.querySelectorAll('.pages'); | |
57 var chromiumPage = findByContentSubstring( | |
58 chromePages, 'http://www.chromium.org/', '.url'); | |
59 expectNotEquals(undefined, chromiumPage); | |
60 | |
61 var webView = findByContentSubstring( | |
62 browsers, 'WebView in com.sample.feed (4.0)', '.browser-name'); | |
63 expectNotEquals(undefined, webView); | |
64 | |
65 testDone(); | |
66 }); | |
67 } | |
OLD | NEW |