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 createTestFunction(expected_message) { |
| 6 return function(tab) { |
| 7 function onDebuggerEvent(debuggee, method, params) { |
| 8 if (debuggee.tabId == tab.id && method == 'Console.messageAdded') { |
| 9 if (params.message.text.indexOf(expected_message) > -1) { |
| 10 chrome.debugger.onEvent.removeListener(onDebuggerEvent); |
| 11 chrome.test.succeed(); |
| 12 } |
| 13 } |
| 14 }; |
| 15 chrome.debugger.onEvent.addListener(onDebuggerEvent); |
| 16 chrome.debugger.attach({ tabId: tab.id }, "1.1", function() { |
| 17 // Enabling console provides both stored and new messages via the |
| 18 // Console.messageAdded event. |
| 19 chrome.debugger.sendCommand({ tabId: tab.id }, "Console.enable"); |
| 20 }); |
| 21 } |
| 22 } |
| 23 |
| 24 chrome.test.runTests([ |
| 25 function testExceptionInExtensionPage() { |
| 26 chrome.tabs.create( |
| 27 {url: chrome.runtime.getURL('extension_page.html')}, |
| 28 createTestFunction('Exception thrown in extension page.')); |
| 29 }, |
| 30 |
| 31 function testExceptionInInjectedScript() { |
| 32 function injectScriptAndSendMessage(tab) { |
| 33 chrome.tabs.executeScript( |
| 34 tab.id, |
| 35 { file: 'content_script.js' }, |
| 36 function() { |
| 37 createTestFunction('Exception thrown in injected script.')(tab); |
| 38 }); |
| 39 } |
| 40 |
| 41 chrome.test.getConfig(function(config) { |
| 42 var test_url = |
| 43 'http://localhost:PORT/extensions/test_file.html' |
| 44 .replace(/PORT/, config.testServer.port); |
| 45 |
| 46 chrome.tabs.create({ url: test_url }, injectScriptAndSendMessage); |
| 47 }); |
| 48 } |
| 49 ]); |
OLD | NEW |