mirror of
https://github.com/flutter/flutter
synced 2024-10-13 19:52:53 +00:00
d927c93310
* enable lint unnecessary_new * fix tests * fix tests * fix tests
100 lines
4 KiB
Dart
100 lines
4 KiB
Dart
// Copyright 2016 The Chromium Authors. All rights reserved.
|
|
// Use of this source code is governed by a BSD-style license that can be
|
|
// found in the LICENSE file.
|
|
|
|
import 'package:flutter_tools/src/dart/dependencies.dart';
|
|
import 'package:flutter_tools/src/base/file_system.dart';
|
|
|
|
import 'src/common.dart';
|
|
import 'src/context.dart';
|
|
|
|
void main() {
|
|
group('DartDependencySetBuilder', () {
|
|
final String dataPath = fs.path.join(
|
|
getFlutterRoot(),
|
|
'packages',
|
|
'flutter_tools',
|
|
'test',
|
|
'data',
|
|
'dart_dependencies_test',
|
|
);
|
|
|
|
testUsingContext('good', () {
|
|
final String testPath = fs.path.join(dataPath, 'good');
|
|
final String mainPath = fs.path.join(testPath, 'main.dart');
|
|
final String packagesPath = fs.path.join(testPath, '.packages');
|
|
final DartDependencySetBuilder builder =
|
|
DartDependencySetBuilder(mainPath, packagesPath);
|
|
final Set<String> dependencies = builder.build();
|
|
expect(dependencies.contains(canonicalizePath(mainPath)), isTrue);
|
|
expect(dependencies.contains(canonicalizePath(fs.path.join(testPath, 'foo.dart'))), isTrue);
|
|
});
|
|
|
|
testUsingContext('syntax_error', () {
|
|
final String testPath = fs.path.join(dataPath, 'syntax_error');
|
|
final String mainPath = fs.path.join(testPath, 'main.dart');
|
|
final String packagesPath = fs.path.join(testPath, '.packages');
|
|
final DartDependencySetBuilder builder =
|
|
DartDependencySetBuilder(mainPath, packagesPath);
|
|
try {
|
|
builder.build();
|
|
fail('expect an exception to be thrown.');
|
|
} on DartDependencyException catch (error) {
|
|
expect(error.toString(), contains('foo.dart: Expected a string literal'));
|
|
}
|
|
});
|
|
|
|
testUsingContext('bad_path', () {
|
|
final String testPath = fs.path.join(dataPath, 'bad_path');
|
|
final String mainPath = fs.path.join(testPath, 'main.dart');
|
|
final String packagesPath = fs.path.join(testPath, '.packages');
|
|
final DartDependencySetBuilder builder =
|
|
DartDependencySetBuilder(mainPath, packagesPath);
|
|
try {
|
|
builder.build();
|
|
fail('expect an exception to be thrown.');
|
|
} on DartDependencyException catch (error) {
|
|
expect(error.toString(), contains('amaze${fs.path.separator}and${fs.path.separator}astonish.dart'));
|
|
}
|
|
});
|
|
|
|
testUsingContext('bad_package', () {
|
|
final String testPath = fs.path.join(dataPath, 'bad_package');
|
|
final String mainPath = fs.path.join(testPath, 'main.dart');
|
|
final String packagesPath = fs.path.join(testPath, '.packages');
|
|
final DartDependencySetBuilder builder =
|
|
DartDependencySetBuilder(mainPath, packagesPath);
|
|
try {
|
|
builder.build();
|
|
fail('expect an exception to be thrown.');
|
|
} on DartDependencyException catch (error) {
|
|
expect(error.toString(), contains('rochambeau'));
|
|
expect(error.toString(), contains('pubspec.yaml'));
|
|
}
|
|
});
|
|
|
|
testUsingContext('does not change ASCII casing of path', () {
|
|
final String testPath = fs.path.join(dataPath, 'asci_casing');
|
|
final String mainPath = fs.path.join(testPath, 'main.dart');
|
|
final String packagesPath = fs.path.join(testPath, '.packages');
|
|
final DartDependencySetBuilder builder = DartDependencySetBuilder(mainPath, packagesPath);
|
|
final Set<String> deps = builder.build();
|
|
expect(deps, contains(endsWith('This_Import_Has_fuNNy_casING.dart')));
|
|
});
|
|
|
|
testUsingContext('bad_import', () {
|
|
final String testPath = fs.path.join(dataPath, 'bad_import');
|
|
final String mainPath = fs.path.join(testPath, 'main.dart');
|
|
final String packagesPath = fs.path.join(testPath, '.packages');
|
|
final DartDependencySetBuilder builder =
|
|
DartDependencySetBuilder(mainPath, packagesPath);
|
|
try {
|
|
builder.build();
|
|
fail('expect an exception to be thrown.');
|
|
} on DartDependencyException catch (error) {
|
|
expect(error.toString(), contains('Unable to parse URI'));
|
|
}
|
|
});
|
|
});
|
|
}
|