summaryrefslogtreecommitdiffstats
path: root/chrome/test
diff options
context:
space:
mode:
authormpcomplete@chromium.org <mpcomplete@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2009-10-23 18:25:58 +0000
committermpcomplete@chromium.org <mpcomplete@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2009-10-23 18:25:58 +0000
commit5e34bc403af2328e80765406eace2f49f63e7d79 (patch)
treef13cd0daeba8228af5a43999ae7552ad3a5a345e /chrome/test
parent796646b312c38fe581d1822cb60c5d06e84cd30e (diff)
downloadchromium_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')
-rw-r--r--chrome/test/data/extensions/api_test/connect/manifest.json13
-rw-r--r--chrome/test/data/extensions/api_test/connect/page.js10
-rw-r--r--chrome/test/data/extensions/api_test/connect/test.html33
-rw-r--r--chrome/test/data/extensions/api_test/connect_external/connect.html13
-rw-r--r--chrome/test/data/extensions/api_test/connect_external/test.html15
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>