| OLD | NEW |
| (Empty) |
| 1 // Copyright (c) 2014, the Dart project authors. Please see the AUTHORS file | |
| 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. | |
| 4 | |
| 5 /// Collection of utilities which are useful for creating unit tests for | |
| 6 /// Barback transformers. | |
| 7 library code_transformers.tests; | |
| 8 | |
| 9 import 'dart:async' show Future; | |
| 10 import 'dart:io' show Platform; | |
| 11 | |
| 12 import 'package:barback/barback.dart' show Transformer; | |
| 13 import 'package:path/path.dart' as path; | |
| 14 import 'package:unittest/unittest.dart'; | |
| 15 | |
| 16 import 'src/test_harness.dart'; | |
| 17 import 'src/dart_sdk.dart'; | |
| 18 | |
| 19 /// Defines a test which invokes [applyTransformers]. | |
| 20 testPhases(String testName, List<List<Transformer>> phases, | |
| 21 Map<String, String> inputs, Map<String, String> results, | |
| 22 [List<String> messages]) { | |
| 23 test(testName, | |
| 24 () => applyTransformers(phases, inputs: inputs, results: results, | |
| 25 messages: messages)); | |
| 26 } | |
| 27 | |
| 28 /// Updates the provided transformers with [inputs] as asset inputs then | |
| 29 /// validates that [results] were generated. | |
| 30 /// | |
| 31 /// The keys for inputs and results are 'package_name|lib/file.dart'. | |
| 32 /// Only files which are specified in results are validated. | |
| 33 /// | |
| 34 /// If [messages] is non-null then this will validate that only the specified | |
| 35 /// messages were generated, ignoring info messages. | |
| 36 Future applyTransformers(List<List<Transformer>> phases, | |
| 37 {Map<String, String> inputs: const {}, | |
| 38 Map<String, String> results: const {}, | |
| 39 List<String> messages: const []}) { | |
| 40 | |
| 41 var helper = new TestHelper(phases, inputs, messages)..run(); | |
| 42 return helper.checkAll(results).then((_) => helper.tearDown()); | |
| 43 } | |
| 44 | |
| 45 /// Variant of [dartSdkDirectory] which includes additional cases only | |
| 46 /// typically encountered in Dart's testing environment. | |
| 47 String get testingDartSdkDirectory { | |
| 48 var sdkDir = dartSdkDirectory; | |
| 49 if (sdkDir == null) { | |
| 50 // If we cannot find the SDK dir, then assume this is being run from Dart's | |
| 51 // source directory and this script is the main script. | |
| 52 var segments = path.split(path.fromUri(Platform.script)); | |
| 53 var index = segments.indexOf('pkg'); | |
| 54 expect(index, greaterThan(0), | |
| 55 reason: 'testingDartSdkDirectory is only supported in pkg/ tests'); | |
| 56 sdkDir = path.joinAll(segments.sublist(0, index)..add('sdk')); | |
| 57 } | |
| 58 return sdkDir; | |
| 59 } | |
| OLD | NEW |