a2055fbb82
- Moved existing summary logic to the new package Change-Id: I47d032f5a253cfa32d9b685d9ff18bb08f534177 Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/499440 Commit-Queue: Vijay Menon <vsm@google.com> Auto-Submit: Kevin Moore <kevmoo@google.com> Reviewed-by: Vijay Menon <vsm@google.com>
129 lines
3.9 KiB
Dart
129 lines
3.9 KiB
Dart
// Copyright (c) 2026, 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.
|
|
|
|
// ignore_for_file: non_constant_identifier_names
|
|
|
|
import 'package:api_summary/src/extensions.dart';
|
|
import 'package:test/test.dart';
|
|
import 'package:test_reflective_loader/test_reflective_loader.dart';
|
|
|
|
import 'test_utils.dart';
|
|
|
|
void main() {
|
|
defineReflectiveSuite(() {
|
|
defineReflectiveTests(ExtensionsTest);
|
|
});
|
|
}
|
|
|
|
@reflectiveTest
|
|
class ExtensionsTest extends ApiSummaryTest {
|
|
Future<void> test_element_apiName_classMember() async {
|
|
var class_ = (await analyzeLibrary('''
|
|
class C {
|
|
void method() {}
|
|
int get getter => 0;
|
|
set setter(int value) {}
|
|
int field = 0;
|
|
static const constant = 0;
|
|
}
|
|
''')).getClass('C')!;
|
|
expect(class_.getMethod('method')!.apiName, 'method');
|
|
expect(class_.getGetter('getter')!.apiName, 'getter');
|
|
expect(class_.getSetter('setter')!.apiName, 'setter=');
|
|
expect(class_.getField('field')!.apiName, 'field');
|
|
expect(class_.getField('constant')!.apiName, 'constant');
|
|
}
|
|
|
|
Future<void> test_element_apiName_topLevel() async {
|
|
var lib = await analyzeLibrary('''
|
|
void function() {}
|
|
int get getter => 0;
|
|
set setter(int value) {}
|
|
int variable = 0;
|
|
const constant = 0;
|
|
class Class {}
|
|
mixin Mixin {}
|
|
enum Enum { e }
|
|
extension Extension on int {}
|
|
extension type ExtensionType(int i) {}
|
|
''');
|
|
expect(lib.getTopLevelFunction('function')!.apiName, 'function');
|
|
expect(lib.getGetter('getter')!.apiName, 'getter');
|
|
expect(lib.getSetter('setter')!.apiName, 'setter=');
|
|
expect(lib.getTopLevelVariable('variable')!.apiName, 'variable');
|
|
expect(lib.getTopLevelVariable('constant')!.apiName, 'constant');
|
|
expect(lib.getClass('Class')!.apiName, 'Class');
|
|
expect(lib.getMixin('Mixin')!.apiName, 'Mixin');
|
|
expect(lib.getEnum('Enum')!.apiName, 'Enum');
|
|
expect(lib.getExtension('Extension')!.apiName, 'Extension');
|
|
expect(lib.getExtensionType('ExtensionType')!.apiName, 'ExtensionType');
|
|
}
|
|
|
|
Future<void> test_formalParameterElement_isDeprecated() async {
|
|
var f = (await analyzeLibrary(
|
|
'f({int? i, @deprecated int? j}) {}',
|
|
)).getTopLevelFunction('f')!;
|
|
expect(f.formalParameters[0].isDeprecated, isFalse);
|
|
expect(f.formalParameters[1].isDeprecated, isTrue);
|
|
}
|
|
|
|
void test_iterableIterable_separatedBy() {
|
|
expect(
|
|
[
|
|
['a', 'b'],
|
|
['c', 'd'],
|
|
].separatedBy(),
|
|
['', 'a', 'b', ', ', 'c', 'd', ''],
|
|
);
|
|
expect(
|
|
[
|
|
['a', 'b'],
|
|
['c', 'd'],
|
|
].separatedBy(prefix: '[', separator: '|', suffix: ']'),
|
|
['[', 'a', 'b', '|', 'c', 'd', ']'],
|
|
);
|
|
expect(
|
|
<Iterable<Object?>>[].separatedBy(
|
|
prefix: '[',
|
|
separator: '|',
|
|
suffix: ']',
|
|
),
|
|
['[', ']'],
|
|
);
|
|
}
|
|
|
|
void test_string_isPublic() {
|
|
expect('_'.isPublic, isFalse);
|
|
expect('foo'.isPublic, isTrue);
|
|
expect('_foo'.isPublic, isFalse);
|
|
}
|
|
|
|
void test_uri_isIn() {
|
|
expect(Uri.parse('package:foo/bar.dart').isIn('foo'), isTrue);
|
|
expect(Uri.parse('package:foo/bar.dart').isIn('bar.dart'), isFalse);
|
|
expect(Uri.parse('dart:core').isIn('foo'), isFalse);
|
|
expect(Uri.parse('dart:core').isIn('dart'), isFalse);
|
|
expect(Uri.parse('dart:core').isIn('core'), isFalse);
|
|
}
|
|
|
|
void test_uri_isInPublicLibOf() {
|
|
expect(Uri.parse('package:foo/bar.dart').isInPublicLibOf('foo'), isTrue);
|
|
expect(
|
|
Uri.parse('package:foo/bar.dart').isInPublicLibOf('bar.dart'),
|
|
isFalse,
|
|
);
|
|
expect(
|
|
Uri.parse('package:foo/src/bar.dart').isInPublicLibOf('foo'),
|
|
isFalse,
|
|
);
|
|
expect(
|
|
Uri.parse('package:foo/src/bar.dart').isInPublicLibOf('src'),
|
|
isFalse,
|
|
);
|
|
expect(Uri.parse('dart:core').isInPublicLibOf('foo'), isFalse);
|
|
expect(Uri.parse('dart:core').isInPublicLibOf('dart'), isFalse);
|
|
expect(Uri.parse('dart:core').isInPublicLibOf('core'), isFalse);
|
|
}
|
|
}
|