OLD | NEW |
(Empty) | |
| 1 // Copyright (c) 2013 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 requestUrl(url, callback) { |
| 6 var req = new XMLHttpRequest(); |
| 7 req.open('GET', url, true); |
| 8 req.onload = function() { |
| 9 if (req.status == 200) |
| 10 callback(req.responseText); |
| 11 else |
| 12 req.onerror(); |
| 13 }; |
| 14 req.onerror = function() { |
| 15 chrome.test.fail('XHR failed: ' + req.status); |
| 16 }; |
| 17 req.send(null); |
| 18 } |
| 19 |
| 20 var REMOTE_DEBUGGER_HOST = 'localhost:9222'; |
| 21 |
| 22 function checkTarget(targets, url, type, opt_title, opt_faviconUrl) { |
| 23 var target = |
| 24 targets.filter(function(t) { return t.url == url }) [0]; |
| 25 if (!target) |
| 26 chrome.test.fail('Cannot find a target with url ' + url); |
| 27 |
| 28 var wsAddress = REMOTE_DEBUGGER_HOST + '/devtools/page/' + target.id; |
| 29 |
| 30 chrome.test.assertEq( |
| 31 '/devtools/devtools.html?ws=' + wsAddress, |
| 32 target.devtoolsFrontendUrl); |
| 33 chrome.test.assertEq(opt_faviconUrl || '', target.faviconUrl); |
| 34 chrome.test.assertEq('/thumb/' + target.id, target.thumbnailUrl); |
| 35 chrome.test.assertEq(opt_title || target.url, target.title); |
| 36 chrome.test.assertEq(type, target.type); |
| 37 chrome.test.assertEq('ws://' + wsAddress, target.webSocketDebuggerUrl); |
| 38 } |
| 39 |
| 40 chrome.test.runTests([ |
| 41 function discoverTargets() { |
| 42 var testPageUrl = chrome.extension.getURL('test_page.html'); |
| 43 |
| 44 function onUpdated() { |
| 45 chrome.tabs.onUpdated.removeListener(onUpdated); |
| 46 requestUrl('http://' + REMOTE_DEBUGGER_HOST + '/json', function(text) { |
| 47 var targets = JSON.parse(text); |
| 48 |
| 49 checkTarget(targets, 'about:blank', 'page'); |
| 50 checkTarget(targets, testPageUrl, 'page', 'Test page', |
| 51 chrome.extension.getURL('favicon.png')); |
| 52 checkTarget(targets, |
| 53 chrome.extension.getURL('_generated_background_page.html'), |
| 54 'other'); |
| 55 |
| 56 chrome.test.succeed(); |
| 57 }); |
| 58 } |
| 59 chrome.tabs.onUpdated.addListener(onUpdated); |
| 60 chrome.tabs.create({url: testPageUrl}); |
| 61 } |
| 62 ]); |
OLD | NEW |