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

Side by Side Diff: utils/tests/pub/install/pub_install_test.dart

Issue 12794007: Use scheduled_test for Pub tests. (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Code review changes. Created 7 years, 9 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 | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file 1 // Copyright (c) 2012, the Dart project authors. Please see the AUTHORS d.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 d.file.
4 4
5 library pub_tests; 5 library pub_tests;
6 6
7 import 'dart:io'; 7 import 'dart:io';
8 8
9 import '../../../../pkg/unittest/lib/unittest.dart'; 9 import '../../../../pkg/scheduled_test/lib/scheduled_test.dart';
10
11 import '../descriptor.dart' as d;
10 import '../test_pub.dart'; 12 import '../test_pub.dart';
11 13
12 main() { 14 main() {
13 initConfig(); 15 initConfig();
14 16
15 group('requires', () { 17 group('requires', () {
16 integration('a pubspec', () { 18 integration('a pubspec', () {
17 dir(appPath, []).scheduleCreate(); 19 d.dir(appPath, []).create();
18 20
19 schedulePub(args: ['install'], 21 schedulePub(args: ['install'],
20 error: new RegExp(r'^Could not find a file named "pubspec\.yaml"'), 22 error: new RegExp(r'^Could not find a file named "pubspec\.yaml"'),
21 exitCode: 1); 23 exitCode: 1);
22 }); 24 });
23 25
24 integration('a pubspec with a "name" key', () { 26 integration('a pubspec with a "name" key', () {
25 dir(appPath, [ 27 d.dir(appPath, [
26 pubspec({"dependencies": {"foo": null}}) 28 d.pubspec({"dependencies": {"foo": null}})
27 ]).scheduleCreate(); 29 ]).create();
28 30
29 schedulePub(args: ['install'], 31 schedulePub(args: ['install'],
30 error: new RegExp(r'^pubspec.yaml is missing the required "name" ' 32 error: new RegExp(r'^pubspec.yaml is missing the required "name" '
31 r'field \(e\.g\. "name: myapp"\)\.'), 33 r'field \(e\.g\. "name: myapp"\)\.'),
32 exitCode: 1); 34 exitCode: 1);
33 }); 35 });
34 }); 36 });
35 37
36 integration('adds itself to the packages', () { 38 integration('adds itself to the packages', () {
37 // The symlink should use the name in the pubspec, not the name of the 39 // The symlink should use the name in the pubspec, not the name of the
38 // directory. 40 // directory.
39 dir(appPath, [ 41 d.dir(appPath, [
40 pubspec({"name": "myapp_name"}), 42 d.pubspec({"name": "myapp_name"}),
41 libDir('foo'), 43 d.libDir('foo'),
42 ]).scheduleCreate(); 44 ]).create();
43 45
44 schedulePub(args: ['install'], 46 schedulePub(args: ['install'],
45 output: new RegExp(r"Dependencies installed!$")); 47 output: new RegExp(r"Dependencies installed!$"));
46 48
47 dir(packagesPath, [ 49 d.dir(packagesPath, [
48 dir("myapp_name", [ 50 d.dir("myapp_name", [
49 file('foo.dart', 'main() => "foo";') 51 d.file('foo.dart', 'main() => "foo";')
50 ]) 52 ])
51 ]).scheduleValidate(); 53 ]).validate();
52 }); 54 });
53 55
54 integration('does not adds itself to the packages if it has no "lib" directory ', () { 56 integration('does not adds itself to the packages if it has no "lib" directory ', () {
55 // The symlink should use the name in the pubspec, not the name of the 57 // The symlink should use the name in the pubspec, not the name of the
56 // directory. 58 // directory.
57 dir(appPath, [ 59 d.dir(appPath, [
58 pubspec({"name": "myapp_name"}), 60 d.pubspec({"name": "myapp_name"}),
59 ]).scheduleCreate(); 61 ]).create();
60 62
61 schedulePub(args: ['install'], 63 schedulePub(args: ['install'],
62 output: new RegExp(r"Dependencies installed!$")); 64 output: new RegExp(r"Dependencies installed!$"));
63 65
64 dir(packagesPath, [ 66 d.dir(packagesPath, [
65 nothing("myapp_name") 67 d.nothing("myapp_name")
66 ]).scheduleValidate(); 68 ]).validate();
67 }); 69 });
68 70
69 integration('does not add a package if it does not have a "lib" directory', () { 71 integration('does not add a package if it does not have a "lib" directory', () {
70 // Using a path source, but this should be true of all sources. 72 // Using a path source, but this should be true of all sources.
71 dir('foo', [ 73 d.dir('foo', [
72 libPubspec('foo', '0.0.0-not.used') 74 d.libPubspec('foo', '0.0.0-not.used')
73 ]).scheduleCreate(); 75 ]).create();
74 76
75 dir(appPath, [ 77 d.dir(appPath, [
76 pubspec({"name": "myapp", "dependencies": {"foo": {"path": "../foo"}}}) 78 d.pubspec({"name": "myapp", "dependencies": {"foo": {"path": "../foo"}}})
77 ]).scheduleCreate(); 79 ]).create();
78 80
79 schedulePub(args: ['install'], 81 schedulePub(args: ['install'],
80 error: new RegExp(r'Warning: Package "foo" does not have a "lib" ' 82 error: new RegExp(r'Warning: Package "foo" does not have a "lib" '
81 'directory so you will not be able to import any libraries from ' 83 'directory so you will not be able to import any libraries from '
82 'it.'), 84 'it.'),
83 output: new RegExp(r"Dependencies installed!$")); 85 output: new RegExp(r"Dependencies installed!$"));
84 }); 86 });
85 87
86 integration('does not warn if the root package lacks a "lib" directory', () { 88 integration('does not warn if the root package lacks a "lib" directory', () {
87 dir(appPath, [ 89 d.dir(appPath, [
88 appPubspec([]) 90 d.appPubspec([])
89 ]).scheduleCreate(); 91 ]).create();
90 92
91 schedulePub(args: ['install'], 93 schedulePub(args: ['install'],
92 error: '', 94 error: new RegExp(r'^\s*$'),
93 output: new RegExp(r"Dependencies installed!$")); 95 output: new RegExp(r"Dependencies installed!$"));
94 }); 96 });
95 97
96 integration('overwrites the existing packages directory', () { 98 integration('overwrites the existing packages directory', () {
97 dir(appPath, [ 99 d.dir(appPath, [
98 appPubspec([]), 100 d.appPubspec([]),
99 dir('packages', [ 101 d.dir('packages', [
100 dir('foo'), 102 d.dir('foo'),
101 dir('myapp'), 103 d.dir('myapp'),
102 ]), 104 ]),
103 libDir('myapp') 105 d.libDir('myapp')
104 ]).scheduleCreate(); 106 ]).create();
105 107
106 schedulePub(args: ['install'], 108 schedulePub(args: ['install'],
107 output: new RegExp(r"Dependencies installed!$")); 109 output: new RegExp(r"Dependencies installed!$"));
108 110
109 dir(packagesPath, [ 111 d.dir(packagesPath, [
110 nothing('foo'), 112 d.nothing('foo'),
111 dir('myapp', [file('myapp.dart', 'main() => "myapp";')]) 113 d.dir('myapp', [d.file('myapp.dart', 'main() => "myapp";')])
112 ]).scheduleValidate(); 114 ]).validate();
113 }); 115 });
114 116
115 group('creates a packages directory in', () { 117 group('creates a packages directory in', () {
116 integration('"test/" and its subdirectories', () { 118 integration('"test/" and its subdirectories', () {
117 dir(appPath, [ 119 d.dir(appPath, [
118 appPubspec([]), 120 d.appPubspec([]),
119 libDir('foo'), 121 d.libDir('foo'),
120 dir("test", [dir("subtest")]) 122 d.dir("test", [d.dir("subtest")])
121 ]).scheduleCreate(); 123 ]).create();
122 124
123 schedulePub(args: ['install'], 125 schedulePub(args: ['install'],
124 output: new RegExp(r"Dependencies installed!$")); 126 output: new RegExp(r"Dependencies installed!$"));
125 127
126 dir(appPath, [ 128 d.dir(appPath, [
127 dir("test", [ 129 d.dir("test", [
128 dir("packages", [ 130 d.dir("packages", [
129 dir("myapp", [ 131 d.dir("myapp", [
130 file('foo.dart', 'main() => "foo";') 132 d.file('foo.dart', 'main() => "foo";')
131 ]) 133 ])
132 ]), 134 ]),
133 dir("subtest", [ 135 d.dir("subtest", [
134 dir("packages", [ 136 d.dir("packages", [
135 dir("myapp", [ 137 d.dir("myapp", [
136 file('foo.dart', 'main() => "foo";') 138 d.file('foo.dart', 'main() => "foo";')
137 ]) 139 ])
138 ]) 140 ])
139 ]) 141 ])
140 ]) 142 ])
141 ]).scheduleValidate(); 143 ]).validate();
142 }); 144 });
143 145
144 integration('"example/" and its subdirectories', () { 146 integration('"example/" and its subdirectories', () {
145 dir(appPath, [ 147 d.dir(appPath, [
146 appPubspec([]), 148 d.appPubspec([]),
147 libDir('foo'), 149 d.libDir('foo'),
148 dir("example", [dir("subexample")]) 150 d.dir("example", [d.dir("subexample")])
149 ]).scheduleCreate(); 151 ]).create();
150 152
151 schedulePub(args: ['install'], 153 schedulePub(args: ['install'],
152 output: new RegExp(r"Dependencies installed!$")); 154 output: new RegExp(r"Dependencies installed!$"));
153 155
154 dir(appPath, [ 156 d.dir(appPath, [
155 dir("example", [ 157 d.dir("example", [
156 dir("packages", [ 158 d.dir("packages", [
157 dir("myapp", [ 159 d.dir("myapp", [
158 file('foo.dart', 'main() => "foo";') 160 d.file('foo.dart', 'main() => "foo";')
159 ]) 161 ])
160 ]), 162 ]),
161 dir("subexample", [ 163 d.dir("subexample", [
162 dir("packages", [ 164 d.dir("packages", [
163 dir("myapp", [ 165 d.dir("myapp", [
164 file('foo.dart', 'main() => "foo";') 166 d.file('foo.dart', 'main() => "foo";')
165 ]) 167 ])
166 ]) 168 ])
167 ]) 169 ])
168 ]) 170 ])
169 ]).scheduleValidate(); 171 ]).validate();
170 }); 172 });
171 173
172 integration('"tool/" and its subdirectories', () { 174 integration('"tool/" and its subdirectories', () {
173 dir(appPath, [ 175 d.dir(appPath, [
174 appPubspec([]), 176 d.appPubspec([]),
175 libDir('foo'), 177 d.libDir('foo'),
176 dir("tool", [dir("subtool")]) 178 d.dir("tool", [d.dir("subtool")])
177 ]).scheduleCreate(); 179 ]).create();
178 180
179 schedulePub(args: ['install'], 181 schedulePub(args: ['install'],
180 output: new RegExp(r"Dependencies installed!$")); 182 output: new RegExp(r"Dependencies installed!$"));
181 183
182 dir(appPath, [ 184 d.dir(appPath, [
183 dir("tool", [ 185 d.dir("tool", [
184 dir("packages", [ 186 d.dir("packages", [
185 dir("myapp", [ 187 d.dir("myapp", [
186 file('foo.dart', 'main() => "foo";') 188 d.file('foo.dart', 'main() => "foo";')
187 ]) 189 ])
188 ]), 190 ]),
189 dir("subtool", [ 191 d.dir("subtool", [
190 dir("packages", [ 192 d.dir("packages", [
191 dir("myapp", [ 193 d.dir("myapp", [
192 file('foo.dart', 'main() => "foo";') 194 d.file('foo.dart', 'main() => "foo";')
193 ]) 195 ])
194 ]) 196 ])
195 ]) 197 ])
196 ]) 198 ])
197 ]).scheduleValidate(); 199 ]).validate();
198 }); 200 });
199 201
200 integration('"web/" and its subdirectories', () { 202 integration('"web/" and its subdirectories', () {
201 dir(appPath, [ 203 d.dir(appPath, [
202 appPubspec([]), 204 d.appPubspec([]),
203 libDir('foo'), 205 d.libDir('foo'),
204 dir("web", [dir("subweb")]) 206 d.dir("web", [d.dir("subweb")])
205 ]).scheduleCreate(); 207 ]).create();
206 208
207 schedulePub(args: ['install'], 209 schedulePub(args: ['install'],
208 output: new RegExp(r"Dependencies installed!$")); 210 output: new RegExp(r"Dependencies installed!$"));
209 211
210 dir(appPath, [ 212 d.dir(appPath, [
211 dir("web", [ 213 d.dir("web", [
212 dir("packages", [ 214 d.dir("packages", [
213 dir("myapp", [ 215 d.dir("myapp", [
214 file('foo.dart', 'main() => "foo";') 216 d.file('foo.dart', 'main() => "foo";')
215 ]) 217 ])
216 ]), 218 ]),
217 dir("subweb", [ 219 d.dir("subweb", [
218 dir("packages", [ 220 d.dir("packages", [
219 dir("myapp", [ 221 d.dir("myapp", [
220 file('foo.dart', 'main() => "foo";') 222 d.file('foo.dart', 'main() => "foo";')
221 ]) 223 ])
222 ]) 224 ])
223 ]) 225 ])
224 ]) 226 ])
225 ]).scheduleValidate(); 227 ]).validate();
226 }); 228 });
227 229
228 integration('"bin/"', () { 230 integration('"bin/"', () {
229 dir(appPath, [ 231 d.dir(appPath, [
230 appPubspec([]), 232 d.appPubspec([]),
231 libDir('foo'), 233 d.libDir('foo'),
232 dir("bin") 234 d.dir("bin")
233 ]).scheduleCreate(); 235 ]).create();
234 236
235 schedulePub(args: ['install'], 237 schedulePub(args: ['install'],
236 output: new RegExp(r"Dependencies installed!$")); 238 output: new RegExp(r"Dependencies installed!$"));
237 239
238 dir(appPath, [ 240 d.dir(appPath, [
239 dir("bin", [ 241 d.dir("bin", [
240 dir("packages", [ 242 d.dir("packages", [
241 dir("myapp", [ 243 d.dir("myapp", [
242 file('foo.dart', 'main() => "foo";') 244 d.file('foo.dart', 'main() => "foo";')
243 ]) 245 ])
244 ]) 246 ])
245 ]) 247 ])
246 ]).scheduleValidate(); 248 ]).validate();
247 }); 249 });
248 }); 250 });
249 } 251 }
OLDNEW
« no previous file with comments | « utils/tests/pub/install/path/shared_dependency_test.dart ('k') | utils/tests/pub/install/relative_symlink_test.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698