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

Unified Diff: pkg/unittest/lib/src/utils.dart

Issue 270943002: pkg/unittest: remove deprecated features (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Created 6 years, 7 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « pkg/unittest/lib/src/test_case.dart ('k') | pkg/unittest/lib/unittest.dart » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: pkg/unittest/lib/src/utils.dart
diff --git a/pkg/unittest/lib/src/utils.dart b/pkg/unittest/lib/src/utils.dart
index 9aaae5b52c493e224f120db6c5a581d38087b514..877cfb2263bacbd10358da47ac2e77d74a963d99 100644
--- a/pkg/unittest/lib/src/utils.dart
+++ b/pkg/unittest/lib/src/utils.dart
@@ -4,43 +4,7 @@
library unittest.utils;
-/// Returns the name of the type of [x], or "Unknown" if the type name can't be
-/// determined.
-String typeName(x) {
- // dart2js blows up on some objects (e.g. window.navigator).
- // So we play safe here.
- try {
- if (x == null) return "null";
- var type = x.runtimeType.toString();
- // TODO(nweiz): if the object's type is private, find a public superclass to
- // display once there's a portable API to do that.
- return type.startsWith("_") ? "?" : type;
- } catch (e) {
- return "?";
- }
-}
-
-/// Returns [source] with any control characters replaced by their escape
-/// sequences.
-///
-/// This doesn't add quotes to the string, but it does escape single quote
-/// characters so that single quotes can be applied externally.
-String escapeString(String source) =>
- source.split("").map(_escapeChar).join("");
-
-/// Return the escaped form of a character [ch].
-String _escapeChar(String ch) {
- if (ch == "'")
- return "\\'";
- else if (ch == '\n')
- return '\\n';
- else if (ch == '\r')
- return '\\r';
- else if (ch == '\t')
- return '\\t';
- else
- return ch;
-}
+import 'package:stack_trace/stack_trace.dart';
/// Indent each line in [str] by two spaces.
String indent(String str) =>
@@ -63,3 +27,25 @@ class Pair<E, F> {
int get hashCode => first.hashCode ^ last.hashCode;
}
+/// Returns a Trace object from a StackTrace object or a String, or the
+/// unchanged input if formatStacks is false;
+Trace getTrace(stack, bool formatStacks, bool filterStacks) {
+ Trace trace;
+ if (stack == null || !formatStacks) return null;
+ if (stack is String) {
+ trace = new Trace.parse(stack);
+ } else if (stack is StackTrace) {
+ trace = new Trace.from(stack);
+ } else {
+ throw new Exception('Invalid stack type ${stack.runtimeType} for $stack.');
+ }
+
+ if (!filterStacks) return trace;
+
+ // Format the stack trace by removing everything above TestCase._runTest,
+ // which is usually going to be irrelevant. Also fold together unittest and
+ // core library calls so only the function the user called is visible.
+ return new Trace(trace.frames.takeWhile((frame) {
+ return frame.package != 'unittest' || frame.member != 'TestCase._runTest';
+ })).terse.foldFrames((frame) => frame.package == 'unittest' || frame.isCore);
+}
« no previous file with comments | « pkg/unittest/lib/src/test_case.dart ('k') | pkg/unittest/lib/unittest.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698