diff options
author | mpcomplete@chromium.org <mpcomplete@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2009-10-23 18:25:58 +0000 |
---|---|---|
committer | mpcomplete@chromium.org <mpcomplete@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2009-10-23 18:25:58 +0000 |
commit | 5e34bc403af2328e80765406eace2f49f63e7d79 (patch) | |
tree | f13cd0daeba8228af5a43999ae7552ad3a5a345e /chrome/test | |
parent | 796646b312c38fe581d1822cb60c5d06e84cd30e (diff) | |
download | chromium_src-5e34bc403af2328e80765406eace2f49f63e7d79.zip chromium_src-5e34bc403af2328e80765406eace2f49f63e7d79.tar.gz chromium_src-5e34bc403af2328e80765406eace2f49f63e7d79.tar.bz2 |
Implement extension.sendRequest, a simpler way to do messaging.
BUG=23865
Review URL: http://codereview.chromium.org/320009
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@29911 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/test')
5 files changed, 71 insertions, 13 deletions
diff --git a/chrome/test/data/extensions/api_test/connect/manifest.json b/chrome/test/data/extensions/api_test/connect/manifest.json new file mode 100644 index 0000000..27e16d3 --- /dev/null +++ b/chrome/test/data/extensions/api_test/connect/manifest.json @@ -0,0 +1,13 @@ +{ + "name": "connect_external", + "version": "1.0", + "description": "Tests connect from a content script.", + "permissions": ["tabs"], + "background_page": "test.html", + "content_scripts": [ + { + "matches": ["http://*/*"], + "js": ["page.js"] + } + ] +} diff --git a/chrome/test/data/extensions/api_test/connect/page.js b/chrome/test/data/extensions/api_test/connect/page.js new file mode 100644 index 0000000..d70f415 --- /dev/null +++ b/chrome/test/data/extensions/api_test/connect/page.js @@ -0,0 +1,10 @@ +// For test onRequest. +chrome.extension.sendRequest({step: 1}, function(response) { + if (response.nextStep) + chrome.extension.sendRequest({step: 2}); +}); + +// For test sendRequest. +chrome.extension.onRequest.addListener(function(request, sendResponse) { + sendResponse({success: (request.step2 == 1)}); +}); diff --git a/chrome/test/data/extensions/api_test/connect/test.html b/chrome/test/data/extensions/api_test/connect/test.html new file mode 100644 index 0000000..31868b4 --- /dev/null +++ b/chrome/test/data/extensions/api_test/connect/test.html @@ -0,0 +1,33 @@ +<script> +chrome.test.runTests([ + // Tests receiving a request from a content script and responding. + function onRequest() { + chrome.extension.onRequest.addListener(function(request, sendResponse) { + if (request.step == 1) { + // Step 1: Page should send another request for step 2. + sendResponse({nextStep: true}); + } else { + // Step 2. + chrome.test.assertEq(request.step, 2); + sendResponse({}); + chrome.test.succeed(); + } + }); + }, + // Tests sending a request to a tab and receiving a response. + function sendRequest() { + chrome.tabs.getSelected(null, function(tab) { + chrome.test.log('Selected tab: ' + tab.url); + chrome.tabs.sendRequest(tab.id, {step2: 1}, function(response) { + chrome.test.assertTrue(response.success); + chrome.test.succeed(); + }); + }); + } +]); + +chrome.test.log("Creating tab..."); +chrome.tabs.create({ + url: "http://localhost:1337/files/extensions/test_file.html" +}); +</script> diff --git a/chrome/test/data/extensions/api_test/connect_external/connect.html b/chrome/test/data/extensions/api_test/connect_external/connect.html deleted file mode 100644 index cc9def8..0000000 --- a/chrome/test/data/extensions/api_test/connect_external/connect.html +++ /dev/null @@ -1,13 +0,0 @@ -<script> -var testId = "bjafgdebaacbbbecmhlhpofkepfkgcpa"; - -function testConnectExternal() { - var port = chrome.extension.connect(testId, {name: "extern"}); - port.postMessage({testConnectExternal: true}); - port.onMessage.addListener(function(msg) { - var success = msg.success && msg.senderId == location.host; - window.domAutomationController.send(success); - port.disconnect(); - }); -} -</script> diff --git a/chrome/test/data/extensions/api_test/connect_external/test.html b/chrome/test/data/extensions/api_test/connect_external/test.html new file mode 100644 index 0000000..cc9cfa4 --- /dev/null +++ b/chrome/test/data/extensions/api_test/connect_external/test.html @@ -0,0 +1,15 @@ +<script> +var testId = "bjafgdebaacbbbecmhlhpofkepfkgcpa"; + +chrome.test.runTests([ + function connectExternal() { + var port = chrome.extension.connect(testId, {name: "extern"}); + port.postMessage({testConnectExternal: true}); + port.onMessage.addListener(chrome.test.callbackPass(function(msg) { + chrome.test.assertTrue(msg.success, "Message failed."); + chrome.test.assertEq(msg.senderId, location.host, + "Sender ID doesn't match."); + })); + } +]); +</script> |