| OLD | NEW |
| 1 // Copyright (c) 2015, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2015, the Dart project authors. Please see the AUTHORS file |
| 2 // for details. All rights reserved. Use of this source code is governed by a | 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. | 3 // BSD-style license that can be found in the LICENSE file. |
| 4 | 4 |
| 5 @TestOn("vm") | 5 @TestOn("vm") |
| 6 | 6 |
| 7 import 'dart:io'; | 7 import 'dart:io'; |
| 8 | 8 |
| 9 import 'package:path/path.dart' as p; | 9 import 'package:path/path.dart' as p; |
| 10 import 'package:test/src/backend/state.dart'; | 10 import 'package:test/src/backend/state.dart'; |
| (...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 42 new Directory(_sandbox).deleteSync(recursive: true); | 42 new Directory(_sandbox).deleteSync(recursive: true); |
| 43 return _loader.close(); | 43 return _loader.close(); |
| 44 }); | 44 }); |
| 45 | 45 |
| 46 group(".loadFile()", () { | 46 group(".loadFile()", () { |
| 47 var suite; | 47 var suite; |
| 48 setUp(() { | 48 setUp(() { |
| 49 /// TODO(nweiz): Use scheduled_test for this once it's compatible with | 49 /// TODO(nweiz): Use scheduled_test for this once it's compatible with |
| 50 /// this version of test. | 50 /// this version of test. |
| 51 new File(p.join(_sandbox, 'a_test.dart')).writeAsStringSync(_tests); | 51 new File(p.join(_sandbox, 'a_test.dart')).writeAsStringSync(_tests); |
| 52 return _loader.loadFile(p.join(_sandbox, 'a_test.dart')).then((suites) { | 52 return _loader.loadFile(p.join(_sandbox, 'a_test.dart')).toList() |
| 53 .then((suites) { |
| 53 expect(suites, hasLength(1)); | 54 expect(suites, hasLength(1)); |
| 54 suite = suites.first; | 55 suite = suites.first; |
| 55 }); | 56 }); |
| 56 }); | 57 }); |
| 57 | 58 |
| 58 test("returns a suite with the file path and platform", () { | 59 test("returns a suite with the file path and platform", () { |
| 59 expect(suite.path, equals(p.join(_sandbox, 'a_test.dart'))); | 60 expect(suite.path, equals(p.join(_sandbox, 'a_test.dart'))); |
| 60 expect(suite.platform, equals('VM')); | 61 expect(suite.platform, equals('VM')); |
| 61 }); | 62 }); |
| 62 | 63 |
| (...skipping 18 matching lines...) Expand all Loading... |
| 81 | 82 |
| 82 test("can load and run a failing test", () { | 83 test("can load and run a failing test", () { |
| 83 var liveTest = suite.tests[1].load(suite); | 84 var liveTest = suite.tests[1].load(suite); |
| 84 expectSingleFailure(liveTest); | 85 expectSingleFailure(liveTest); |
| 85 return liveTest.run().whenComplete(() => liveTest.close()); | 86 return liveTest.run().whenComplete(() => liveTest.close()); |
| 86 }); | 87 }); |
| 87 | 88 |
| 88 test("throws a nice error if the package root doesn't exist", () { | 89 test("throws a nice error if the package root doesn't exist", () { |
| 89 var loader = new Loader([TestPlatform.vm]); | 90 var loader = new Loader([TestPlatform.vm]); |
| 90 expect( | 91 expect( |
| 91 loader.loadFile(p.join(_sandbox, 'a_test.dart')) | 92 loader.loadFile(p.join(_sandbox, 'a_test.dart')).first |
| 92 .whenComplete(loader.close), | 93 .whenComplete(loader.close), |
| 93 throwsA(isLoadException( | 94 throwsA(isLoadException( |
| 94 "Directory ${p.join(_sandbox, 'packages')} does not exist."))); | 95 "Directory ${p.join(_sandbox, 'packages')} does not exist."))); |
| 95 }); | 96 }); |
| 96 }); | 97 }); |
| 97 | 98 |
| 98 group(".loadDir()", () { | 99 group(".loadDir()", () { |
| 99 test("ignores non-Dart files", () { | 100 test("ignores non-Dart files", () { |
| 100 new File(p.join(_sandbox, 'a_test.txt')).writeAsStringSync(_tests); | 101 new File(p.join(_sandbox, 'a_test.txt')).writeAsStringSync(_tests); |
| 101 expect(_loader.loadDir(_sandbox), completion(isEmpty)); | 102 expect(_loader.loadDir(_sandbox).toList(), completion(isEmpty)); |
| 102 }); | 103 }); |
| 103 | 104 |
| 104 test("ignores files in packages/ directories", () { | 105 test("ignores files in packages/ directories", () { |
| 105 var dir = p.join(_sandbox, 'packages'); | 106 var dir = p.join(_sandbox, 'packages'); |
| 106 new Directory(dir).createSync(); | 107 new Directory(dir).createSync(); |
| 107 new File(p.join(dir, 'a_test.dart')).writeAsStringSync(_tests); | 108 new File(p.join(dir, 'a_test.dart')).writeAsStringSync(_tests); |
| 108 expect(_loader.loadDir(_sandbox), completion(isEmpty)); | 109 expect(_loader.loadDir(_sandbox).toList(), completion(isEmpty)); |
| 109 }); | 110 }); |
| 110 | 111 |
| 111 test("ignores files that don't end in _test.dart", () { | 112 test("ignores files that don't end in _test.dart", () { |
| 112 new File(p.join(_sandbox, 'test.dart')).writeAsStringSync(_tests); | 113 new File(p.join(_sandbox, 'test.dart')).writeAsStringSync(_tests); |
| 113 expect(_loader.loadDir(_sandbox), completion(isEmpty)); | 114 expect(_loader.loadDir(_sandbox).toList(), completion(isEmpty)); |
| 114 }); | 115 }); |
| 115 | 116 |
| 116 group("with suites loaded from a directory", () { | 117 group("with suites loaded from a directory", () { |
| 117 var suites; | 118 var suites; |
| 118 setUp(() { | 119 setUp(() { |
| 119 /// TODO(nweiz): Use scheduled_test for this once it's compatible with | 120 /// TODO(nweiz): Use scheduled_test for this once it's compatible with |
| 120 /// this version of test. | 121 /// this version of test. |
| 121 new File(p.join(_sandbox, 'a_test.dart')).writeAsStringSync(_tests); | 122 new File(p.join(_sandbox, 'a_test.dart')).writeAsStringSync(_tests); |
| 122 new File(p.join(_sandbox, 'another_test.dart')) | 123 new File(p.join(_sandbox, 'another_test.dart')) |
| 123 .writeAsStringSync(_tests); | 124 .writeAsStringSync(_tests); |
| 124 new Directory(p.join(_sandbox, 'dir')).createSync(); | 125 new Directory(p.join(_sandbox, 'dir')).createSync(); |
| 125 new File(p.join(_sandbox, 'dir/sub_test.dart')) | 126 new File(p.join(_sandbox, 'dir/sub_test.dart')) |
| 126 .writeAsStringSync(_tests); | 127 .writeAsStringSync(_tests); |
| 127 | 128 |
| 128 return _loader.loadDir(_sandbox).then((suites_) => suites = suites_); | 129 return _loader.loadDir(_sandbox).toList() |
| 130 .then((suites_) => suites = suites_); |
| 129 }); | 131 }); |
| 130 | 132 |
| 131 test("gives those suites the correct paths", () { | 133 test("gives those suites the correct paths", () { |
| 132 expect(suites.map((suite) => suite.path), unorderedEquals([ | 134 expect(suites.map((suite) => suite.path), unorderedEquals([ |
| 133 p.join(_sandbox, 'a_test.dart'), | 135 p.join(_sandbox, 'a_test.dart'), |
| 134 p.join(_sandbox, 'another_test.dart'), | 136 p.join(_sandbox, 'another_test.dart'), |
| 135 p.join(_sandbox, 'dir/sub_test.dart') | 137 p.join(_sandbox, 'dir/sub_test.dart') |
| 136 ])); | 138 ])); |
| 137 }); | 139 }); |
| 138 | 140 |
| 139 test("can run tests in those suites", () { | 141 test("can run tests in those suites", () { |
| 140 var suite = suites.firstWhere((suite) => suite.path.contains("a_test")); | 142 var suite = suites.firstWhere((suite) => suite.path.contains("a_test")); |
| 141 var liveTest = suite.tests[1].load(suite); | 143 var liveTest = suite.tests[1].load(suite); |
| 142 expectSingleFailure(liveTest); | 144 expectSingleFailure(liveTest); |
| 143 return liveTest.run().whenComplete(() => liveTest.close()); | 145 return liveTest.run().whenComplete(() => liveTest.close()); |
| 144 }); | 146 }); |
| 145 }); | 147 }); |
| 146 }); | 148 }); |
| 147 } | 149 } |
| OLD | NEW |