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

Unified Diff: third_party/pkg/angular/lib/mock/exception_handler.dart

Issue 124053002: Adding Angular and dependent packages for testing (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Created 6 years, 12 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
Index: third_party/pkg/angular/lib/mock/exception_handler.dart
diff --git a/third_party/pkg/angular/lib/mock/exception_handler.dart b/third_party/pkg/angular/lib/mock/exception_handler.dart
new file mode 100644
index 0000000000000000000000000000000000000000..7bcd17b89232f682f67174d44d38295e24a477e8
--- /dev/null
+++ b/third_party/pkg/angular/lib/mock/exception_handler.dart
@@ -0,0 +1,43 @@
+part of angular.mock;
+
+/**
+ * Mock implementation of [ExceptionHandler] that rethrows exceptions.
+ */
+class RethrowExceptionHandler extends ExceptionHandler {
+ call(error, stack, [reason]){
+ throw "$error $reason \nORIGINAL STACKTRACE:\n $stack";
+ }
+}
+
+class ExceptionWithStack {
+ final dynamic error;
+ final dynamic stack;
+ ExceptionWithStack(this.error, this.stack);
+ toString() => "$error\n$stack";
+}
+
+/**
+ * Mock implementation of [ExceptionHandler] that logs all exceptions for
+ * later processing.
+ */
+class LoggingExceptionHandler implements ExceptionHandler {
+ /**
+ * All exceptions are stored here for later examining.
+ */
+ final List<ExceptionWithStack> errors = [];
+
+ call(error, stack, [reason]) {
+ errors.add(new ExceptionWithStack(error, stack));
+ }
+
+ /**
+ * This method throws an exception if the errors is not empty.
+ * It is recommended that this method is called on test tear-down
+ * to verify that all exceptions have been processed.
+ */
+ assertEmpty() {
+ if (errors.length > 0) {
+ throw new ArgumentError('Exception Logger not empty:\n$errors');
+ }
+ }
+}

Powered by Google App Engine
This is Rietveld 408576698