blob: 864e22e4f4f5d12bfde17e0d15c636cb8f8b1088 [file]
// Copyright (c) 2020, the Dart project authors. Please see the AUTHORS file
// 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.
import 'package:analyzer_testing/package_config_file_builder.dart';
import 'package:test_reflective_loader/test_reflective_loader.dart';
import '../dart/resolution/context_collection_resolution.dart';
main() {
defineReflectiveSuite(() {
defineReflectiveTests(ImportInternalLibraryTest);
});
}
@reflectiveTest
class ImportInternalLibraryTest extends PubPackageResolutionTest {
test_internal() async {
// Note, in these error cases we may generate an UNUSED_IMPORT hint, while
// we could prevent the hint from being generated by testing the import
// directive for the error, this is such a minor corner case that we don't
// think we should add the additional computation time to figure out such
// cases.
await resolveTestCodeWithDiagnostics(r'''
import 'dart:_internal';
// ^^^^^^^^^^^^^^^^
// [diag.importInternalLibrary] The library 'dart:_internal' is internal and can't be imported.
// [diag.unusedImport] Unused import: 'dart:_internal'.
''');
}
test_wasm_fromJs() async {
var packageRootPath = _newPackage('js');
var file = getFile('$packageRootPath/lib/js.dart');
await resolveFileWithDiagnostics(file, '''
import 'dart:_wasm';
// ^^^^^^^^^^^^
// [diag.unusedImport] Unused import: 'dart:_wasm'.
''');
}
test_wasm_fromTest() async {
await resolveTestCodeWithDiagnostics(r'''
import 'dart:_wasm';
// ^^^^^^^^^^^^
// [diag.importInternalLibrary] The library 'dart:_wasm' is internal and can't be imported.
// [diag.unusedImport] Unused import: 'dart:_wasm'.
''');
}
test_wasm_fromUi() async {
var packageRootPath = _newPackage('ui');
var file = getFile('$packageRootPath/lib/ui.dart');
await resolveFileWithDiagnostics(file, '''
import 'dart:_wasm';
// ^^^^^^^^^^^^
// [diag.unusedImport] Unused import: 'dart:_wasm'.
''');
}
String _newPackage(String packageName) {
var packageRootPath = '$workspaceRootPath/$packageName';
var builder = PackageConfigFileBuilder();
builder.add(
name: packageName,
rootFolder: getFolder(packageRootPath),
languageVersion: testPackageLanguageVersion,
);
writePackageConfig(packageRootPath, builder);
return packageRootPath;
}
}