Skip to content

Migrate more tests; correct other migration bits #2880

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 1 commit into from
Jan 5, 2022
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion lib/options.dart
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,7 @@ class DartdocGeneratorOptionContext extends DartdocOptionContext {

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

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

String? get templatesDir => optionSet['templatesDir'].valueAt(context);
Expand Down
35 changes: 22 additions & 13 deletions lib/src/dartdoc_options.dart
Original file line number Diff line number Diff line change
Expand Up @@ -256,7 +256,7 @@ class ToolConfiguration {
/// A container class to keep track of where our yaml data came from.
class _YamlFileData {
/// The map from the yaml file.
final Map<Object, Object> data;
final Map<Object?, Object?> data;

/// The path to the directory containing the yaml file.
final String canonicalDirectoryPath;
Expand Down Expand Up @@ -1141,20 +1141,29 @@ abstract class _DartdocArgOption<T> implements DartdocOption<T> {
help: help,
hide: hide);
} else if (_isListString || _isMapString) {
var defaultsToList = <String>[];
if (_isListString) {
defaultsToList = defaultsTo as List<String>;
if (defaultsTo == null) {
argParser.addMultiOption(argName,
abbr: abbr,
defaultsTo: null,
help: help,
hide: hide,
splitCommas: splitCommas);
} else {
defaultsToList.addAll((defaultsTo as Map<String, String>)
.entries
.map((m) => '${m.key}::${m.value}'));
var defaultsToList = <String>[];
if (_isListString) {
defaultsToList = defaultsTo as List<String>;
} else {
defaultsToList.addAll((defaultsTo as Map<String, String>)
.entries
.map((m) => '${m.key}::${m.value}'));
}
argParser.addMultiOption(argName,
abbr: abbr,
defaultsTo: defaultsToList,
help: help,
hide: hide,
splitCommas: splitCommas);
}
argParser.addMultiOption(argName,
abbr: abbr,
defaultsTo: defaultsToList,
help: help,
hide: hide,
splitCommas: splitCommas);
} else {
throw UnsupportedError('Type $T is not supported');
}
Expand Down
6 changes: 3 additions & 3 deletions lib/src/model/library.dart
Original file line number Diff line number Diff line change
Expand Up @@ -233,9 +233,9 @@ class Library extends ModelElement with Categorization, TopLevelContainer {
return _dirName;
}();

Set<String>? _canonicalFor;
Set<String?>? _canonicalFor;

Set<String> get canonicalFor {
Set<String?> get canonicalFor {
if (_canonicalFor == null) {
// TODO(jcollins-g): restructure to avoid using side effects.
buildDocumentationAddition(documentationComment);
Expand Down Expand Up @@ -268,7 +268,7 @@ class Library extends ModelElement with Categorization, TopLevelContainer {
}
// TODO(jcollins-g): warn if a macro/tool _does_ generate an unexpected
// canonicalFor?
_canonicalFor ??= newCanonicalFor as Set<String>;
_canonicalFor ??= newCanonicalFor;
return rawDocs;
}

Expand Down
4 changes: 2 additions & 2 deletions lib/src/model/package_graph.dart
Original file line number Diff line number Diff line change
Expand Up @@ -208,7 +208,7 @@ class PackageGraph with CommentReferable, Nameable, ModelBuilder {
/// All ModelElements constructed for this package; a superset of [allModelElements].
final HashMap<Tuple3<Element, Library, Container?>, ModelElement?>
allConstructedModelElements =
HashMap<Tuple3<Element, Library, Container>, ModelElement?>();
HashMap<Tuple3<Element, Library, Container?>, ModelElement?>();

/// Anything that might be inheritable, place here for later lookup.
final allInheritableElements =
Expand Down Expand Up @@ -832,7 +832,7 @@ class PackageGraph with CommentReferable, Nameable, ModelBuilder {
var setter =
e.setter != null ? modelBuilder.from(e.setter!, lib) : null;
modelElement = modelBuilder.fromPropertyInducingElement(e, lib,
getter: getter as Accessor, setter: setter as Accessor);
getter: getter as Accessor?, setter: setter as Accessor?);
} else {
modelElement = modelBuilder.from(e!, lib);
}
Expand Down
2 changes: 1 addition & 1 deletion lib/src/package_meta.dart
Original file line number Diff line number Diff line change
Expand Up @@ -124,7 +124,7 @@ abstract class PackageMeta {

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

bool get needsPubGet => false;

Expand Down
40 changes: 18 additions & 22 deletions test/documentation_comment_test.dart
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,6 @@
// for details. All rights reserved. Use of this source code is governed by a
// BSD-style license that can be found in the LICENSE file.

// @dart=2.9

import 'package:analyzer/file_system/file_system.dart';
import 'package:analyzer/file_system/memory_file_system.dart';
import 'package:analyzer/src/dart/sdk/sdk.dart';
Expand All @@ -18,27 +16,26 @@ import 'package:test/test.dart';
import 'src/utils.dart' as utils;

void main() {
MemoryResourceProvider resourceProvider;
PackageMetaProvider packageMetaProvider;
FakePackageConfigProvider packageConfigProvider;
Folder projectRoot;
String projectPath;
var packageName = 'my_package';
PackageGraph packageGraph;
ModelElement libraryModel;

Matcher hasInvalidParameterWarning(String message) =>
_HasWarning(PackageWarning.invalidParameter, message);

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

void expectNoWarnings() {
expect(packageGraph.packageWarningCounter.hasWarnings, isFalse);
expect(packageGraph.packageWarningCounter.countedWarnings, isEmpty);
}

group('documentation_comment tests', () {
late MemoryResourceProvider resourceProvider;
late PackageMetaProvider packageMetaProvider;
late FakePackageConfigProvider packageConfigProvider;
late Folder projectRoot;
final packageName = 'my_package';
late PackageGraph packageGraph;
late ModelElement libraryModel;

void expectNoWarnings() {
expect(packageGraph.packageWarningCounter.hasWarnings, isFalse);
expect(packageGraph.packageWarningCounter.countedWarnings, isEmpty);
}

setUp(() async {
resourceProvider = MemoryResourceProvider();
final sdkRoot = resourceProvider.getFolder(
Expand Down Expand Up @@ -71,7 +68,6 @@ void main() {

projectRoot = utils.writePackage(
packageName, resourceProvider, packageConfigProvider);
projectPath = projectRoot.path;
projectRoot
.getChildAssumingFolder('lib')
.getChildAssumingFile('a.dart')
Expand All @@ -80,7 +76,7 @@ void main() {
int x;
''');
packageGraph = await utils.bootBasicPackage(
projectPath, packageMetaProvider, packageConfigProvider,
projectRoot.path, packageMetaProvider, packageConfigProvider,
additionalArguments: []);
libraryModel = packageGraph.defaultPackage.libraries.first;
});
Expand Down Expand Up @@ -682,7 +678,7 @@ Text.

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

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

@override
Description describeMismatch(dynamic actual, Description mismatchDescription,
Map<Object, Object> matchState, bool verbose) {
Description describeMismatch(Object? actual, Description mismatchDescription,
Map<Object?, Object?> matchState, bool verbose) {
if (actual is ModelElement) {
var warnings = actual
.packageGraph.packageWarningCounter.countedWarnings[actual.element];
Expand Down
21 changes: 9 additions & 12 deletions test/grind_test.dart
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,6 @@
// for details. All rights reserved. Use of this source code is governed by a
// BSD-style license that can be found in the LICENSE file.

// @dart=2.9

library dartdoc.io_utils_test;

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

void main() {
group('printWarningDelta', () {
WarningsCollection original, current;
WarningsCollection originalWithDirs, currentWithDirs;
late WarningsCollection original, current;

setUp(() {
original =
WarningsCollection('/a/tempdir', '/pubcache/path', 'oldbranch');
original.add('originalwarning');
original = WarningsCollection('/a/tempdir', '/pubcache/path', 'oldbranch')
..add('originalwarning');
original.add('morewarning');
original.add('duplicateoriginalwarning');
original.add('duplicateoriginalwarning');
current = WarningsCollection('/a/tempdir2', '/pubcache/path2', 'current');
current.add('newwarning');
current.add('morewarning');
current.add('duplicateoriginalwarning');
originalWithDirs = WarningsCollection(
});

test('verify that paths are substituted when comparing warnings', () {
var originalWithDirs = WarningsCollection(
'/a/tempdirFOO', '/pubcache/pathFOO', 'DirsOriginal');
originalWithDirs.add(
'originalWarning found in /a/tempdirFOO/some/subdir/program.dart!!!!');
Expand All @@ -35,7 +35,7 @@ void main() {
'insufficent exclamation mark warning found in /pubcache/pathFOO/some/package/lib/thingy.dart.');
originalWithDirs.add(
'another originalWarning found in /a/tempdirFOO/some/subdir/program.dart');
currentWithDirs = WarningsCollection(
var currentWithDirs = WarningsCollection(
'/a/tempdirBAR', '/pubcache/pathBAR', 'DirsCurrent');
currentWithDirs.add(
'originalWarning found in /a/tempdirBAR/some/subdir/program.dart!!!!');
Expand All @@ -45,9 +45,6 @@ void main() {
'insufficent exclamation mark warning found in /pubcache/pathBAR/some/package/lib/thingy.dart.');
currentWithDirs.add(
'another originalWarning found in /a/tempdirBAR/some/other/subdir/program.dart');
});

test('verify that paths are substituted when comparing warnings', () {
expect(
originalWithDirs.getPrintableWarningDelta(
'Dirs diff title', currentWithDirs),
Expand Down
33 changes: 15 additions & 18 deletions test/html_generator_test.dart
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,6 @@
// for details. All rights reserved. Use of this source code is governed by a
// BSD-style license that can be found in the LICENSE file.

// @dart=2.9

import 'package:analyzer/file_system/file_system.dart';
import 'package:analyzer/file_system/memory_file_system.dart';
import 'package:dartdoc/dartdoc.dart' show DartdocFileWriter;
Expand All @@ -26,25 +24,26 @@ import 'src/utils.dart' as utils;

void main() {
group('HTML generator tests', () {
MemoryResourceProvider resourceProvider;
p.Context pathContext;
late MemoryResourceProvider resourceProvider;
late p.Context pathContext;

PackageMetaProvider packageMetaProvider;
FakePackageConfigProvider packageConfigProvider;
late PackageMetaProvider packageMetaProvider;
late FakePackageConfigProvider packageConfigProvider;

final Templates templates = HtmlAotTemplates();
GeneratorFrontEnd generator;
DartdocFileWriter writer;
late GeneratorFrontEnd generator;
late DartdocFileWriter writer;

Folder projectRoot;
String projectPath;
late Folder projectRoot;
late String projectPath;

setUp(() async {
packageMetaProvider = utils.testPackageMetaProvider;
resourceProvider = packageMetaProvider.resourceProvider;
resourceProvider =
packageMetaProvider.resourceProvider as MemoryResourceProvider;
pathContext = resourceProvider.pathContext;
packageConfigProvider = utils
.getTestPackageConfigProvider(packageMetaProvider.defaultSdkDir.path);
packageConfigProvider = utils.getTestPackageConfigProvider(
packageMetaProvider.defaultSdkDir.path) as FakePackageConfigProvider;
for (var template in [
'_accessor_getter',
'_accessor_setter',
Expand Down Expand Up @@ -134,8 +133,6 @@ void main() {
resourceProvider.getFile(resourceProvider.convertPath(path));

tearDown(() {
projectRoot = null;
projectPath = null;
clearPackageMetaCache();
});

Expand Down Expand Up @@ -190,13 +187,13 @@ const Matcher doesExist = _DoesExist();
class _DoesExist extends Matcher {
const _DoesExist();
@override
bool matches(Object item, Map<Object, Object> matchState) =>
bool matches(Object? item, Map<Object?, Object?> matchState) =>
(item as Resource).exists;
@override
Description describe(Description description) => description.add('exists');
@override
Description describeMismatch(Object item, Description mismatchDescription,
Map<Object, Object> matchState, bool verbose) {
Description describeMismatch(Object? item, Description mismatchDescription,
Map<Object?, Object?> matchState, bool verbose) {
if (item is! File && item is! Folder) {
return mismatchDescription
.addDescriptionOf(item)
Expand Down
6 changes: 2 additions & 4 deletions test/io_utils_test.dart
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,6 @@
// for details. All rights reserved. Use of this source code is governed by a
// BSD-style license that can be found in the LICENSE file.

// @dart=2.9

library dartdoc.io_utils_test;

import 'package:dartdoc/src/io_utils.dart';
Expand Down Expand Up @@ -70,8 +68,8 @@ void main() {
var completed = <int>{};
var tracker = TaskQueue(maxJobs: 1);
await tracker.add(() async => completed.add(0));
await tracker.add(() async => throw Exception()).catchError((e) {});
await tracker.add(() async => throw Exception()).catchError((e) {});
await tracker.add(() async => throw Exception()).catchError((e) => -1);
await tracker.add(() async => throw Exception()).catchError((e) => -1);
await tracker.add(() async => completed.add(3));
await tracker.tasksComplete;
expect(completed.length, equals(2));
Expand Down
21 changes: 5 additions & 16 deletions test/library_test.dart
Original file line number Diff line number Diff line change
Expand Up @@ -2,29 +2,18 @@
// for details. All rights reserved. Use of this source code is governed by a
// BSD-style license that can be found in the LICENSE file.

// @dart=2.9

import 'package:analyzer/file_system/file_system.dart';
import 'package:dartdoc/src/model/model.dart';
import 'package:dartdoc/src/package_config_provider.dart';
import 'package:dartdoc/src/package_meta.dart';
import 'package:test/test.dart';

import 'src/utils.dart' as utils;

void main() {
Folder sdkFolder;

PackageMetaProvider packageMetaProvider;
FakePackageConfigProvider packageConfigProvider;

setUp(() async {
packageMetaProvider = utils.testPackageMetaProvider;
sdkFolder = packageMetaProvider.defaultSdkDir;
packageConfigProvider = utils.getTestPackageConfigProvider(sdkFolder.path);
});

test('libraries in SDK package have appropriate data', () async {
var packageMetaProvider = utils.testPackageMetaProvider;
var sdkFolder = packageMetaProvider.defaultSdkDir;
var packageConfigProvider =
utils.getTestPackageConfigProvider(sdkFolder.path);

var packageGraph = await utils.bootBasicPackage(
sdkFolder.path, packageMetaProvider, packageConfigProvider,
additionalArguments: [
Expand Down
Loading