@@ -17,6 +17,35 @@ import 'package:test/test.dart';
17
17
18
18
import 'src/utils.dart' ;
19
19
20
+ final Directory _testPackageDir = Directory ('testing/test_package' );
21
+
22
+ final _testPackageBadDir = Directory ('testing/test_package_bad' );
23
+ final _testPackageMinimumDir = Directory ('testing/test_package_minimum' );
24
+ final _testSkyEnginePackage = Directory ('testing/sky_engine' );
25
+ final _testPackageWithNoReadme = Directory ('testing/test_package_small' );
26
+ final _testPackageIncludeExclude =
27
+ Directory ('testing/test_package_include_exclude' );
28
+ final _testPackageImportExportError =
29
+ Directory ('testing/test_package_import_export_error' );
30
+ final _testPackageOptions = Directory ('testing/test_package_options' );
31
+ final _testPackageOptionsImporter =
32
+ Directory ('testing/test_package_options_importer' );
33
+ final _testPackageCustomTemplates =
34
+ Directory ('testing/test_package_custom_templates' );
35
+
36
+ /// Convenience factory to build a [DartdocGeneratorOptionContext] and associate
37
+ /// it with a [DartdocOptionSet] based on the current working directory and/or
38
+ /// the '--input' flag.
39
+ Future <DartdocGeneratorOptionContext > _generatorContextFromArgv (
40
+ List <String > argv) async {
41
+ var optionSet = await DartdocOptionSet .fromOptionGenerators ('dartdoc' , [
42
+ () => createDartdocOptions (pubPackageMetaProvider),
43
+ createGeneratorOptions,
44
+ ]);
45
+ optionSet.parseArguments (argv);
46
+ return DartdocGeneratorOptionContext (optionSet, null );
47
+ }
48
+
20
49
class DartdocLoggingOptionContext extends DartdocGeneratorOptionContext
21
50
with LoggingContext {
22
51
DartdocLoggingOptionContext (DartdocOptionSet optionSet, Directory dir)
@@ -28,7 +57,6 @@ void main() {
28
57
Directory tempDir;
29
58
30
59
setUpAll (() async {
31
- tempDir = Directory .systemTemp.createTempSync ('dartdoc.test.' );
32
60
var optionSet = await DartdocOptionSet .fromOptionGenerators (
33
61
'dartdoc' , [createLoggingOptions]);
34
62
optionSet.parseArguments ([]);
@@ -45,7 +73,7 @@ void main() {
45
73
46
74
Future <Dartdoc > buildDartdoc (
47
75
List <String > argv, Directory packageRoot, Directory tempDir) async {
48
- var context = await generatorContextFromArgv (argv
76
+ var context = await _generatorContextFromArgv (argv
49
77
..addAll (['--input' , packageRoot.path, '--output' , tempDir.path]));
50
78
return await Dartdoc .fromContext (
51
79
context,
@@ -61,15 +89,11 @@ void main() {
61
89
62
90
setUpAll (() async {
63
91
tempDir = Directory .systemTemp.createTempSync ('dartdoc.test.' );
64
- dartdoc = await buildDartdoc ([], testPackageOptions , tempDir);
92
+ dartdoc = await buildDartdoc ([], _testPackageOptions , tempDir);
65
93
results = await dartdoc.generateDocsBase ();
66
94
p = results.packageGraph;
67
95
});
68
96
69
- tearDownAll (() async {
70
- tempDir.deleteSync (recursive: true );
71
- });
72
-
73
97
test ('generator parameters' , () async {
74
98
var favicon =
75
99
File (path.joinAll ([tempDir.path, 'static-assets' , 'favicon.png' ]));
@@ -126,16 +150,12 @@ void main() {
126
150
setUpAll (() async {
127
151
tempDir = Directory .systemTemp.createTempSync ('dartdoc.test.' );
128
152
results = await (await buildDartdoc (
129
- ['--link-to-remote' ], testPackageOptionsImporter , tempDir))
153
+ ['--link-to-remote' ], _testPackageOptionsImporter , tempDir))
130
154
.generateDocsBase ();
131
155
testPackageOptions = results.packageGraph.packages
132
156
.firstWhere ((Package p) => p.name == 'test_package_options' );
133
157
});
134
158
135
- tearDownAll (() async {
136
- tempDir.deleteSync (recursive: true );
137
- });
138
-
139
159
test ('linkToUrl' , () async {
140
160
var main = testPackageOptions.allLibraries
141
161
.firstWhere ((Library l) => l.name == 'main' );
@@ -161,7 +181,7 @@ void main() {
161
181
162
182
test ('with broken reexport chain' , () async {
163
183
var dartdoc =
164
- await buildDartdoc ([], testPackageImportExportError , tempDir);
184
+ await buildDartdoc ([], _testPackageImportExportError , tempDir);
165
185
var results = await dartdoc.generateDocsBase ();
166
186
var p = results.packageGraph;
167
187
var unresolvedExportWarnings = p
@@ -179,7 +199,7 @@ void main() {
179
199
group ('include/exclude parameters' , () {
180
200
test ('with config file' , () async {
181
201
var dartdoc =
182
- await buildDartdoc ([], testPackageIncludeExclude , tempDir);
202
+ await buildDartdoc ([], _testPackageIncludeExclude , tempDir);
183
203
var results = await dartdoc.generateDocs ();
184
204
var p = results.packageGraph;
185
205
expect (p.localPublicLibraries.map ((l) => l.name),
@@ -188,16 +208,16 @@ void main() {
188
208
189
209
test ('with include command line argument' , () async {
190
210
var dartdoc = await buildDartdoc (['--include' , 'another_included' ],
191
- testPackageIncludeExclude , tempDir);
211
+ _testPackageIncludeExclude , tempDir);
192
212
var results = await dartdoc.generateDocs ();
193
213
var p = results.packageGraph;
194
214
expect (p.localPublicLibraries.length, equals (1 ));
195
215
expect (p.localPublicLibraries.first.name, equals ('another_included' ));
196
216
});
197
217
198
218
test ('with exclude command line argument' , () async {
199
- var dartdoc = await buildDartdoc (
200
- [ '--exclude' , 'more_included' ], testPackageIncludeExclude , tempDir);
219
+ var dartdoc = await buildDartdoc ([ '--exclude' , 'more_included' ],
220
+ _testPackageIncludeExclude , tempDir);
201
221
var results = await dartdoc.generateDocs ();
202
222
var p = results.packageGraph;
203
223
expect (p.localPublicLibraries.length, equals (1 ));
@@ -207,14 +227,14 @@ void main() {
207
227
});
208
228
209
229
test ('package without version produces valid semver in docs' , () async {
210
- var dartdoc = await buildDartdoc ([], testPackageMinimumDir , tempDir);
230
+ var dartdoc = await buildDartdoc ([], _testPackageMinimumDir , tempDir);
211
231
var results = await dartdoc.generateDocs ();
212
232
var p = results.packageGraph;
213
233
expect (p.defaultPackage.version, equals ('0.0.0-unknown' ));
214
234
});
215
235
216
236
test ('basic interlinking test' , () async {
217
- var dartdoc = await buildDartdoc ([], testPackageDir , tempDir);
237
+ var dartdoc = await buildDartdoc ([], _testPackageDir , tempDir);
218
238
var results = await dartdoc.generateDocs ();
219
239
var p = results.packageGraph;
220
240
var meta = p.publicPackages.firstWhere ((p) => p.name == 'meta' );
@@ -243,15 +263,11 @@ void main() {
243
263
244
264
setUpAll (() async {
245
265
tempDir = Directory .systemTemp.createTempSync ('dartdoc.test.' );
246
- dartdoc = await buildDartdoc ([], testPackageDir , tempDir);
266
+ dartdoc = await buildDartdoc ([], _testPackageDir , tempDir);
247
267
results = await dartdoc.generateDocs ();
248
268
});
249
269
250
- tearDownAll (() async {
251
- tempDir.deleteSync (recursive: true );
252
- });
253
-
254
- test ('generate docs for ${path .basename (testPackageDir .path )} works' ,
270
+ test ('generate docs for ${path .basename (_testPackageDir .path )} works' ,
255
271
() async {
256
272
expect (results.packageGraph, isNotNull);
257
273
var packageGraph = results.packageGraph;
@@ -278,9 +294,9 @@ void main() {
278
294
});
279
295
});
280
296
281
- test ('generate docs for ${path .basename (testPackageBadDir .path )} fails' ,
297
+ test ('generate docs for ${path .basename (_testPackageBadDir .path )} fails' ,
282
298
() async {
283
- var dartdoc = await buildDartdoc ([], testPackageBadDir , tempDir);
299
+ var dartdoc = await buildDartdoc ([], _testPackageBadDir , tempDir);
284
300
285
301
try {
286
302
await dartdoc.generateDocs ();
@@ -293,7 +309,7 @@ void main() {
293
309
'from analysis_options' );
294
310
295
311
test ('generate docs for a package that does not have a readme' , () async {
296
- var dartdoc = await buildDartdoc ([], testPackageWithNoReadme , tempDir);
312
+ var dartdoc = await buildDartdoc ([], _testPackageWithNoReadme , tempDir);
297
313
298
314
var results = await dartdoc.generateDocs ();
299
315
expect (results.packageGraph, isNotNull);
@@ -307,7 +323,7 @@ void main() {
307
323
308
324
test ('generate docs including a single library' , () async {
309
325
var dartdoc =
310
- await buildDartdoc (['--include' , 'fake' ], testPackageDir , tempDir);
326
+ await buildDartdoc (['--include' , 'fake' ], _testPackageDir , tempDir);
311
327
312
328
var results = await dartdoc.generateDocs ();
313
329
expect (results.packageGraph, isNotNull);
@@ -321,7 +337,7 @@ void main() {
321
337
322
338
test ('generate docs excluding a single library' , () async {
323
339
var dartdoc =
324
- await buildDartdoc (['--exclude' , 'fake' ], testPackageDir , tempDir);
340
+ await buildDartdoc (['--exclude' , 'fake' ], _testPackageDir , tempDir);
325
341
326
342
var results = await dartdoc.generateDocs ();
327
343
expect (results.packageGraph, isNotNull);
@@ -338,7 +354,7 @@ void main() {
338
354
});
339
355
340
356
test ('generate docs for package with embedder yaml' , () async {
341
- var dartdoc = await buildDartdoc ([], testSkyEnginePackage , tempDir);
357
+ var dartdoc = await buildDartdoc ([], _testSkyEnginePackage , tempDir);
342
358
343
359
var results = await dartdoc.generateDocs ();
344
360
expect (results.packageGraph, isNotNull);
@@ -370,9 +386,9 @@ void main() {
370
386
371
387
test ('generate docs with custom templates' , () async {
372
388
var templatesDir =
373
- path.join (testPackageCustomTemplates .path, 'templates' );
389
+ path.join (_testPackageCustomTemplates .path, 'templates' );
374
390
var dartdoc = await buildDartdoc (['--templates-dir' , templatesDir],
375
- testPackageCustomTemplates , tempDir);
391
+ _testPackageCustomTemplates , tempDir);
376
392
377
393
var results = await dartdoc.generateDocs ();
378
394
expect (results.packageGraph, isNotNull);
@@ -390,7 +406,7 @@ void main() {
390
406
var templatesDir = path.join (path.current, 'test/templates' );
391
407
try {
392
408
await buildDartdoc (['--templates-dir' , templatesDir],
393
- testPackageCustomTemplates , tempDir);
409
+ _testPackageCustomTemplates , tempDir);
394
410
fail ('dartdoc should fail with missing required template' );
395
411
} catch (e) {
396
412
expect (e is DartdocFailure , isTrue);
@@ -403,7 +419,7 @@ void main() {
403
419
var badPath = path.join (tempDir.path, 'BAD' );
404
420
try {
405
421
await buildDartdoc (
406
- ['--templates-dir' , badPath], testPackageCustomTemplates , tempDir);
422
+ ['--templates-dir' , badPath], _testPackageCustomTemplates , tempDir);
407
423
fail ('dartdoc should fail with bad templatesDir path' );
408
424
} catch (e) {
409
425
expect (e is DartdocFailure , isTrue);
@@ -412,15 +428,15 @@ void main() {
412
428
413
429
test ('generating markdown docs does not crash' , () async {
414
430
var dartdoc =
415
- await buildDartdoc (['--format' , 'md' ], testPackageDir , tempDir);
431
+ await buildDartdoc (['--format' , 'md' ], _testPackageDir , tempDir);
416
432
await dartdoc.generateDocsBase ();
417
433
});
418
434
419
435
test ('rel canonical prefix does not include base href' , () async {
420
436
// ignore: omit_local_variable_types
421
437
final String prefix = 'foo.bar/baz' ;
422
438
var dartdoc = await buildDartdoc (
423
- ['--rel-canonical-prefix' , prefix], testPackageDir , tempDir);
439
+ ['--rel-canonical-prefix' , prefix], _testPackageDir , tempDir);
424
440
await dartdoc.generateDocsBase ();
425
441
426
442
// Verify files at different levels have correct <link> content.
@@ -438,7 +454,7 @@ void main() {
438
454
439
455
test ('generate docs with bad output format' , () async {
440
456
try {
441
- await buildDartdoc (['--format' , 'bad' ], testPackageDir , tempDir);
457
+ await buildDartdoc (['--format' , 'bad' ], _testPackageDir , tempDir);
442
458
fail ('dartdoc should fail with bad output format' );
443
459
} catch (e) {
444
460
expect (e is DartdocFailure , isTrue);
0 commit comments