diff options
3 files changed, 55 insertions, 4 deletions
diff --git a/chrome/test/data/extensions/api_test/debugger/background.js b/chrome/test/data/extensions/api_test/debugger/background.js index 7a160c8..17f9090 100644 --- a/chrome/test/data/extensions/api_test/debugger/background.js +++ b/chrome/test/data/extensions/api_test/debugger/background.js @@ -16,8 +16,8 @@ chrome.test.runTests([ function attachMalformedVersion() { chrome.tabs.getSelected(null, function(tab) { - chrome.debugger.attach({tabId: tab.id}, "malformed-version", - fail("Requested protocol version is not supported: malformed-version.")); + chrome.debugger.attach({tabId: tab.id}, "malformed-version", fail( + "Requested protocol version is not supported: malformed-version.")); }); }, @@ -111,8 +111,41 @@ chrome.test.runTests([ function attachToOwnBackgroundPageWithNoSilentFlag() { var ownExtensionId = chrome.extension.getURL('').split('/')[2]; - debuggeeExtension = {extensionId: ownExtensionId}; + var debuggeeExtension = {extensionId: ownExtensionId}; chrome.debugger.attach(debuggeeExtension, protocolVersion, fail(SILENT_FLAG_REQUIRED)); + }, + + function discoverOwnBackgroundPageWithNoSilentFlag() { + chrome.debugger.getTargets(function(targets) { + var target = targets.filter( + function(target) { return target.type == 'background_page'})[0]; + if (target) { + chrome.debugger.attach({targetId: target.id}, protocolVersion, + fail(SILENT_FLAG_REQUIRED)); + } else { + chrome.test.succeed(); + } + }); + }, + + function createAndDiscoverTab() { + function onUpdated() { + chrome.tabs.onUpdated.removeListener(onUpdated); + chrome.debugger.getTargets(function(targets) { + var page = targets.filter( + function(t) { + return t.type == 'page' && t.title == 'Test page'; + })[0]; + if (page) { + chrome.debugger.attach( + {targetId: page.id}, protocolVersion, pass()); + } else { + chrome.test.fail("Cannot discover a newly created tab"); + } + }); + } + chrome.tabs.onUpdated.addListener(onUpdated); + chrome.tabs.create({url: "inspected.html"}); } ]); diff --git a/chrome/test/data/extensions/api_test/debugger/inspected.html b/chrome/test/data/extensions/api_test/debugger/inspected.html index 6c70bcf..2eaf1a8 100644 --- a/chrome/test/data/extensions/api_test/debugger/inspected.html +++ b/chrome/test/data/extensions/api_test/debugger/inspected.html @@ -1 +1,5 @@ -<html></html>
\ No newline at end of file +<html> +<head> + <title>Test page</title> +</head> +</html>
\ No newline at end of file diff --git a/chrome/test/data/extensions/api_test/debugger_extension/background.js b/chrome/test/data/extensions/api_test/debugger_extension/background.js index d156586..20efd32 100644 --- a/chrome/test/data/extensions/api_test/debugger_extension/background.js +++ b/chrome/test/data/extensions/api_test/debugger_extension/background.js @@ -37,5 +37,19 @@ chrome.test.runTests([ chrome.debugger.detach(debuggee, fail("Debugger is not attached to the background page with id: " + debuggee.extensionId + ".")); + }, + + function discoverOwnBackgroundPage() { + chrome.debugger.getTargets(function(targets) { + var target = targets.filter( + function(t) { + return t.type == 'background_page' && t.title == 'Extension Debugger'; + })[0]; + if (target) { + chrome.debugger.attach({targetId: target.id}, protocolVersion, pass()); + } else { + chrome.test.fail("Cannot discover own background page"); + } + }); } ]); |