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

Side by Side Diff: chrome/renderer/resources/extensions/test_custom_bindings.js

Issue 17451011: Make the externally connectable browser test clobber all of the builtins, (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: rebase Created 7 years, 6 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) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 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 // test_custom_bindings.js 5 // test_custom_bindings.js
6 // mini-framework for ExtensionApiTest browser tests 6 // mini-framework for ExtensionApiTest browser tests
7 7
8 var binding = require('binding').Binding.create('test'); 8 var binding = require('binding').Binding.create('test');
9 9
10 var chrome = requireNative('chrome').GetChrome(); 10 var chrome = requireNative('chrome').GetChrome();
(...skipping 43 matching lines...) Expand 10 before | Expand all | Expand 10 after
54 54
55 apiFunctions.setHandleRequest('callbackAdded', function() { 55 apiFunctions.setHandleRequest('callbackAdded', function() {
56 pendingCallbacks++; 56 pendingCallbacks++;
57 57
58 var called = null; 58 var called = null;
59 return function() { 59 return function() {
60 if (called != null) { 60 if (called != null) {
61 var redundantPrefix = 'Error\n'; 61 var redundantPrefix = 'Error\n';
62 chrome.test.fail( 62 chrome.test.fail(
63 'Callback has already been run. ' + 63 'Callback has already been run. ' +
64 'First call:\n' + called.slice(redundantPrefix.length) + '\n' + 64 'First call:\n' +
65 'Second call:\n' + new Error().stack.slice(redundantPrefix.length)); 65 $String.slice(called, redundantPrefix.length) + '\n' +
66 'Second call:\n' +
67 $String.slice(new Error().stack, redundantPrefix.length));
66 } 68 }
67 called = new Error().stack; 69 called = new Error().stack;
68 70
69 pendingCallbacks--; 71 pendingCallbacks--;
70 if (pendingCallbacks == 0) { 72 if (pendingCallbacks == 0) {
71 chromeTest.succeed(); 73 chromeTest.succeed();
72 } 74 }
73 }; 75 };
74 }); 76 });
75 77
(...skipping 68 matching lines...) Expand 10 before | Expand all | Expand 10 after
144 if ((expected === null) != (actual === null)) 146 if ((expected === null) != (actual === null))
145 return false; 147 return false;
146 148
147 if (expected === actual) 149 if (expected === actual)
148 return true; 150 return true;
149 151
150 if (typeof(expected) !== typeof(actual)) 152 if (typeof(expected) !== typeof(actual))
151 return false; 153 return false;
152 154
153 for (var p in actual) { 155 for (var p in actual) {
154 if (actual.hasOwnProperty(p) && !expected.hasOwnProperty(p)) 156 if ($Object.hasOwnProperty(actual, p) &&
157 !$Object.hasOwnProperty(expected, p)) {
155 return false; 158 return false;
159 }
156 } 160 }
157 for (var p in expected) { 161 for (var p in expected) {
158 if (expected.hasOwnProperty(p) && !actual.hasOwnProperty(p)) 162 if ($Object.hasOwnProperty(expected, p) &&
163 !$Object.hasOwnProperty(actual, p)) {
159 return false; 164 return false;
165 }
160 } 166 }
161 167
162 for (var p in expected) { 168 for (var p in expected) {
163 var eq = true; 169 var eq = true;
164 switch (typeof(expected[p])) { 170 switch (typeof(expected[p])) {
165 case 'object': 171 case 'object':
166 eq = chromeTest.checkDeepEq(expected[p], actual[p]); 172 eq = chromeTest.checkDeepEq(expected[p], actual[p]);
167 break; 173 break;
168 case 'function': 174 case 'function':
169 eq = (typeof(actual[p]) != 'undefined' && 175 eq = (typeof(actual[p]) != 'undefined' &&
(...skipping 48 matching lines...) Expand 10 before | Expand all | Expand 10 after
218 apiFunctions.setHandleRequest('assertLastError', function(expectedError) { 224 apiFunctions.setHandleRequest('assertLastError', function(expectedError) {
219 chromeTest.assertEq(typeof(expectedError), 'string'); 225 chromeTest.assertEq(typeof(expectedError), 'string');
220 chromeTest.assertTrue(chrome.runtime.lastError != undefined, 226 chromeTest.assertTrue(chrome.runtime.lastError != undefined,
221 "No lastError, but expected " + expectedError); 227 "No lastError, but expected " + expectedError);
222 chromeTest.assertEq(expectedError, chrome.runtime.lastError.message); 228 chromeTest.assertEq(expectedError, chrome.runtime.lastError.message);
223 }); 229 });
224 230
225 function safeFunctionApply(func, args) { 231 function safeFunctionApply(func, args) {
226 try { 232 try {
227 if (func) 233 if (func)
228 func.apply(null, args); 234 $Function.apply(func, null, args);
229 } catch (e) { 235 } catch (e) {
230 var msg = "uncaught exception " + e; 236 var msg = "uncaught exception " + e;
231 chromeTest.fail(msg); 237 chromeTest.fail(msg);
232 } 238 }
233 }; 239 };
234 240
235 // Wrapper for generating test functions, that takes care of calling 241 // Wrapper for generating test functions, that takes care of calling
236 // assertNoLastError() and (optionally) succeed() for you. 242 // assertNoLastError() and (optionally) succeed() for you.
237 apiFunctions.setHandleRequest('callback', function(func, expectedError) { 243 apiFunctions.setHandleRequest('callback', function(func, expectedError) {
238 if (func) { 244 if (func) {
(...skipping 59 matching lines...) Expand 10 before | Expand all | Expand 10 after
298 apiFunctions.setHandleRequest('getApiDefinitions', function() { 304 apiFunctions.setHandleRequest('getApiDefinitions', function() {
299 return GetExtensionAPIDefinitionsForTest(); 305 return GetExtensionAPIDefinitionsForTest();
300 }); 306 });
301 307
302 apiFunctions.setHandleRequest('getApiFeatures', function() { 308 apiFunctions.setHandleRequest('getApiFeatures', function() {
303 return GetAPIFeatures(); 309 return GetAPIFeatures();
304 }); 310 });
305 }); 311 });
306 312
307 exports.binding = binding.generate(); 313 exports.binding = binding.generate();
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698