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

Side by Side Diff: test/runner/load_suite_test.dart

Issue 1258163002: Split out a RunnerSuite class. (Closed) Base URL: git@github.com:dart-lang/test@master
Patch Set: Code review changes Created 5 years, 4 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 unified diff | Download patch
« no previous file with comments | « test/runner/engine_test.dart ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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:async'; 7 import 'dart:async';
8 8
9 import 'package:test/src/backend/state.dart'; 9 import 'package:test/src/backend/state.dart';
10 import 'package:test/src/backend/suite.dart';
11 import 'package:test/src/backend/test_platform.dart'; 10 import 'package:test/src/backend/test_platform.dart';
12 import 'package:test/src/runner/load_exception.dart'; 11 import 'package:test/src/runner/load_exception.dart';
13 import 'package:test/src/runner/load_suite.dart'; 12 import 'package:test/src/runner/load_suite.dart';
13 import 'package:test/src/runner/runner_suite.dart';
14 import 'package:test/test.dart'; 14 import 'package:test/test.dart';
15 15
16 import '../utils.dart'; 16 import '../utils.dart';
17 17
18 void main() { 18 void main() {
19 test("running a load test causes LoadSuite.suite to emit a suite", () async { 19 test("running a load test causes LoadSuite.suite to emit a suite", () async {
20 var innerSuite = new Suite([]); 20 var innerSuite = new RunnerSuite([]);
21 var suite = new LoadSuite("name", () => new Future.value(innerSuite)); 21 var suite = new LoadSuite("name", () => new Future.value(innerSuite));
22 expect(suite.tests, hasLength(1)); 22 expect(suite.tests, hasLength(1));
23 23
24 expect(suite.suite, completion(equals(innerSuite))); 24 expect(suite.suite, completion(equals(innerSuite)));
25 var liveTest = await suite.tests.single.load(suite); 25 var liveTest = await suite.tests.single.load(suite);
26 await liveTest.run(); 26 await liveTest.run();
27 expectTestPassed(liveTest); 27 expectTestPassed(liveTest);
28 }); 28 });
29 29
30 test("running a load suite's body may be synchronous", () async { 30 test("running a load suite's body may be synchronous", () async {
31 var innerSuite = new Suite([]); 31 var innerSuite = new RunnerSuite([]);
32 var suite = new LoadSuite("name", () => innerSuite); 32 var suite = new LoadSuite("name", () => innerSuite);
33 expect(suite.tests, hasLength(1)); 33 expect(suite.tests, hasLength(1));
34 34
35 expect(suite.suite, completion(equals(innerSuite))); 35 expect(suite.suite, completion(equals(innerSuite)));
36 var liveTest = await suite.tests.single.load(suite); 36 var liveTest = await suite.tests.single.load(suite);
37 await liveTest.run(); 37 await liveTest.run();
38 expectTestPassed(liveTest); 38 expectTestPassed(liveTest);
39 }); 39 });
40 40
41 test("a load test doesn't complete until the body returns", () async { 41 test("a load test doesn't complete until the body returns", () async {
42 var completer = new Completer(); 42 var completer = new Completer();
43 var suite = new LoadSuite("name", () => completer.future); 43 var suite = new LoadSuite("name", () => completer.future);
44 expect(suite.tests, hasLength(1)); 44 expect(suite.tests, hasLength(1));
45 45
46 var liveTest = await suite.tests.single.load(suite); 46 var liveTest = await suite.tests.single.load(suite);
47 expect(liveTest.run(), completes); 47 expect(liveTest.run(), completes);
48 await new Future.delayed(Duration.ZERO); 48 await new Future.delayed(Duration.ZERO);
49 expect(liveTest.state.status, equals(Status.running)); 49 expect(liveTest.state.status, equals(Status.running));
50 50
51 completer.complete(new Suite([])); 51 completer.complete(new RunnerSuite([]));
52 await new Future.delayed(Duration.ZERO); 52 await new Future.delayed(Duration.ZERO);
53 expectTestPassed(liveTest); 53 expectTestPassed(liveTest);
54 }); 54 });
55 55
56 test("a load test forwards errors and completes LoadSuite.suite to null", 56 test("a load test forwards errors and completes LoadSuite.suite to null",
57 () async { 57 () async {
58 var suite = new LoadSuite("name", () => fail("error")); 58 var suite = new LoadSuite("name", () => fail("error"));
59 expect(suite.tests, hasLength(1)); 59 expect(suite.tests, hasLength(1));
60 60
61 expect(suite.suite, completion(isNull)); 61 expect(suite.suite, completion(isNull));
(...skipping 26 matching lines...) Expand all
88 var liveTest = await suite.tests.single.load(suite); 88 var liveTest = await suite.tests.single.load(suite);
89 await liveTest.run(); 89 await liveTest.run();
90 expect(liveTest.state.status, equals(Status.complete)); 90 expect(liveTest.state.status, equals(Status.complete));
91 expect(liveTest.state.result, equals(Result.error)); 91 expect(liveTest.state.result, equals(Result.error));
92 expect(liveTest.errors, hasLength(1)); 92 expect(liveTest.errors, hasLength(1));
93 expect(liveTest.errors.first.error, equals(exception)); 93 expect(liveTest.errors.first.error, equals(exception));
94 }); 94 });
95 95
96 test("forSuite() creates a load suite that completes to a test suite", 96 test("forSuite() creates a load suite that completes to a test suite",
97 () async { 97 () async {
98 var innerSuite = new Suite([]); 98 var innerSuite = new RunnerSuite([]);
99 var suite = new LoadSuite.forSuite(innerSuite); 99 var suite = new LoadSuite.forSuite(innerSuite);
100 expect(suite.tests, hasLength(1)); 100 expect(suite.tests, hasLength(1));
101 101
102 expect(suite.suite, completion(equals(innerSuite))); 102 expect(suite.suite, completion(equals(innerSuite)));
103 var liveTest = await suite.tests.single.load(suite); 103 var liveTest = await suite.tests.single.load(suite);
104 await liveTest.run(); 104 await liveTest.run();
105 expectTestPassed(liveTest); 105 expectTestPassed(liveTest);
106 }); 106 });
107 107
108 group("changeSuite()", () { 108 group("changeSuite()", () {
109 test("returns a new load suite with the same properties", () { 109 test("returns a new load suite with the same properties", () {
110 var innerSuite = new Suite([]); 110 var innerSuite = new RunnerSuite([]);
111 var suite = new LoadSuite("name", () => innerSuite, 111 var suite = new LoadSuite("name", () => innerSuite,
112 platform: TestPlatform.vm); 112 platform: TestPlatform.vm);
113 expect(suite.tests, hasLength(1)); 113 expect(suite.tests, hasLength(1));
114 114
115 var newSuite = suite.changeSuite((suite) => suite); 115 var newSuite = suite.changeSuite((suite) => suite);
116 expect(newSuite.platform, equals(TestPlatform.vm)); 116 expect(newSuite.platform, equals(TestPlatform.vm));
117 expect(newSuite.tests, equals(suite.tests)); 117 expect(newSuite.tests, equals(suite.tests));
118 }); 118 });
119 119
120 test("changes the inner suite", () async { 120 test("changes the inner suite", () async {
121 var innerSuite = new Suite([]); 121 var innerSuite = new RunnerSuite([]);
122 var suite = new LoadSuite("name", () => innerSuite); 122 var suite = new LoadSuite("name", () => innerSuite);
123 expect(suite.tests, hasLength(1)); 123 expect(suite.tests, hasLength(1));
124 124
125 var newInnerSuite = new Suite([]); 125 var newInnerSuite = new RunnerSuite([]);
126 var newSuite = suite.changeSuite((suite) => newInnerSuite); 126 var newSuite = suite.changeSuite((suite) => newInnerSuite);
127 expect(newSuite.suite, completion(equals(newInnerSuite))); 127 expect(newSuite.suite, completion(equals(newInnerSuite)));
128 128
129 var liveTest = await suite.tests.single.load(suite); 129 var liveTest = await suite.tests.single.load(suite);
130 await liveTest.run(); 130 await liveTest.run();
131 expectTestPassed(liveTest); 131 expectTestPassed(liveTest);
132 }); 132 });
133 133
134 test("doesn't run change() if the suite is null", () async { 134 test("doesn't run change() if the suite is null", () async {
135 var suite = new LoadSuite("name", () => null); 135 var suite = new LoadSuite("name", () => null);
136 expect(suite.tests, hasLength(1)); 136 expect(suite.tests, hasLength(1));
137 137
138 var newSuite = suite.changeSuite(expectAsync((_) {}, count: 0)); 138 var newSuite = suite.changeSuite(expectAsync((_) {}, count: 0));
139 expect(newSuite.suite, completion(isNull)); 139 expect(newSuite.suite, completion(isNull));
140 140
141 var liveTest = await suite.tests.single.load(suite); 141 var liveTest = await suite.tests.single.load(suite);
142 await liveTest.run(); 142 await liveTest.run();
143 expectTestPassed(liveTest); 143 expectTestPassed(liveTest);
144 }); 144 });
145 }); 145 });
146 146
147 group("getSuite()", () { 147 group("getSuite()", () {
148 test("runs the test and returns the suite", () { 148 test("runs the test and returns the suite", () {
149 var innerSuite = new Suite([]); 149 var innerSuite = new RunnerSuite([]);
150 var suite = new LoadSuite.forSuite(innerSuite); 150 var suite = new LoadSuite.forSuite(innerSuite);
151 expect(suite.tests, hasLength(1)); 151 expect(suite.tests, hasLength(1));
152 152
153 expect(suite.getSuite(), completion(equals(innerSuite))); 153 expect(suite.getSuite(), completion(equals(innerSuite)));
154 }); 154 });
155 155
156 test("forwards errors to the future", () { 156 test("forwards errors to the future", () {
157 var suite = new LoadSuite("name", () => throw "error"); 157 var suite = new LoadSuite("name", () => throw "error");
158 expect(suite.tests, hasLength(1)); 158 expect(suite.tests, hasLength(1));
159 159
160 expect(suite.getSuite(), throwsA("error")); 160 expect(suite.getSuite(), throwsA("error"));
161 }); 161 });
162 }); 162 });
163 } 163 }
OLDNEW
« no previous file with comments | « test/runner/engine_test.dart ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698