| OLD | NEW |
| 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 46 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 57 port.postMessage({testPortName: true}); | 57 port.postMessage({testPortName: true}); |
| 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.extension.onConnect.addListener(function(port) { | 67 chrome.runtime.onConnect.addListener(function(port) { |
| 68 chrome.test.assertTrue(Boolean(port.sender.tab.url)); | 68 chrome.test.assertTrue(Boolean(port.sender.tab.url)); |
| 69 chrome.test.assertTrue(Boolean(port.sender.tab.title)); | 69 chrome.test.assertTrue(Boolean(port.sender.tab.title)); |
| 70 chrome.test.assertTrue(Boolean(port.sender.tab.id)); | 70 chrome.test.assertTrue(Boolean(port.sender.tab.id)); |
| 71 port.onMessage.addListener(function(msg) { | 71 port.onMessage.addListener(function(msg) { |
| 72 chrome.test.assertTrue(msg.testPostMessageFromTab); | 72 chrome.test.assertTrue(msg.testPostMessageFromTab); |
| 73 port.postMessage({success: true, portName: port.name}); | 73 port.postMessage({success: true, portName: port.name}); |
| 74 chrome.test.log("postMessageFromTab: got message from tab"); | 74 chrome.test.log("postMessageFromTab: got message from tab"); |
| 75 }); | 75 }); |
| 76 }); | 76 }); |
| 77 | 77 |
| 78 var port = chrome.tabs.connect(testTab.id); | 78 var port = chrome.tabs.connect(testTab.id); |
| 79 port.postMessage({testPostMessageFromTab: true}); | 79 port.postMessage({testPostMessageFromTab: true}); |
| 80 chrome.test.log("postMessageFromTab: sent first message to tab"); | 80 chrome.test.log("postMessageFromTab: sent first message to tab"); |
| 81 port.onMessage.addListener(function(msg) { | 81 port.onMessage.addListener(function(msg) { |
| 82 port.disconnect(); | 82 port.disconnect(); |
| 83 chrome.test.succeed(); | 83 chrome.test.succeed(); |
| 84 }); | 84 }); |
| 85 }, | 85 }, |
| 86 | 86 |
| 87 // Tests receiving a request from a content script and responding. | 87 // Tests receiving a request from a content script and responding. |
| 88 function sendMessageFromTab() { | 88 function sendMessageFromTab() { |
| 89 var doneListening = chrome.test.listenForever( | 89 var doneListening = chrome.test.listenForever( |
| 90 chrome.extension.onMessage, | 90 chrome.runtime.onMessage, |
| 91 function(request, sender, sendResponse) { | 91 function(request, sender, sendResponse) { |
| 92 chrome.test.assertTrue("url" in sender.tab, "no tab available."); | 92 chrome.test.assertTrue("url" in sender.tab, "no tab available."); |
| 93 chrome.test.assertEq(sender.id, location.host); | 93 chrome.test.assertEq(sender.id, location.host); |
| 94 if (request.step == 1) { | 94 if (request.step == 1) { |
| 95 // Step 1: Page should send another request for step 2. | 95 // Step 1: Page should send another request for step 2. |
| 96 chrome.test.log("sendMessageFromTab: got step 1"); | 96 chrome.test.log("sendMessageFromTab: got step 1"); |
| 97 sendResponse({nextStep: true}); | 97 sendResponse({nextStep: true}); |
| 98 } else { | 98 } else { |
| 99 // Step 2. | 99 // Step 2. |
| 100 chrome.test.assertEq(request.step, 2); | 100 chrome.test.assertEq(request.step, 2); |
| 101 sendResponse(); | 101 sendResponse(); |
| 102 doneListening(); | 102 doneListening(); |
| 103 } | 103 } |
| 104 }); | 104 }); |
| 105 | 105 |
| 106 var port = chrome.tabs.connect(testTab.id); | 106 var port = chrome.tabs.connect(testTab.id); |
| 107 port.postMessage({testSendMessageFromTab: true}); | 107 port.postMessage({testSendMessageFromTab: true}); |
| 108 port.disconnect(); | 108 port.disconnect(); |
| 109 chrome.test.log("sendMessageFromTab: sent first message to tab"); | 109 chrome.test.log("sendMessageFromTab: sent first message to tab"); |
| 110 }, | 110 }, |
| 111 | 111 |
| 112 // Tests error handling when sending a request from a content script to an | 112 // Tests error handling when sending a request from a content script to an |
| 113 // invalid extension. | 113 // invalid extension. |
| 114 function sendMessageFromTabError() { | 114 function sendMessageFromTabError() { |
| 115 chrome.test.listenOnce( | 115 chrome.test.listenOnce( |
| 116 chrome.extension.onMessage, | 116 chrome.runtime.onMessage, |
| 117 function(request, sender, sendResponse) { | 117 function(request, sender, sendResponse) { |
| 118 if (!request.success) | 118 if (!request.success) |
| 119 chrome.test.fail(); | 119 chrome.test.fail(); |
| 120 } | 120 } |
| 121 ); | 121 ); |
| 122 | 122 |
| 123 var port = chrome.tabs.connect(testTab.id); | 123 var port = chrome.tabs.connect(testTab.id); |
| 124 port.postMessage({testSendMessageFromTabError: true}); | 124 port.postMessage({testSendMessageFromTabError: true}); |
| 125 port.disconnect(); | 125 port.disconnect(); |
| 126 chrome.test.log("testSendMessageFromTabError: send 1st message to tab"); | 126 chrome.test.log("testSendMessageFromTabError: send 1st message to tab"); |
| 127 }, | 127 }, |
| 128 | 128 |
| 129 // Tests error handling when connecting to an invalid extension from a | 129 // Tests error handling when connecting to an invalid extension from a |
| 130 // content script. | 130 // content script. |
| 131 function connectFromTabError() { | 131 function connectFromTabError() { |
| 132 chrome.test.listenOnce( | 132 chrome.test.listenOnce( |
| 133 chrome.extension.onMessage, | 133 chrome.runtime.onMessage, |
| 134 function(request, sender, sendResponse) { | 134 function(request, sender, sendResponse) { |
| 135 if (!request.success) | 135 if (!request.success) |
| 136 chrome.test.fail(); | 136 chrome.test.fail(); |
| 137 } | 137 } |
| 138 ); | 138 ); |
| 139 | 139 |
| 140 var port = chrome.tabs.connect(testTab.id); | 140 var port = chrome.tabs.connect(testTab.id); |
| 141 port.postMessage({testConnectFromTabError: true}); | 141 port.postMessage({testConnectFromTabError: true}); |
| 142 port.disconnect(); | 142 port.disconnect(); |
| 143 chrome.test.log("testConnectFromTabError: sent 1st message to tab"); | 143 chrome.test.log("testConnectFromTabError: sent 1st message to tab"); |
| (...skipping 42 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 186 } catch(e) { | 186 } catch(e) { |
| 187 error = e; | 187 error = e; |
| 188 } | 188 } |
| 189 chrome.test.assertTrue(error != undefined); | 189 chrome.test.assertTrue(error != undefined); |
| 190 | 190 |
| 191 chrome.test.succeed(); | 191 chrome.test.succeed(); |
| 192 }, | 192 }, |
| 193 | 193 |
| 194 ]); | 194 ]); |
| 195 }); | 195 }); |
| OLD | NEW |