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 /** | 5 /** |
6 * @fileoverview Library providing basic test framework functionality. | 6 * @fileoverview Library providing basic test framework functionality. |
7 */ | 7 */ |
8 | 8 |
9 /** | 9 /** |
10 * Namespace for |Test|. | 10 * Namespace for |Test|. |
11 * @type {Object} | 11 * @type {Object} |
12 */ | 12 */ |
13 var testing = {}; | 13 var testing = {}; |
14 (function(window) { | 14 (function(exports) { |
15 /** | 15 /** |
16 * Hold the currentTestCase across between preLoad and run. | 16 * Hold the currentTestCase across between preLoad and run. |
17 * @type {TestCase} | 17 * @type {TestCase} |
18 */ | 18 */ |
19 var currentTestCase = null; | 19 var currentTestCase = null; |
20 | 20 |
21 /** | 21 /** |
22 * The string representation of the currently running test function. | 22 * The string representation of the currently running test function. |
23 * @type {?string} | 23 * @type {?string} |
24 */ | 24 */ |
(...skipping 78 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
103 */ | 103 */ |
104 isAsync: false, | 104 isAsync: false, |
105 | 105 |
106 /** | 106 /** |
107 * True when the test is expected to fail for testing the test framework. | 107 * True when the test is expected to fail for testing the test framework. |
108 * @type {boolean} | 108 * @type {boolean} |
109 */ | 109 */ |
110 testShouldFail: false, | 110 testShouldFail: false, |
111 | 111 |
112 /** | 112 /** |
| 113 * Extra libraries to add before loading this test file. |
| 114 * @type {Array.<string>} |
| 115 */ |
| 116 extraLibraries: [], |
| 117 |
| 118 /** |
113 * Override this method to perform initialization during preload (such as | 119 * Override this method to perform initialization during preload (such as |
114 * creating mocks and registering handlers). | 120 * creating mocks and registering handlers). |
115 * @type {Function} | 121 * @type {Function} |
116 */ | 122 */ |
117 preLoad: function() {}, | 123 preLoad: function() {}, |
118 | 124 |
119 /** | 125 /** |
120 * Override this method to perform tasks before running your test. | 126 * Override this method to perform tasks before running your test. |
121 * @type {Function} | 127 * @type {Function} |
122 */ | 128 */ |
(...skipping 699 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
822 * method. This is called before the page is loaded, so the |chrome| object is | 828 * method. This is called before the page is loaded, so the |chrome| object is |
823 * not yet bound and this DOMContentLoaded listener will be called first to | 829 * not yet bound and this DOMContentLoaded listener will be called first to |
824 * override |chrome| in order to route messages registered in |sendCallbacks|. | 830 * override |chrome| in order to route messages registered in |sendCallbacks|. |
825 * @param {string} testFixture The test fixture name. | 831 * @param {string} testFixture The test fixture name. |
826 * @param {string} testName The test name. | 832 * @param {string} testName The test name. |
827 * @see sendCallbacks | 833 * @see sendCallbacks |
828 */ | 834 */ |
829 function preloadJavascriptLibraries(testFixture, testName) { | 835 function preloadJavascriptLibraries(testFixture, testName) { |
830 deferGlobalOverrides = true; | 836 deferGlobalOverrides = true; |
831 | 837 |
832 window.addEventListener('DOMContentLoaded', function() { | 838 exports.addEventListener('DOMContentLoaded', function() { |
833 var oldChrome = chrome; | 839 var oldChrome = chrome; |
834 chrome = { | 840 chrome = { |
835 __proto__: oldChrome, | 841 __proto__: oldChrome, |
836 send: send, | 842 send: send, |
837 }; | 843 }; |
838 | 844 |
839 // Override globals at load time so they will be defined. | 845 // Override globals at load time so they will be defined. |
840 assertTrue(deferGlobalOverrides); | 846 assertTrue(deferGlobalOverrides); |
841 deferGlobalOverrides = false; | 847 deferGlobalOverrides = false; |
842 for (var funcName in globalOverrides) | 848 for (var funcName in globalOverrides) |
843 overrideGlobal(funcName); | 849 overrideGlobal(funcName); |
844 }); | 850 }); |
845 currentTestCase = createTestCase(testFixture, testName); | 851 currentTestCase = createTestCase(testFixture, testName); |
846 currentTestCase.preLoad(); | 852 currentTestCase.preLoad(); |
847 } | 853 } |
848 | 854 |
849 /** | 855 /** |
850 * During generation phase, this outputs; do nothing at runtime. | 856 * During generation phase, this outputs; do nothing at runtime. |
851 */ | 857 */ |
852 function GEN() {} | 858 function GEN() {} |
853 | 859 |
854 /** | 860 /** |
| 861 * During generation phase, this outputs; do nothing at runtime. |
| 862 */ |
| 863 function GEN_INCLUDE() {} |
| 864 |
| 865 /** |
855 * At runtime, register the testName with a test fixture. Since this method | 866 * At runtime, register the testName with a test fixture. Since this method |
856 * doesn't have a test fixture, create a dummy fixture to hold its |name| | 867 * doesn't have a test fixture, create a dummy fixture to hold its |name| |
857 * and |testCaseBodies|. | 868 * and |testCaseBodies|. |
858 * @param {string} testCaseName The name of the test case. | 869 * @param {string} testCaseName The name of the test case. |
859 * @param {string} testName The name of the test function. | 870 * @param {string} testName The name of the test function. |
860 * @param {Function} testBody The body to execute when running this test. | 871 * @param {Function} testBody The body to execute when running this test. |
861 */ | 872 */ |
862 function TEST(testCaseName, testName, testBody) { | 873 function TEST(testCaseName, testName, testBody) { |
863 var fixtureConstructor = this[testCaseName]; | 874 var fixtureConstructor = this[testCaseName]; |
864 if (fixtureConstructor === undefined) { | 875 if (fixtureConstructor === undefined) { |
(...skipping 396 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1261 * @param {...Object} var_actions Actions to run. | 1272 * @param {...Object} var_actions Actions to run. |
1262 * @return {RunAllAction} Action for use in will. | 1273 * @return {RunAllAction} Action for use in will. |
1263 */ | 1274 */ |
1264 function runAllActionsAsync(whenTestDone) { | 1275 function runAllActionsAsync(whenTestDone) { |
1265 return new RunAllAction(true, whenTestDone, | 1276 return new RunAllAction(true, whenTestDone, |
1266 Array.prototype.slice.call(arguments, 1)); | 1277 Array.prototype.slice.call(arguments, 1)); |
1267 } | 1278 } |
1268 | 1279 |
1269 // Exports. | 1280 // Exports. |
1270 testing.Test = Test; | 1281 testing.Test = Test; |
1271 window.testDone = testDone; | 1282 exports.testDone = testDone; |
1272 window.assertTrue = assertTrue; | 1283 exports.assertTrue = assertTrue; |
1273 window.assertFalse = assertFalse; | 1284 exports.assertFalse = assertFalse; |
1274 window.assertGE = assertGE; | 1285 exports.assertGE = assertGE; |
1275 window.assertGT = assertGT; | 1286 exports.assertGT = assertGT; |
1276 window.assertEquals = assertEquals; | 1287 exports.assertEquals = assertEquals; |
1277 window.assertLE = assertLE; | 1288 exports.assertLE = assertLE; |
1278 window.assertLT = assertLT; | 1289 exports.assertLT = assertLT; |
1279 window.assertNotEquals = assertNotEquals; | 1290 exports.assertNotEquals = assertNotEquals; |
1280 window.assertNotReached = assertNotReached; | 1291 exports.assertNotReached = assertNotReached; |
1281 window.callFunction = callFunction; | 1292 exports.callFunction = callFunction; |
1282 window.callFunctionWithSavedArgs = callFunctionWithSavedArgs; | 1293 exports.callFunctionWithSavedArgs = callFunctionWithSavedArgs; |
1283 window.callGlobalWithSavedArgs = callGlobalWithSavedArgs; | 1294 exports.callGlobalWithSavedArgs = callGlobalWithSavedArgs; |
1284 window.expectTrue = createExpect(assertTrue); | 1295 exports.expectTrue = createExpect(assertTrue); |
1285 window.expectFalse = createExpect(assertFalse); | 1296 exports.expectFalse = createExpect(assertFalse); |
1286 window.expectGE = createExpect(assertGE); | 1297 exports.expectGE = createExpect(assertGE); |
1287 window.expectGT = createExpect(assertGT); | 1298 exports.expectGT = createExpect(assertGT); |
1288 window.expectEquals = createExpect(assertEquals); | 1299 exports.expectEquals = createExpect(assertEquals); |
1289 window.expectLE = createExpect(assertLE); | 1300 exports.expectLE = createExpect(assertLE); |
1290 window.expectLT = createExpect(assertLT); | 1301 exports.expectLT = createExpect(assertLT); |
1291 window.expectNotEquals = createExpect(assertNotEquals); | 1302 exports.expectNotEquals = createExpect(assertNotEquals); |
1292 window.expectNotReached = createExpect(assertNotReached); | 1303 exports.expectNotReached = createExpect(assertNotReached); |
1293 window.preloadJavascriptLibraries = preloadJavascriptLibraries; | 1304 exports.preloadJavascriptLibraries = preloadJavascriptLibraries; |
1294 window.registerMessageCallback = registerMessageCallback; | 1305 exports.registerMessageCallback = registerMessageCallback; |
1295 window.registerMockGlobals = registerMockGlobals; | 1306 exports.registerMockGlobals = registerMockGlobals; |
1296 window.registerMockMessageCallbacks = registerMockMessageCallbacks; | 1307 exports.registerMockMessageCallbacks = registerMockMessageCallbacks; |
1297 window.resetTestState = resetTestState; | 1308 exports.resetTestState = resetTestState; |
1298 window.runAllActions = runAllActions; | 1309 exports.runAllActions = runAllActions; |
1299 window.runAllActionsAsync = runAllActionsAsync; | 1310 exports.runAllActionsAsync = runAllActionsAsync; |
1300 window.runTest = runTest; | 1311 exports.runTest = runTest; |
1301 window.runTestFunction = runTestFunction; | 1312 exports.runTestFunction = runTestFunction; |
1302 window.SaveMockArguments = SaveMockArguments; | 1313 exports.SaveMockArguments = SaveMockArguments; |
1303 window.DUMMY_URL = DUMMY_URL; | 1314 exports.DUMMY_URL = DUMMY_URL; |
1304 window.TEST = TEST; | 1315 exports.TEST = TEST; |
1305 window.TEST_F = TEST_F; | 1316 exports.TEST_F = TEST_F; |
1306 window.GEN = GEN; | 1317 exports.GEN = GEN; |
1307 window.WhenTestDone = WhenTestDone; | 1318 exports.GEN_INCLUDE = GEN_INCLUDE; |
| 1319 exports.WhenTestDone = WhenTestDone; |
1308 | 1320 |
1309 // Import the Mock4JS helpers. | 1321 // Import the Mock4JS helpers. |
1310 Mock4JS.addMockSupport(window); | 1322 Mock4JS.addMockSupport(exports); |
1311 })(('window' in this) ? window : this); | 1323 })(this); |
OLD | NEW |