| OLD | NEW |
| 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 // extension_apitest.js | 5 // extension_apitest.js |
| 6 // mini-framework for ExtensionApiTest browser tests | 6 // mini-framework for ExtensionApiTest browser tests |
| 7 | 7 |
| 8 chrome.test = chrome.test || {}; | 8 chrome.test = chrome.test || {}; |
| 9 | 9 |
| 10 chrome.test.tests = chrome.test.tests || []; | 10 chrome.test.tests = chrome.test.tests || []; |
| (...skipping 171 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 182 } | 182 } |
| 183 }; | 183 }; |
| 184 | 184 |
| 185 chrome.test.assertNoLastError = function() { | 185 chrome.test.assertNoLastError = function() { |
| 186 if (chrome.runtime.lastError != undefined) { | 186 if (chrome.runtime.lastError != undefined) { |
| 187 chrome.test.fail("lastError.message == " + | 187 chrome.test.fail("lastError.message == " + |
| 188 chrome.runtime.lastError.message); | 188 chrome.runtime.lastError.message); |
| 189 } | 189 } |
| 190 }; | 190 }; |
| 191 | 191 |
| 192 chrome.test.assertLastError = function(expectedError) { |
| 193 chrome.test.assertEq(typeof(expectedError), 'string'); |
| 194 chrome.test.assertTrue(chrome.runtime.lastError != undefined, |
| 195 "No lastError, but expected " + expectedError); |
| 196 chrome.test.assertEq(expectedError, chrome.runtime.lastError.message); |
| 197 } |
| 198 |
| 192 function safeFunctionApply(func, arguments) { | 199 function safeFunctionApply(func, arguments) { |
| 193 try { | 200 try { |
| 194 if (func) | 201 if (func) |
| 195 func.apply(null, arguments); | 202 func.apply(null, arguments); |
| 196 } catch (e) { | 203 } catch (e) { |
| 197 var msg = "uncaught exception " + e; | 204 var msg = "uncaught exception " + e; |
| 198 chrome.test.fail(msg); | 205 chrome.test.fail(msg); |
| 199 } | 206 } |
| 200 }; | 207 }; |
| 201 | 208 |
| 202 // Wrapper for generating test functions, that takes care of calling | 209 // Wrapper for generating test functions, that takes care of calling |
| 203 // assertNoLastError() and (optionally) succeed() for you. | 210 // assertNoLastError() and (optionally) succeed() for you. |
| 204 chrome.test.callback = function(func, expectedError) { | 211 chrome.test.callback = function(func, expectedError) { |
| 205 if (func) { | 212 if (func) { |
| 206 chrome.test.assertEq(typeof(func), 'function'); | 213 chrome.test.assertEq(typeof(func), 'function'); |
| 207 } | 214 } |
| 208 var callbackCompleted = chrome.test.callbackAdded(); | 215 var callbackCompleted = chrome.test.callbackAdded(); |
| 209 | 216 |
| 210 return function() { | 217 return function() { |
| 211 if (expectedError == null) { | 218 if (expectedError == null) { |
| 212 chrome.test.assertNoLastError(); | 219 chrome.test.assertNoLastError(); |
| 213 } else { | 220 } else { |
| 214 chrome.test.assertEq(typeof(expectedError), 'string'); | 221 chrome.test.assertLastError(expectedError); |
| 215 chrome.test.assertTrue(chrome.runtime.lastError != undefined, | |
| 216 "No lastError, but expected " + expectedError); | |
| 217 chrome.test.assertEq(expectedError, chrome.runtime.lastError.message); | |
| 218 } | 222 } |
| 219 | 223 |
| 220 if (func) { | 224 if (func) { |
| 221 safeFunctionApply(func, arguments); | 225 safeFunctionApply(func, arguments); |
| 222 } | 226 } |
| 223 | 227 |
| 224 callbackCompleted(); | 228 callbackCompleted(); |
| 225 }; | 229 }; |
| 226 }; | 230 }; |
| 227 | 231 |
| (...skipping 29 matching lines...) Expand all Loading... |
| 257 | 261 |
| 258 chrome.test.callbackFail = function(expectedError, func) { | 262 chrome.test.callbackFail = function(expectedError, func) { |
| 259 return chrome.test.callback(func, expectedError); | 263 return chrome.test.callback(func, expectedError); |
| 260 }; | 264 }; |
| 261 | 265 |
| 262 chrome.test.runTests = function(tests) { | 266 chrome.test.runTests = function(tests) { |
| 263 chrome.test.tests = tests; | 267 chrome.test.tests = tests; |
| 264 testCount = chrome.test.tests.length; | 268 testCount = chrome.test.tests.length; |
| 265 chrome.test.runNextTest(); | 269 chrome.test.runNextTest(); |
| 266 }; | 270 }; |
| OLD | NEW |