Index: utils/tests/pub/command_line_config.dart |
diff --git a/utils/tests/pub/command_line_config.dart b/utils/tests/pub/command_line_config.dart |
index 71df35e00bf61f3e03e9fe1d6d82251166f2890d..6ae8ef7f4d903730fcd03ba05e7545e6174a1849 100644 |
--- a/utils/tests/pub/command_line_config.dart |
+++ b/utils/tests/pub/command_line_config.dart |
@@ -10,15 +10,23 @@ import '../../../pkg/path/lib/path.dart' as path; |
import '../../../pkg/unittest/lib/unittest.dart'; |
import '../../pub/utils.dart'; |
-const _GREEN = '\u001b[32m'; |
-const _RED = '\u001b[31m'; |
-const _MAGENTA = '\u001b[35m'; |
-const _NONE = '\u001b[0m'; |
+/// Gets a "special" string (ANSI escape or Unicode). On Windows, returns |
+/// something else since those aren't supported. |
+String _getSpecial(String color, [String onWindows = '']) { |
+ // No ANSI escapes on windows. |
+ if (Platform.operatingSystem == 'windows') return onWindows; |
+ return color; |
+} |
/// Pretty Unicode characters! |
-const _CHECKBOX = '\u2713'; |
-const _BALLOT_X = '\u2717'; |
-const _LAMBDA = '\u03bb'; |
+final _checkBox = _getSpecial('\u2713', 'PASS'); |
nweiz
2013/02/05 03:26:14
Style nit: "_checkbox"
Bob Nystrom
2013/02/05 04:21:53
Done.
|
+final _ballotX = _getSpecial('\u2717', 'FAIL'); |
+final _lambda = _getSpecial('\u03bb', '<fn>'); |
+ |
+final _green = _getSpecial('\u001b[32m'); |
+final _red = _getSpecial('\u001b[31m'); |
+final _magenta = _getSpecial('\u001b[35m'); |
+final _none = _getSpecial('\u001b[0m'); |
/// A custom unittest configuration for running the pub tests from the |
/// command-line and generating human-friendly output. |
@@ -30,9 +38,9 @@ class CommandLineConfiguration extends Configuration { |
void onTestResult(TestCase testCase) { |
var result; |
switch (testCase.result) { |
- case PASS: result = '$_GREEN$_CHECKBOX$_NONE'; break; |
- case FAIL: result = '$_RED$_BALLOT_X$_NONE'; break; |
- case ERROR: result = '$_MAGENTA?$_NONE'; break; |
+ case PASS: result = '$_green$_checkBox$_none'; break; |
+ case FAIL: result = '$_red$_ballotX$_none'; break; |
+ case ERROR: result = '$_magenta?$_none'; break; |
} |
print('$result ${testCase.description}'); |
@@ -51,15 +59,15 @@ class CommandLineConfiguration extends Configuration { |
if (uncaughtError != null) { |
print('Top-level uncaught error: $uncaughtError'); |
} else if (errors != 0) { |
- print('${_GREEN}$passed${_NONE} passed, ${_RED}$failed${_NONE} failed, ' |
- '${_MAGENTA}$errors${_NONE} errors.'); |
+ print('${_green}$passed${_none} passed, ${_red}$failed${_none} failed, ' |
+ '${_magenta}$errors${_none} errors.'); |
} else if (failed != 0) { |
- print('${_GREEN}$passed${_NONE} passed, ${_RED}$failed${_NONE} ' |
+ print('${_green}$passed${_none} passed, ${_red}$failed${_none} ' |
'failed.'); |
} else if (passed == 0) { |
print('No tests found.'); |
} else { |
- print('All ${_GREEN}$passed${_NONE} tests passed!'); |
+ print('All ${_green}$passed${_none} tests passed!'); |
success = true; |
} |
} |
@@ -154,7 +162,7 @@ class _StackFrame { |
library = path.relative(library); |
} |
- var member = match[1].replaceAll("<anonymous closure>", _LAMBDA); |
+ var member = match[1].replaceAll("<anonymous closure>", _lambda); |
return new _StackFrame._(isCore, library, match[3], match[4], member); |
} |
-} |
+} |