Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(279)

Unified Diff: pkg/analysis_server/test/analysis/notification_outline_test.dart

Issue 3009713002: Add test structure to the outline from server
Patch Set: complete implementation Created 3 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « pkg/analysis_server/lib/src/computer/computer_outline.dart ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: pkg/analysis_server/test/analysis/notification_outline_test.dart
diff --git a/pkg/analysis_server/test/analysis/notification_outline_test.dart b/pkg/analysis_server/test/analysis/notification_outline_test.dart
index e406df1c58bdf07dcfde651304dde245ace51e7a..675f2d2094df25983454a6794c1ab5b42548bf7f 100644
--- a/pkg/analysis_server/test/analysis/notification_outline_test.dart
+++ b/pkg/analysis_server/test/analysis/notification_outline_test.dart
@@ -302,6 +302,118 @@ enum MyEnum {
}
}
+ test_groupAndTest() async {
+ addTestFile('''
+void group(name, closure) {}
+void test(name) {}
+void main() {
+ group('group1', () {
+ group('group1_1', () {
+ test('test1_1_1');
+ test('test1_1_2');
+ });
+ group('group1_2', () {
+ test('test1_2_1');
+ });
+ });
+ group('group2', () {
+ test('test2_1');
+ test('test2_2');
+ });
+}
+''');
+ await prepareOutline();
+ // unit
+ List<Outline> unit_children = outline.children;
+ expect(unit_children, hasLength(3));
+ // main
+ Outline main_outline = unit_children[2];
+ _expect(main_outline,
+ kind: ElementKind.FUNCTION,
+ name: 'main',
+ offset: testCode.indexOf("main() {"),
+ parameters: '()',
+ returnType: 'void');
+ List<Outline> main_children = main_outline.children;
+ expect(main_children, hasLength(2));
+ // group1
+ Outline group1_outline = main_children[0];
+ _expect(group1_outline,
+ kind: ElementKind.UNKNOWN,
+ length: 5,
+ name: 'group group1',
+ offset: testCode.indexOf("group('group1'"));
+ List<Outline> group1_children = group1_outline.children;
+ expect(group1_children, hasLength(2));
+ // group1_1
+ Outline group1_1_outline = group1_children[0];
+ _expect(group1_1_outline,
+ kind: ElementKind.UNKNOWN,
+ length: 5,
+ name: 'group group1_1',
+ offset: testCode.indexOf("group('group1_1'"));
+ List<Outline> group1_1_children = group1_1_outline.children;
+ expect(group1_1_children, hasLength(2));
+ // test1_1_1
+ Outline test1_1_1_outline = group1_1_children[0];
+ _expect(test1_1_1_outline,
+ kind: ElementKind.UNKNOWN,
+ leaf: true,
+ length: 4,
+ name: 'test test1_1_1',
+ offset: testCode.indexOf("test('test1_1_1'"));
+ // test1_1_1
+ Outline test1_1_2_outline = group1_1_children[1];
+ _expect(test1_1_2_outline,
+ kind: ElementKind.UNKNOWN,
+ leaf: true,
+ length: 4,
+ name: 'test test1_1_2',
+ offset: testCode.indexOf("test('test1_1_2'"));
+ // group1_2
+ Outline group1_2_outline = group1_children[1];
+ _expect(group1_2_outline,
+ kind: ElementKind.UNKNOWN,
+ length: 5,
+ name: 'group group1_2',
+ offset: testCode.indexOf("group('group1_2'"));
+ List<Outline> group1_2_children = group1_2_outline.children;
+ expect(group1_2_children, hasLength(1));
+ // test2_1
+ Outline test1_2_1_outline = group1_2_children[0];
+ _expect(test1_2_1_outline,
+ kind: ElementKind.UNKNOWN,
+ leaf: true,
+ length: 4,
+ name: 'test test1_2_1',
+ offset: testCode.indexOf("test('test1_2_1'"));
+ // group2
+ Outline group2_outline = main_children[1];
+ _expect(group2_outline,
+ kind: ElementKind.UNKNOWN,
+ length: 5,
+ name: 'group group2',
+ offset: testCode.indexOf("group('group2'"));
+ List<Outline> group2_children = group2_outline.children;
+ expect(group2_children, hasLength(2));
+ // test2_1
+ Outline test2_1_outline = group2_children[0];
+ _expect(test2_1_outline,
+ kind: ElementKind.UNKNOWN,
+ leaf: true,
+ length: 4,
+ name: 'test test2_1',
+ offset: testCode.indexOf("test('test2_1'"));
+ // test2_2
+ Outline test2_2_outline = group2_children[1];
+ _expect(test2_2_outline,
+ kind: ElementKind.UNKNOWN,
+ leaf: true,
+ length: 4,
+ name: 'test test2_2',
+ offset: testCode.indexOf("test('test2_2'"));
+ }
+
/**
* Code like this caused NPE in the past.
*
@@ -875,6 +987,41 @@ set propB(int v) {}
}
}
+ void _expect(Outline outline,
+ {ElementKind kind,
+ bool leaf: false,
+ int length,
+ String name,
+ int offset,
+ String parameters,
+ String returnType}) {
+ Element element = outline.element;
+ Location location = element.location;
+
+ if (kind != null) {
+ expect(element.kind, kind);
+ }
+ if (leaf) {
+ expect(outline.children, isNull);
+ }
+ length ??= name?.length;
+ if (length != null) {
+ expect(location.length, length);
+ }
+ if (name != null) {
+ expect(element.name, name);
+ }
+ if (offset != null) {
+ expect(location.offset, offset);
+ }
+ if (parameters != null) {
+ expect(element.parameters, parameters);
+ }
+ if (returnType != null) {
+ expect(element.returnType, returnType);
+ }
+ }
+
void _isEnumConstant(Outline outline, String name) {
Element element = outline.element;
expect(element.kind, ElementKind.ENUM_CONSTANT);
« no previous file with comments | « pkg/analysis_server/lib/src/computer/computer_outline.dart ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698