Chromium Code Reviews| Index: chrome/test/data/extensions/api_test/debugger_remote/background.js |
| diff --git a/chrome/test/data/extensions/api_test/debugger_remote/background.js b/chrome/test/data/extensions/api_test/debugger_remote/background.js |
| new file mode 100644 |
| index 0000000000000000000000000000000000000000..22fa65ffac20112c987616f5dbda54c6a0cb71e5 |
| --- /dev/null |
| +++ b/chrome/test/data/extensions/api_test/debugger_remote/background.js |
| @@ -0,0 +1,62 @@ |
| +// Copyright (c) 2013 The Chromium Authors. All rights reserved. |
|
pfeldman
2013/03/04 11:48:42
This should be placed next to the implementation,
Vladislav Kaznacheev
2013/03/04 14:30:03
Done.
|
| +// Use of this source code is governed by a BSD-style license that can be |
| +// found in the LICENSE file. |
| + |
| +var pass = chrome.test.callbackPass; |
| +var fail = chrome.test.callbackFail; |
| + |
| +function requestUrl(url, callback) { |
| + var req = new XMLHttpRequest(); |
| + req.open('GET', url, true); |
| + req.onload = function() { |
| + if (req.status == 200) |
| + callback(req.responseText); |
| + else |
| + req.onerror(); |
| + }; |
| + req.onerror = function() { |
| + chrome.test.fail('XHR failed: ' + req.status); |
| + }; |
| + req.send(null); |
| +} |
| + |
| +var REMOTE_DEBUGGER_HOST = 'localhost:9222'; |
| + |
| +function checkTarget(targets, url, type, opt_title, opt_faviconUrl) { |
| + var target = |
| + targets.filter(function(t) { return t.url == url }) [0]; |
| + if (!target) |
| + chrome.test.fail('Cannot find a target with url ' + url); |
| + |
| + var wsAddress = REMOTE_DEBUGGER_HOST + '/devtools/page/' + target.id; |
| + |
| + chrome.test.assertEq( |
| + '/devtools/devtools.html?ws=' + wsAddress, |
| + target.devtoolsFrontendUrl); |
| + chrome.test.assertEq(opt_faviconUrl || '', target.faviconUrl); |
| + chrome.test.assertEq('/thumb/' + target.url, target.thumbnailUrl); |
| + chrome.test.assertEq(opt_title || target.url, target.title); |
| + chrome.test.assertEq(type, target.type); |
| + chrome.test.assertEq('ws://' + wsAddress, target.webSocketDebuggerUrl); |
| +} |
| + |
| +chrome.test.runTests([ |
| + function discoverTargets() { |
| + var testPageUrl = chrome.extension.getURL('test_page.html'); |
| + |
| + chrome.tabs.create({url: testPageUrl}, function() { |
| + requestUrl('http://' + REMOTE_DEBUGGER_HOST + '/json', function(text) { |
| + var targets = JSON.parse(text); |
| + |
| + checkTarget(targets, 'about:blank', 'page'); |
| + checkTarget(targets, testPageUrl, 'page', 'Test page', |
| + chrome.extension.getURL('favicon.png')); |
| + checkTarget(targets, |
| + chrome.extension.getURL('_generated_background_page.html'), |
| + 'other'); |
| + |
| + chrome.test.succeed(); |
| + }); |
| + }); |
| + } |
| +]); |