Index: chrome/test/data/extensions/api_test/native_bindings/background.js |
diff --git a/chrome/test/data/extensions/api_test/native_bindings/background.js b/chrome/test/data/extensions/api_test/native_bindings/background.js |
index d0ccb14de99674d58b031783a06c12d5831f9ced..bf18b8d4eda2823e45f2d3ed2670eff704bedd02 100644 |
--- a/chrome/test/data/extensions/api_test/native_bindings/background.js |
+++ b/chrome/test/data/extensions/api_test/native_bindings/background.js |
@@ -5,6 +5,8 @@ |
if (!chrome || !chrome.test) |
throw new Error('chrome.test is undefined'); |
+var portNumber; |
+ |
// This is a good end-to-end test for two reasons. The first is obvious - it |
// tests a simple API and makes sure it behaves as expected, as well as testing |
// that other APIs are unavailable. |
@@ -14,7 +16,7 @@ if (!chrome || !chrome.test) |
// enters JS) and custom JS bindings (in order to have our runTests, assert* |
// methods, etc). If any of these stages failed, the test itself would also |
// fail. |
-chrome.test.runTests([ |
+var tests = [ |
function idleApi() { |
chrome.test.assertTrue(!!chrome.idle); |
chrome.test.assertTrue(!!chrome.idle.IdleState); |
@@ -56,4 +58,39 @@ chrome.test.runTests([ |
chrome.test.succeed(); |
}); |
}, |
-]); |
+ function testMessaging() { |
+ var tabId; |
+ var createPort = function() { |
+ chrome.test.assertTrue(!!tabId); |
+ var port = chrome.tabs.connect(tabId); |
+ chrome.test.assertTrue(!!port, 'Port does not exist'); |
+ port.onMessage.addListener(message => { |
+ chrome.test.assertEq('content script', message); |
+ port.disconnect(); |
+ chrome.test.succeed(); |
+ }); |
+ port.postMessage('background page'); |
+ }; |
+ |
+ chrome.runtime.onMessage.addListener((message, sender, sendResponse) => { |
+ chrome.test.assertEq('startFlow', message); |
+ createPort(); |
+ sendResponse('started'); |
+ }); |
+ var url = 'http://localhost:' + portNumber + |
+ '/native_bindings/messaging_test.html'; |
+ chrome.tabs.create({url: url}, function(tab) { |
+ chrome.test.assertNoLastError(); |
+ chrome.test.assertTrue(!!tab); |
+ chrome.test.assertTrue(!!tab.id && tab.id >= 0); |
+ tabId = tab.id; |
+ }); |
+ }, |
+]; |
+ |
+chrome.test.getConfig(config => { |
+ chrome.test.assertTrue(!!config, 'config does not exist'); |
+ chrome.test.assertTrue(!!config.testServer, 'testServer does not exist'); |
+ portNumber = config.testServer.port; |
+ chrome.test.runTests(tests); |
+}); |