OLD | NEW |
1 // extension_apitest.js | 1 // extension_apitest.js |
2 // mini-framework for ExtensionApiTest browser tests | 2 // mini-framework for ExtensionApiTest browser tests |
3 | 3 |
4 var chrome = chrome || {}; | 4 var chrome = chrome || {}; |
5 (function() { | 5 (function() { |
6 chrome.test = chrome.test || {}; | 6 chrome.test = chrome.test || {}; |
7 | 7 |
8 chrome.test.tests = chrome.test.tests || []; | 8 chrome.test.tests = chrome.test.tests || []; |
9 | 9 |
10 var completed = false; | 10 var completed = false; |
(...skipping 133 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
144 } else { | 144 } else { |
145 msg += "\n(no stack available)"; | 145 msg += "\n(no stack available)"; |
146 } | 146 } |
147 chrome.test.fail(msg); | 147 chrome.test.fail(msg); |
148 } | 148 } |
149 }; | 149 }; |
150 | 150 |
151 // Wrapper for generating test functions, that takes care of calling | 151 // Wrapper for generating test functions, that takes care of calling |
152 // assertNoLastError() and (optionally) succeed() for you. | 152 // assertNoLastError() and (optionally) succeed() for you. |
153 chrome.test.callback = function(func, expectedError) { | 153 chrome.test.callback = function(func, expectedError) { |
154 chrome.test.assertEq(typeof(func), 'function'); | 154 if (func) { |
| 155 chrome.test.assertEq(typeof(func), 'function'); |
| 156 } |
| 157 |
155 callbackAdded(); | 158 callbackAdded(); |
| 159 |
156 return function() { | 160 return function() { |
157 if (expectedError == null) { | 161 if (expectedError == null) { |
158 chrome.test.assertNoLastError(); | 162 chrome.test.assertNoLastError(); |
159 } else { | 163 } else { |
160 chrome.test.assertEq(typeof(expectedError), 'string'); | 164 chrome.test.assertEq(typeof(expectedError), 'string'); |
161 chrome.test.assertEq(expectedError, chrome.extension.lastError.message); | 165 chrome.test.assertEq(expectedError, chrome.extension.lastError.message); |
162 } | 166 } |
163 safeFunctionApply(func, arguments); | 167 |
| 168 if (func) { |
| 169 safeFunctionApply(func, arguments); |
| 170 } |
| 171 |
164 callbackCompleted(); | 172 callbackCompleted(); |
165 }; | 173 }; |
166 }; | 174 }; |
167 | 175 |
168 chrome.test.listenOnce = function(event, func) { | 176 chrome.test.listenOnce = function(event, func) { |
169 callbackAdded(); | 177 callbackAdded(); |
170 var listener = function() { | 178 var listener = function() { |
171 event.removeListener(listener); | 179 event.removeListener(listener); |
172 safeFunctionApply(func, arguments); | 180 safeFunctionApply(func, arguments); |
173 callbackCompleted(); | 181 callbackCompleted(); |
174 }; | 182 }; |
175 event.addListener(listener); | 183 event.addListener(listener); |
176 }; | 184 }; |
177 | 185 |
178 chrome.test.callbackPass = function(func) { | 186 chrome.test.callbackPass = function(func) { |
179 return chrome.test.callback(func); | 187 return chrome.test.callback(func); |
180 }; | 188 }; |
181 | 189 |
182 chrome.test.callbackFail = function(func, expectedError) { | 190 chrome.test.callbackFail = function(expectedError) { |
183 return chrome.test.callback(func, expectedError); | 191 return chrome.test.callback(null, expectedError); |
184 }; | 192 }; |
185 | 193 |
186 // TODO(erikkay) This is deprecated and should be removed. | 194 // TODO(erikkay) This is deprecated and should be removed. |
187 chrome.test.testCallback = function(succeedWhenDone, func) { | 195 chrome.test.testCallback = function(succeedWhenDone, func) { |
188 return chrome.test.callback(func); | 196 return chrome.test.callback(func); |
189 }; | 197 }; |
190 | 198 |
191 chrome.test.runTests = function(tests) { | 199 chrome.test.runTests = function(tests) { |
192 chrome.test.tests = tests; | 200 chrome.test.tests = tests; |
193 chrome.test.runNextTest(); | 201 chrome.test.runNextTest(); |
194 }; | 202 }; |
195 | 203 |
196 })(); | 204 })(); |
OLD | NEW |