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

Side by Side Diff: pkg/unittest/lib/unittest.dart

Issue 208593004: pkg/unittest: dartfmt (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Created 6 years, 9 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) 2013, the Dart project authors. Please see the AUTHORS file 1 // Copyright (c) 2013, the Dart project authors. Please see the AUTHORS file
2 // for details. All rights reserved. Use of this source code is governed by a 2 // for details. All rights reserved. Use of this source code is governed by a
3 // BSD-style license that can be found in the LICENSE file. 3 // BSD-style license that can be found in the LICENSE file.
4 4
5 /** 5 /**
6 * Support for writing Dart unit tests. 6 * Support for writing Dart unit tests.
7 * 7 *
8 * For information on installing and importing this library, see the 8 * For information on installing and importing this library, see the
9 * [unittest package on pub.dartlang.org] 9 * [unittest package on pub.dartlang.org]
10 * (http://pub.dartlang.org/packages/unittest). 10 * (http://pub.dartlang.org/packages/unittest).
(...skipping 251 matching lines...) Expand 10 before | Expand all | Expand 10 after
262 /** 262 /**
263 * Creates a new test case with the given description and body. The 263 * Creates a new test case with the given description and body. The
264 * description will include the descriptions of any surrounding group() 264 * description will include the descriptions of any surrounding group()
265 * calls. 265 * calls.
266 */ 266 */
267 void test(String spec, TestFunction body) { 267 void test(String spec, TestFunction body) {
268 _requireNotRunning(); 268 _requireNotRunning();
269 ensureInitialized(); 269 ensureInitialized();
270 if (!_soloTestSeen || _soloNestingLevel > 0) { 270 if (!_soloTestSeen || _soloNestingLevel > 0) {
271 var testcase = new TestCase._internal(testCases.length + 1, _fullSpec(spec), 271 var testcase = new TestCase._internal(testCases.length + 1, _fullSpec(spec),
272 body); 272 body);
273 _testCases.add(testcase); 273 _testCases.add(testcase);
274 } 274 }
275 } 275 }
276 276
277 /** Convenience function for skipping a test. */ 277 /** Convenience function for skipping a test. */
278 void skip_test(String spec, TestFunction body){} 278 void skip_test(String spec, TestFunction body) {}
279 279
280 /** 280 /**
281 * Creates a new test case with the given description and body. The 281 * Creates a new test case with the given description and body. The
282 * description will include the descriptions of any surrounding group() 282 * description will include the descriptions of any surrounding group()
283 * calls. 283 * calls.
284 * 284 *
285 * If we use [solo_test] (or [solo_group]) instead of test, then all non-solo 285 * If we use [solo_test] (or [solo_group]) instead of test, then all non-solo
286 * tests will be disabled. Note that if we use [solo_group], all tests in 286 * tests will be disabled. Note that if we use [solo_group], all tests in
287 * the group will be enabled, regardless of whether they use [test] or 287 * the group will be enabled, regardless of whether they use [test] or
288 * [solo_test], or whether they are in a nested [group] vs [solo_group]. Put 288 * [solo_test], or whether they are in a nested [group] vs [solo_group]. Put
(...skipping 375 matching lines...) Expand 10 before | Expand all | Expand 10 after
664 unittestConfiguration.onInit(); 664 unittestConfiguration.onInit();
665 665
666 if (configAutoStart && _config.autoStart) { 666 if (configAutoStart && _config.autoStart) {
667 // Immediately queue the suite up. It will run after a timeout (i.e. after 667 // Immediately queue the suite up. It will run after a timeout (i.e. after
668 // main() has returned). 668 // main() has returned).
669 scheduleMicrotask(runTests); 669 scheduleMicrotask(runTests);
670 } 670 }
671 } 671 }
672 672
673 /** Select a solo test by ID. */ 673 /** Select a solo test by ID. */
674 void setSoloTest(int id) => 674 void setSoloTest(int id) => _testCases.retainWhere((t) => t.id == id);
675 _testCases.retainWhere((t) => t.id == id);
676 675
677 /** Enable/disable a test by ID. */ 676 /** Enable/disable a test by ID. */
678 void _setTestEnabledState(int testId, bool state) { 677 void _setTestEnabledState(int testId, bool state) {
679 // Try fast path first. 678 // Try fast path first.
680 if (testCases.length > testId && testCases[testId].id == testId) { 679 if (testCases.length > testId && testCases[testId].id == testId) {
681 testCases[testId]._enabled = state; 680 testCases[testId]._enabled = state;
682 } else { 681 } else {
683 for (var i = 0; i < testCases.length; i++) { 682 for (var i = 0; i < testCases.length; i++) {
684 if (testCases[i].id == testId) { 683 if (testCases[i].id == testId) {
685 testCases[i]._enabled = state; 684 testCases[i]._enabled = state;
(...skipping 20 matching lines...) Expand all
706 */ 705 */
707 bool formatStacks = true; 706 bool formatStacks = true;
708 707
709 /** 708 /**
710 * A flag that controls whether we try to filter out irrelevant frames from 709 * A flag that controls whether we try to filter out irrelevant frames from
711 * the stack trace. Requires formatStacks to be set. 710 * the stack trace. Requires formatStacks to be set.
712 */ 711 */
713 bool filterStacks = true; 712 bool filterStacks = true;
714 713
715 void _requireNotRunning() { 714 void _requireNotRunning() {
716 if(_currentTestCaseIndex != -1) { 715 if (_currentTestCaseIndex != -1) {
717 throw new StateError('Not allowed when tests are running.'); 716 throw new StateError('Not allowed when tests are running.');
718 } 717 }
719 } 718 }
720 719
721 /** 720 /**
722 * Returns a Trace object from a StackTrace object or a String, or the 721 * Returns a Trace object from a StackTrace object or a String, or the
723 * unchanged input if formatStacks is false; 722 * unchanged input if formatStacks is false;
724 */ 723 */
725 Trace _getTrace(stack) { 724 Trace _getTrace(stack) {
726 Trace trace; 725 Trace trace;
727 if (stack == null || !formatStacks) return null; 726 if (stack == null || !formatStacks) return null;
728 if (stack is String) { 727 if (stack is String) {
729 trace = new Trace.parse(stack); 728 trace = new Trace.parse(stack);
730 } else if (stack is StackTrace) { 729 } else if (stack is StackTrace) {
731 trace = new Trace.from(stack); 730 trace = new Trace.from(stack);
732 } else { 731 } else {
733 throw new Exception('Invalid stack type ${stack.runtimeType} for $stack.'); 732 throw new Exception('Invalid stack type ${stack.runtimeType} for $stack.');
734 } 733 }
735 734
736 if (!filterStacks) return trace; 735 if (!filterStacks) return trace;
737 736
738 // Format the stack trace by removing everything above TestCase._runTest, 737 // Format the stack trace by removing everything above TestCase._runTest,
739 // which is usually going to be irrelevant. Also fold together unittest and 738 // which is usually going to be irrelevant. Also fold together unittest and
740 // core library calls so only the function the user called is visible. 739 // core library calls so only the function the user called is visible.
741 return new Trace(trace.frames.takeWhile((frame) { 740 return new Trace(trace.frames.takeWhile((frame) {
742 return frame.package != 'unittest' || frame.member != 'TestCase._runTest'; 741 return frame.package != 'unittest' || frame.member != 'TestCase._runTest';
743 })).terse.foldFrames((frame) => frame.package == 'unittest' || frame.isCore); 742 })).terse.foldFrames((frame) => frame.package == 'unittest' || frame.isCore);
744 } 743 }
OLDNEW
« pkg/unittest/lib/src/core_matchers.dart ('K') | « pkg/unittest/lib/src/simple_configuration.dart ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698