Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(272)

Side by Side Diff: chrome/test/data/extensions/api_test/messaging/connect/test.js

Issue 14301016: Fix a couple of bugs relating to sending Tab info with chrome.runtime.connect and (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: add key to app1/manifest.json Created 7 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2011 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 JSON.parse = function() { 5 JSON.parse = function() {
6 return "JSON.parse clobbered by extension."; 6 return "JSON.parse clobbered by extension.";
7 }; 7 };
8 8
9 JSON.stringify = function() { 9 JSON.stringify = function() {
10 return "JSON.stringify clobbered by extension."; 10 return "JSON.stringify clobbered by extension.";
(...skipping 10 matching lines...) Expand all
21 // Keep track of the tab that we're running tests in, for simplicity. 21 // Keep track of the tab that we're running tests in, for simplicity.
22 var testTab = null; 22 var testTab = null;
23 23
24 chrome.test.getConfig(function(config) { 24 chrome.test.getConfig(function(config) {
25 chrome.test.runTests([ 25 chrome.test.runTests([
26 function setupTestTab() { 26 function setupTestTab() {
27 chrome.test.log("Creating tab..."); 27 chrome.test.log("Creating tab...");
28 chrome.tabs.create({ 28 chrome.tabs.create({
29 url: "http://localhost:PORT/files/extensions/test_file.html" 29 url: "http://localhost:PORT/files/extensions/test_file.html"
30 .replace(/PORT/, config.testServer.port) 30 .replace(/PORT/, config.testServer.port)
31 }, function(tab) { 31 }, function(newTab) {
32 chrome.tabs.onUpdated.addListener(function listener(tabid, info) { 32 chrome.tabs.onUpdated.addListener(function listener(_, info, tab) {
33 if (tab.id == tabid && info.status == 'complete') { 33 if (tab.id == newTab.id && info.status == 'complete') {
34 chrome.test.log("Created tab: " + tab.url); 34 chrome.test.log("Created tab: " + tab.url);
35 chrome.tabs.onUpdated.removeListener(listener); 35 chrome.tabs.onUpdated.removeListener(listener);
36 testTab = tab; 36 testTab = tab;
37 chrome.test.succeed(); 37 chrome.test.succeed();
38 } 38 }
39 }); 39 });
40 }); 40 });
41 }, 41 },
42 42
43 // Tests that postMessage to the tab and its response works. 43 // Tests that postMessage to the tab and its response works.
(...skipping 14 matching lines...) Expand all
58 port.onMessage.addListener(function(msg) { 58 port.onMessage.addListener(function(msg) {
59 chrome.test.assertEq(msg.portName, portName); 59 chrome.test.assertEq(msg.portName, portName);
60 port.disconnect(); 60 port.disconnect();
61 chrome.test.succeed(); 61 chrome.test.succeed();
62 }); 62 });
63 }, 63 },
64 64
65 // Tests that postMessage from the tab and its response works. 65 // Tests that postMessage from the tab and its response works.
66 function postMessageFromTab() { 66 function postMessageFromTab() {
67 chrome.runtime.onConnect.addListener(function(port) { 67 chrome.runtime.onConnect.addListener(function(port) {
68 chrome.test.assertTrue(Boolean(port.sender.tab.url)); 68 chrome.test.assertEq({
69 chrome.test.assertTrue(Boolean(port.sender.tab.title)); 69 tab: testTab,
70 chrome.test.assertTrue(Boolean(port.sender.tab.id)); 70 url: testTab.url,
71 id: chrome.runtime.id
72 }, port.sender);
71 port.onMessage.addListener(function(msg) { 73 port.onMessage.addListener(function(msg) {
72 chrome.test.assertTrue(msg.testPostMessageFromTab); 74 chrome.test.assertTrue(msg.testPostMessageFromTab);
73 port.postMessage({success: true, portName: port.name}); 75 port.postMessage({success: true, portName: port.name});
74 chrome.test.log("postMessageFromTab: got message from tab"); 76 chrome.test.log("postMessageFromTab: got message from tab");
75 }); 77 });
76 }); 78 });
77 79
78 var port = chrome.tabs.connect(testTab.id); 80 var port = chrome.tabs.connect(testTab.id);
79 port.postMessage({testPostMessageFromTab: true}); 81 port.postMessage({testPostMessageFromTab: true});
80 chrome.test.log("postMessageFromTab: sent first message to tab"); 82 chrome.test.log("postMessageFromTab: sent first message to tab");
81 port.onMessage.addListener(function(msg) { 83 port.onMessage.addListener(function(msg) {
82 port.disconnect(); 84 port.disconnect();
83 chrome.test.succeed(); 85 chrome.test.succeed();
84 }); 86 });
85 }, 87 },
86 88
87 // Tests receiving a request from a content script and responding. 89 // Tests receiving a request from a content script and responding.
88 function sendMessageFromTab() { 90 function sendMessageFromTab() {
89 var doneListening = chrome.test.listenForever( 91 var doneListening = chrome.test.listenForever(
90 chrome.runtime.onMessage, 92 chrome.runtime.onMessage,
91 function(request, sender, sendResponse) { 93 function(request, sender, sendResponse) {
92 chrome.test.assertTrue("url" in sender.tab, "no tab available."); 94 chrome.test.assertEq({
93 chrome.test.assertEq(sender.id, location.host); 95 tab: testTab,
96 url: testTab.url,
97 id: chrome.runtime.id
98 }, sender);
94 if (request.step == 1) { 99 if (request.step == 1) {
95 // Step 1: Page should send another request for step 2. 100 // Step 1: Page should send another request for step 2.
96 chrome.test.log("sendMessageFromTab: got step 1"); 101 chrome.test.log("sendMessageFromTab: got step 1");
97 sendResponse({nextStep: true}); 102 sendResponse({nextStep: true});
98 } else { 103 } else {
99 // Step 2. 104 // Step 2.
100 chrome.test.assertEq(request.step, 2); 105 chrome.test.assertEq(request.step, 2);
101 sendResponse(); 106 sendResponse();
102 doneListening(); 107 doneListening();
103 } 108 }
(...skipping 82 matching lines...) Expand 10 before | Expand all | Expand 10 after
186 } catch(e) { 191 } catch(e) {
187 error = e; 192 error = e;
188 } 193 }
189 chrome.test.assertTrue(error != undefined); 194 chrome.test.assertTrue(error != undefined);
190 195
191 chrome.test.succeed(); 196 chrome.test.succeed();
192 }, 197 },
193 198
194 ]); 199 ]);
195 }); 200 });
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698