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

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

Issue 709933002: Add frameId to MessageSender (extension messaging API) (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Add test that tests for a non-negative frameId Created 6 years, 1 month 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
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 var listenOnce = chrome.test.listenOnce; 5 var listenOnce = chrome.test.listenOnce;
6 var listenForever = chrome.test.listenForever; 6 var listenForever = chrome.test.listenForever;
7 7
8 JSON.parse = function() { 8 JSON.parse = function() {
9 return "JSON.parse clobbered by extension."; 9 return "JSON.parse clobbered by extension.";
10 }; 10 };
(...skipping 52 matching lines...) Expand 10 before | Expand all | Expand 10 after
63 chrome.test.assertEq(msg.portName, portName); 63 chrome.test.assertEq(msg.portName, portName);
64 port.disconnect(); 64 port.disconnect();
65 }); 65 });
66 }, 66 },
67 67
68 // Tests that postMessage from the tab and its response works. 68 // Tests that postMessage from the tab and its response works.
69 function postMessageFromTab() { 69 function postMessageFromTab() {
70 listenOnce(chrome.runtime.onConnect, function(port) { 70 listenOnce(chrome.runtime.onConnect, function(port) {
71 chrome.test.assertEq({ 71 chrome.test.assertEq({
72 tab: testTab, 72 tab: testTab,
73 frameId: 0, // Main frame
73 url: testTab.url, 74 url: testTab.url,
74 id: chrome.runtime.id 75 id: chrome.runtime.id
75 }, port.sender); 76 }, port.sender);
76 listenOnce(port.onMessage, function(msg) { 77 listenOnce(port.onMessage, function(msg) {
77 chrome.test.assertTrue(msg.testPostMessageFromTab); 78 chrome.test.assertTrue(msg.testPostMessageFromTab);
78 port.postMessage({success: true, portName: port.name}); 79 port.postMessage({success: true, portName: port.name});
79 chrome.test.log("postMessageFromTab: got message from tab"); 80 chrome.test.log("postMessageFromTab: got message from tab");
80 }); 81 });
81 }); 82 });
82 83
83 var port = chrome.tabs.connect(testTab.id); 84 var port = chrome.tabs.connect(testTab.id);
84 port.postMessage({testPostMessageFromTab: true}); 85 port.postMessage({testPostMessageFromTab: true});
85 chrome.test.log("postMessageFromTab: sent first message to tab"); 86 chrome.test.log("postMessageFromTab: sent first message to tab");
86 listenOnce(port.onMessage, function(msg) { 87 listenOnce(port.onMessage, function(msg) {
87 port.disconnect(); 88 port.disconnect();
88 }); 89 });
89 }, 90 },
90 91
91 // Tests receiving a request from a content script and responding. 92 // Tests receiving a request from a content script and responding.
92 function sendMessageFromTab() { 93 function sendMessageFromTab() {
93 var doneListening = listenForever( 94 var doneListening = listenForever(
94 chrome.runtime.onMessage, 95 chrome.runtime.onMessage,
95 function(request, sender, sendResponse) { 96 function(request, sender, sendResponse) {
96 chrome.test.assertEq({ 97 chrome.test.assertEq({
97 tab: testTab, 98 tab: testTab,
99 frameId: 0, // Main frame
98 url: testTab.url, 100 url: testTab.url,
99 id: chrome.runtime.id 101 id: chrome.runtime.id
100 }, sender); 102 }, sender);
101 if (request.step == 1) { 103 if (request.step == 1) {
102 // Step 1: Page should send another request for step 2. 104 // Step 1: Page should send another request for step 2.
103 chrome.test.log("sendMessageFromTab: got step 1"); 105 chrome.test.log("sendMessageFromTab: got step 1");
104 sendResponse({nextStep: true}); 106 sendResponse({nextStep: true});
105 } else { 107 } else {
106 // Step 2. 108 // Step 2.
107 chrome.test.assertEq(request.step, 2); 109 chrome.test.assertEq(request.step, 2);
108 sendResponse(); 110 sendResponse();
109 doneListening(); 111 doneListening();
110 } 112 }
111 }); 113 });
112 114
113 var port = chrome.tabs.connect(testTab.id); 115 var port = chrome.tabs.connect(testTab.id);
114 port.postMessage({testSendMessageFromTab: true}); 116 port.postMessage({testSendMessageFromTab: true});
115 port.disconnect(); 117 port.disconnect();
116 chrome.test.log("sendMessageFromTab: sent first message to tab"); 118 chrome.test.log("sendMessageFromTab: sent first message to tab");
117 }, 119 },
118 120
121 // Tests that a message from a child frame has a non-negative frameId.
122 function sendMessageFromFrameInTab() {
123 listenOnce(
124 chrome.runtime.onMessage,
125 function(request, sender, sendResponse) {
126 chrome.test.log("sendMessageFromFrameInTab: got frameId " +
not at google - send to devlin 2014/11/10 18:36:42 Remove logging before submitting.
robwu 2014/11/10 21:43:07 Other tests in this file also log this information
not at google - send to devlin 2014/11/11 00:24:03 Oh right, and I meant to respond to this. I agree
robwu 2014/11/11 00:34:26 So, what should this be? - Removed? - if (...) tes
not at google - send to devlin 2014/11/11 00:37:08 Like, chrome.test.assertTrue(sender.frameId >= 1,
robwu 2014/11/11 00:41:03 Done.
127 sender.frameId);
128 chrome.test.assertTrue(sender.frameId >= 1);
not at google - send to devlin 2014/11/10 18:36:42 Add comment like "frameId of 0 means the main fram
robwu 2014/11/10 21:43:07 Done.
129 delete sender.frameId;
130 chrome.test.assertEq({
131 tab: testTab,
132 url: request.frameUrl,
133 id: chrome.runtime.id
134 }, sender);
135 }
136 );
137
138 var port = chrome.tabs.connect(testTab.id);
139 port.postMessage({testSendMessageFromFrame: true});
140 port.disconnect();
141 chrome.test.log("sendMessageFromFrameInTab: send 1st message to tab");
not at google - send to devlin 2014/11/10 18:36:42 Remove logging before submitting.
robwu 2014/11/10 21:43:07 Same note as before: This file is full of chrome.t
142 },
143
119 // Tests error handling when sending a request from a content script to an 144 // Tests error handling when sending a request from a content script to an
120 // invalid extension. 145 // invalid extension.
121 function sendMessageFromTabError() { 146 function sendMessageFromTabError() {
122 listenOnce( 147 listenOnce(
123 chrome.runtime.onMessage, 148 chrome.runtime.onMessage,
124 function(request, sender, sendResponse) { 149 function(request, sender, sendResponse) {
125 if (!request.success) 150 if (!request.success)
126 chrome.test.fail(); 151 chrome.test.fail();
127 } 152 }
128 ); 153 );
(...skipping 76 matching lines...) Expand 10 before | Expand all | Expand 10 after
205 } catch(e) { 230 } catch(e) {
206 error = e; 231 error = e;
207 } 232 }
208 chrome.test.assertTrue(error != undefined); 233 chrome.test.assertTrue(error != undefined);
209 234
210 chrome.test.succeed(); 235 chrome.test.succeed();
211 }, 236 },
212 237
213 ]); 238 ]);
214 }); 239 });
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698