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

Unified Diff: observatory_pub_packages/code_transformers/tests.dart

Issue 816693004: Add observatory_pub_packages snapshot to third_party (Closed) Base URL: http://dart.googlecode.com/svn/third_party/
Patch Set: Created 6 years 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: observatory_pub_packages/code_transformers/tests.dart
===================================================================
--- observatory_pub_packages/code_transformers/tests.dart (revision 0)
+++ observatory_pub_packages/code_transformers/tests.dart (working copy)
@@ -0,0 +1,59 @@
+// Copyright (c) 2014, the Dart project authors. Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+
+/// Collection of utilities which are useful for creating unit tests for
+/// Barback transformers.
+library code_transformers.tests;
+
+import 'dart:async' show Future;
+import 'dart:io' show Platform;
+
+import 'package:barback/barback.dart' show Transformer;
+import 'package:path/path.dart' as path;
+import 'package:unittest/unittest.dart';
+
+import 'src/test_harness.dart';
+import 'src/dart_sdk.dart';
+
+/// Defines a test which invokes [applyTransformers].
+testPhases(String testName, List<List<Transformer>> phases,
+ Map<String, String> inputs, Map<String, String> results,
+ [List<String> messages]) {
+ test(testName,
+ () => applyTransformers(phases, inputs: inputs, results: results,
+ messages: messages));
+}
+
+/// Updates the provided transformers with [inputs] as asset inputs then
+/// validates that [results] were generated.
+///
+/// The keys for inputs and results are 'package_name|lib/file.dart'.
+/// Only files which are specified in results are validated.
+///
+/// If [messages] is non-null then this will validate that only the specified
+/// messages were generated, ignoring info messages.
+Future applyTransformers(List<List<Transformer>> phases,
+ {Map<String, String> inputs: const {},
+ Map<String, String> results: const {},
+ List<String> messages: const []}) {
+
+ var helper = new TestHelper(phases, inputs, messages)..run();
+ return helper.checkAll(results).then((_) => helper.tearDown());
+}
+
+/// Variant of [dartSdkDirectory] which includes additional cases only
+/// typically encountered in Dart's testing environment.
+String get testingDartSdkDirectory {
+ var sdkDir = dartSdkDirectory;
+ if (sdkDir == null) {
+ // If we cannot find the SDK dir, then assume this is being run from Dart's
+ // source directory and this script is the main script.
+ var segments = path.split(path.fromUri(Platform.script));
+ var index = segments.indexOf('pkg');
+ expect(index, greaterThan(0),
+ reason: 'testingDartSdkDirectory is only supported in pkg/ tests');
+ sdkDir = path.joinAll(segments.sublist(0, index)..add('sdk'));
+ }
+ return sdkDir;
+}
« no previous file with comments | « observatory_pub_packages/code_transformers/src/test_harness.dart ('k') | observatory_pub_packages/collection/algorithms.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698