Skip to content

Commit 2d4ef13

Browse files
authored
Migrate more tests; correct other migration bits (#2880)
1 parent 4beb15e commit 2d4ef13

13 files changed

+94
-121
lines changed

lib/options.dart

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@ class DartdocGeneratorOptionContext extends DartdocOptionContext {
3838

3939
String? get favicon => optionSet['favicon'].valueAt(context);
4040

41-
String get relCanonicalPrefix =>
41+
String? get relCanonicalPrefix =>
4242
optionSet['relCanonicalPrefix'].valueAt(context);
4343

4444
String? get templatesDir => optionSet['templatesDir'].valueAt(context);

lib/src/dartdoc_options.dart

Lines changed: 22 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -256,7 +256,7 @@ class ToolConfiguration {
256256
/// A container class to keep track of where our yaml data came from.
257257
class _YamlFileData {
258258
/// The map from the yaml file.
259-
final Map<Object, Object> data;
259+
final Map<Object?, Object?> data;
260260

261261
/// The path to the directory containing the yaml file.
262262
final String canonicalDirectoryPath;
@@ -1141,20 +1141,29 @@ abstract class _DartdocArgOption<T> implements DartdocOption<T> {
11411141
help: help,
11421142
hide: hide);
11431143
} else if (_isListString || _isMapString) {
1144-
var defaultsToList = <String>[];
1145-
if (_isListString) {
1146-
defaultsToList = defaultsTo as List<String>;
1144+
if (defaultsTo == null) {
1145+
argParser.addMultiOption(argName,
1146+
abbr: abbr,
1147+
defaultsTo: null,
1148+
help: help,
1149+
hide: hide,
1150+
splitCommas: splitCommas);
11471151
} else {
1148-
defaultsToList.addAll((defaultsTo as Map<String, String>)
1149-
.entries
1150-
.map((m) => '${m.key}::${m.value}'));
1152+
var defaultsToList = <String>[];
1153+
if (_isListString) {
1154+
defaultsToList = defaultsTo as List<String>;
1155+
} else {
1156+
defaultsToList.addAll((defaultsTo as Map<String, String>)
1157+
.entries
1158+
.map((m) => '${m.key}::${m.value}'));
1159+
}
1160+
argParser.addMultiOption(argName,
1161+
abbr: abbr,
1162+
defaultsTo: defaultsToList,
1163+
help: help,
1164+
hide: hide,
1165+
splitCommas: splitCommas);
11511166
}
1152-
argParser.addMultiOption(argName,
1153-
abbr: abbr,
1154-
defaultsTo: defaultsToList,
1155-
help: help,
1156-
hide: hide,
1157-
splitCommas: splitCommas);
11581167
} else {
11591168
throw UnsupportedError('Type $T is not supported');
11601169
}

lib/src/model/library.dart

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -233,9 +233,9 @@ class Library extends ModelElement with Categorization, TopLevelContainer {
233233
return _dirName;
234234
}();
235235

236-
Set<String>? _canonicalFor;
236+
Set<String?>? _canonicalFor;
237237

238-
Set<String> get canonicalFor {
238+
Set<String?> get canonicalFor {
239239
if (_canonicalFor == null) {
240240
// TODO(jcollins-g): restructure to avoid using side effects.
241241
buildDocumentationAddition(documentationComment);
@@ -268,7 +268,7 @@ class Library extends ModelElement with Categorization, TopLevelContainer {
268268
}
269269
// TODO(jcollins-g): warn if a macro/tool _does_ generate an unexpected
270270
// canonicalFor?
271-
_canonicalFor ??= newCanonicalFor as Set<String>;
271+
_canonicalFor ??= newCanonicalFor;
272272
return rawDocs;
273273
}
274274

lib/src/model/package_graph.dart

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -208,7 +208,7 @@ class PackageGraph with CommentReferable, Nameable, ModelBuilder {
208208
/// All ModelElements constructed for this package; a superset of [allModelElements].
209209
final HashMap<Tuple3<Element, Library, Container?>, ModelElement?>
210210
allConstructedModelElements =
211-
HashMap<Tuple3<Element, Library, Container>, ModelElement?>();
211+
HashMap<Tuple3<Element, Library, Container?>, ModelElement?>();
212212

213213
/// Anything that might be inheritable, place here for later lookup.
214214
final allInheritableElements =
@@ -832,7 +832,7 @@ class PackageGraph with CommentReferable, Nameable, ModelBuilder {
832832
var setter =
833833
e.setter != null ? modelBuilder.from(e.setter!, lib) : null;
834834
modelElement = modelBuilder.fromPropertyInducingElement(e, lib,
835-
getter: getter as Accessor, setter: setter as Accessor);
835+
getter: getter as Accessor?, setter: setter as Accessor?);
836836
} else {
837837
modelElement = modelBuilder.from(e!, lib);
838838
}

lib/src/package_meta.dart

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -124,7 +124,7 @@ abstract class PackageMeta {
124124

125125
/// Returns 'Dart' or 'Flutter' (preferentially, 'Flutter' when the answer is
126126
/// "both"), or null if this package is not part of a SDK.
127-
String? sdkType(String flutterRootPath);
127+
String? sdkType(String? flutterRootPath);
128128

129129
bool get needsPubGet => false;
130130

test/documentation_comment_test.dart

Lines changed: 18 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,6 @@
22
// for details. All rights reserved. Use of this source code is governed by a
33
// BSD-style license that can be found in the LICENSE file.
44

5-
// @dart=2.9
6-
75
import 'package:analyzer/file_system/file_system.dart';
86
import 'package:analyzer/file_system/memory_file_system.dart';
97
import 'package:analyzer/src/dart/sdk/sdk.dart';
@@ -18,27 +16,26 @@ import 'package:test/test.dart';
1816
import 'src/utils.dart' as utils;
1917

2018
void main() {
21-
MemoryResourceProvider resourceProvider;
22-
PackageMetaProvider packageMetaProvider;
23-
FakePackageConfigProvider packageConfigProvider;
24-
Folder projectRoot;
25-
String projectPath;
26-
var packageName = 'my_package';
27-
PackageGraph packageGraph;
28-
ModelElement libraryModel;
29-
3019
Matcher hasInvalidParameterWarning(String message) =>
3120
_HasWarning(PackageWarning.invalidParameter, message);
3221

3322
Matcher hasMissingExampleWarning(String message) =>
3423
_HasWarning(PackageWarning.missingExampleFile, message);
3524

36-
void expectNoWarnings() {
37-
expect(packageGraph.packageWarningCounter.hasWarnings, isFalse);
38-
expect(packageGraph.packageWarningCounter.countedWarnings, isEmpty);
39-
}
40-
4125
group('documentation_comment tests', () {
26+
late MemoryResourceProvider resourceProvider;
27+
late PackageMetaProvider packageMetaProvider;
28+
late FakePackageConfigProvider packageConfigProvider;
29+
late Folder projectRoot;
30+
final packageName = 'my_package';
31+
late PackageGraph packageGraph;
32+
late ModelElement libraryModel;
33+
34+
void expectNoWarnings() {
35+
expect(packageGraph.packageWarningCounter.hasWarnings, isFalse);
36+
expect(packageGraph.packageWarningCounter.countedWarnings, isEmpty);
37+
}
38+
4239
setUp(() async {
4340
resourceProvider = MemoryResourceProvider();
4441
final sdkRoot = resourceProvider.getFolder(
@@ -71,7 +68,6 @@ void main() {
7168

7269
projectRoot = utils.writePackage(
7370
packageName, resourceProvider, packageConfigProvider);
74-
projectPath = projectRoot.path;
7571
projectRoot
7672
.getChildAssumingFolder('lib')
7773
.getChildAssumingFile('a.dart')
@@ -80,7 +76,7 @@ void main() {
8076
int x;
8177
''');
8278
packageGraph = await utils.bootBasicPackage(
83-
projectPath, packageMetaProvider, packageConfigProvider,
79+
projectRoot.path, packageMetaProvider, packageConfigProvider,
8480
additionalArguments: []);
8581
libraryModel = packageGraph.defaultPackage.libraries.first;
8682
});
@@ -682,7 +678,7 @@ Text.
682678

683679
test('processes @inject-html when enabled', () async {
684680
packageGraph = await utils.bootBasicPackage(
685-
projectPath, packageMetaProvider, packageConfigProvider,
681+
projectRoot.path, packageMetaProvider, packageConfigProvider,
686682
additionalArguments: ['--inject-html']);
687683
libraryModel = packageGraph.defaultPackage.libraries.first;
688684
var doc = await libraryModel.processComment('''
@@ -930,7 +926,7 @@ class _HasWarning extends Matcher {
930926
_HasWarning(this.kind, this.message);
931927

932928
@override
933-
bool matches(dynamic actual, Map<Object, Object> matchState) {
929+
bool matches(Object? actual, Map<Object?, Object?> matchState) {
934930
if (actual is ModelElement) {
935931
return actual.packageGraph.packageWarningCounter
936932
.hasWarning(actual, kind, message);
@@ -944,8 +940,8 @@ class _HasWarning extends Matcher {
944940
description.add('Library to be warned with $kind and message:\n$message');
945941

946942
@override
947-
Description describeMismatch(dynamic actual, Description mismatchDescription,
948-
Map<Object, Object> matchState, bool verbose) {
943+
Description describeMismatch(Object? actual, Description mismatchDescription,
944+
Map<Object?, Object?> matchState, bool verbose) {
949945
if (actual is ModelElement) {
950946
var warnings = actual
951947
.packageGraph.packageWarningCounter.countedWarnings[actual.element];

test/grind_test.dart

Lines changed: 9 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,6 @@
22
// for details. All rights reserved. Use of this source code is governed by a
33
// BSD-style license that can be found in the LICENSE file.
44

5-
// @dart=2.9
6-
75
library dartdoc.io_utils_test;
86

97
import 'package:test/test.dart';
@@ -12,20 +10,22 @@ import '../tool/grind.dart' hide test;
1210

1311
void main() {
1412
group('printWarningDelta', () {
15-
WarningsCollection original, current;
16-
WarningsCollection originalWithDirs, currentWithDirs;
13+
late WarningsCollection original, current;
14+
1715
setUp(() {
18-
original =
19-
WarningsCollection('/a/tempdir', '/pubcache/path', 'oldbranch');
20-
original.add('originalwarning');
16+
original = WarningsCollection('/a/tempdir', '/pubcache/path', 'oldbranch')
17+
..add('originalwarning');
2118
original.add('morewarning');
2219
original.add('duplicateoriginalwarning');
2320
original.add('duplicateoriginalwarning');
2421
current = WarningsCollection('/a/tempdir2', '/pubcache/path2', 'current');
2522
current.add('newwarning');
2623
current.add('morewarning');
2724
current.add('duplicateoriginalwarning');
28-
originalWithDirs = WarningsCollection(
25+
});
26+
27+
test('verify that paths are substituted when comparing warnings', () {
28+
var originalWithDirs = WarningsCollection(
2929
'/a/tempdirFOO', '/pubcache/pathFOO', 'DirsOriginal');
3030
originalWithDirs.add(
3131
'originalWarning found in /a/tempdirFOO/some/subdir/program.dart!!!!');
@@ -35,7 +35,7 @@ void main() {
3535
'insufficent exclamation mark warning found in /pubcache/pathFOO/some/package/lib/thingy.dart.');
3636
originalWithDirs.add(
3737
'another originalWarning found in /a/tempdirFOO/some/subdir/program.dart');
38-
currentWithDirs = WarningsCollection(
38+
var currentWithDirs = WarningsCollection(
3939
'/a/tempdirBAR', '/pubcache/pathBAR', 'DirsCurrent');
4040
currentWithDirs.add(
4141
'originalWarning found in /a/tempdirBAR/some/subdir/program.dart!!!!');
@@ -45,9 +45,6 @@ void main() {
4545
'insufficent exclamation mark warning found in /pubcache/pathBAR/some/package/lib/thingy.dart.');
4646
currentWithDirs.add(
4747
'another originalWarning found in /a/tempdirBAR/some/other/subdir/program.dart');
48-
});
49-
50-
test('verify that paths are substituted when comparing warnings', () {
5148
expect(
5249
originalWithDirs.getPrintableWarningDelta(
5350
'Dirs diff title', currentWithDirs),

test/html_generator_test.dart

Lines changed: 15 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,6 @@
22
// for details. All rights reserved. Use of this source code is governed by a
33
// BSD-style license that can be found in the LICENSE file.
44

5-
// @dart=2.9
6-
75
import 'package:analyzer/file_system/file_system.dart';
86
import 'package:analyzer/file_system/memory_file_system.dart';
97
import 'package:dartdoc/dartdoc.dart' show DartdocFileWriter;
@@ -26,25 +24,26 @@ import 'src/utils.dart' as utils;
2624

2725
void main() {
2826
group('HTML generator tests', () {
29-
MemoryResourceProvider resourceProvider;
30-
p.Context pathContext;
27+
late MemoryResourceProvider resourceProvider;
28+
late p.Context pathContext;
3129

32-
PackageMetaProvider packageMetaProvider;
33-
FakePackageConfigProvider packageConfigProvider;
30+
late PackageMetaProvider packageMetaProvider;
31+
late FakePackageConfigProvider packageConfigProvider;
3432

3533
final Templates templates = HtmlAotTemplates();
36-
GeneratorFrontEnd generator;
37-
DartdocFileWriter writer;
34+
late GeneratorFrontEnd generator;
35+
late DartdocFileWriter writer;
3836

39-
Folder projectRoot;
40-
String projectPath;
37+
late Folder projectRoot;
38+
late String projectPath;
4139

4240
setUp(() async {
4341
packageMetaProvider = utils.testPackageMetaProvider;
44-
resourceProvider = packageMetaProvider.resourceProvider;
42+
resourceProvider =
43+
packageMetaProvider.resourceProvider as MemoryResourceProvider;
4544
pathContext = resourceProvider.pathContext;
46-
packageConfigProvider = utils
47-
.getTestPackageConfigProvider(packageMetaProvider.defaultSdkDir.path);
45+
packageConfigProvider = utils.getTestPackageConfigProvider(
46+
packageMetaProvider.defaultSdkDir.path) as FakePackageConfigProvider;
4847
for (var template in [
4948
'_accessor_getter',
5049
'_accessor_setter',
@@ -134,8 +133,6 @@ void main() {
134133
resourceProvider.getFile(resourceProvider.convertPath(path));
135134

136135
tearDown(() {
137-
projectRoot = null;
138-
projectPath = null;
139136
clearPackageMetaCache();
140137
});
141138

@@ -190,13 +187,13 @@ const Matcher doesExist = _DoesExist();
190187
class _DoesExist extends Matcher {
191188
const _DoesExist();
192189
@override
193-
bool matches(Object item, Map<Object, Object> matchState) =>
190+
bool matches(Object? item, Map<Object?, Object?> matchState) =>
194191
(item as Resource).exists;
195192
@override
196193
Description describe(Description description) => description.add('exists');
197194
@override
198-
Description describeMismatch(Object item, Description mismatchDescription,
199-
Map<Object, Object> matchState, bool verbose) {
195+
Description describeMismatch(Object? item, Description mismatchDescription,
196+
Map<Object?, Object?> matchState, bool verbose) {
200197
if (item is! File && item is! Folder) {
201198
return mismatchDescription
202199
.addDescriptionOf(item)

test/io_utils_test.dart

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,6 @@
22
// for details. All rights reserved. Use of this source code is governed by a
33
// BSD-style license that can be found in the LICENSE file.
44

5-
// @dart=2.9
6-
75
library dartdoc.io_utils_test;
86

97
import 'package:dartdoc/src/io_utils.dart';
@@ -70,8 +68,8 @@ void main() {
7068
var completed = <int>{};
7169
var tracker = TaskQueue(maxJobs: 1);
7270
await tracker.add(() async => completed.add(0));
73-
await tracker.add(() async => throw Exception()).catchError((e) {});
74-
await tracker.add(() async => throw Exception()).catchError((e) {});
71+
await tracker.add(() async => throw Exception()).catchError((e) => -1);
72+
await tracker.add(() async => throw Exception()).catchError((e) => -1);
7573
await tracker.add(() async => completed.add(3));
7674
await tracker.tasksComplete;
7775
expect(completed.length, equals(2));

test/library_test.dart

Lines changed: 5 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -2,29 +2,18 @@
22
// for details. All rights reserved. Use of this source code is governed by a
33
// BSD-style license that can be found in the LICENSE file.
44

5-
// @dart=2.9
6-
7-
import 'package:analyzer/file_system/file_system.dart';
85
import 'package:dartdoc/src/model/model.dart';
9-
import 'package:dartdoc/src/package_config_provider.dart';
10-
import 'package:dartdoc/src/package_meta.dart';
116
import 'package:test/test.dart';
127

138
import 'src/utils.dart' as utils;
149

1510
void main() {
16-
Folder sdkFolder;
17-
18-
PackageMetaProvider packageMetaProvider;
19-
FakePackageConfigProvider packageConfigProvider;
20-
21-
setUp(() async {
22-
packageMetaProvider = utils.testPackageMetaProvider;
23-
sdkFolder = packageMetaProvider.defaultSdkDir;
24-
packageConfigProvider = utils.getTestPackageConfigProvider(sdkFolder.path);
25-
});
26-
2711
test('libraries in SDK package have appropriate data', () async {
12+
var packageMetaProvider = utils.testPackageMetaProvider;
13+
var sdkFolder = packageMetaProvider.defaultSdkDir;
14+
var packageConfigProvider =
15+
utils.getTestPackageConfigProvider(sdkFolder.path);
16+
2817
var packageGraph = await utils.bootBasicPackage(
2918
sdkFolder.path, packageMetaProvider, packageConfigProvider,
3019
additionalArguments: [

0 commit comments

Comments
 (0)