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

Side by Side Diff: pkg/analysis_server/test/services/search/hierarchy_test.dart

Issue 560133003: Rollback https://codereview.chromium.org/575613002 (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Created 6 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 unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « pkg/analysis_server/test/search/element_references_test.dart ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2014, the Dart project authors. Please see the AUTHORS file 1 // Copyright (c) 2014, the Dart project authors. Please see the AUTHORS file
2 // for details. All rights reserved. Use of this source code is governed by a 2 // for details. All rights reserved. Use of this source code is governed by a
3 // BSD-style license that can be found in the LICENSE file. 3 // BSD-style license that can be found in the LICENSE file.
4 4
5 library test.services.src.search.hierarchy; 5 library test.services.src.search.hierarchy;
6 6
7 import 'dart:async'; 7 import 'dart:async';
8 8
9 import 'package:analysis_server/src/services/index/index.dart'; 9 import 'package:analysis_server/src/services/index/index.dart';
10 import 'package:analysis_server/src/services/index/local_memory_index.dart'; 10 import 'package:analysis_server/src/services/index/local_memory_index.dart';
11 import 'package:analysis_server/src/services/search/hierarchy.dart'; 11 import 'package:analysis_server/src/services/search/hierarchy.dart';
12 import 'package:analysis_server/src/services/search/search_engine_internal.dart' ; 12 import 'package:analysis_server/src/services/search/search_engine_internal.dart' ;
13 import '../../abstract_single_unit.dart';
14 import '../../reflective_tests.dart';
13 import 'package:analyzer/src/generated/element.dart'; 15 import 'package:analyzer/src/generated/element.dart';
14 import 'package:unittest/unittest.dart'; 16 import 'package:unittest/unittest.dart';
15 17
16 import '../../abstract_single_unit.dart';
17 import '../../reflective_tests.dart';
18
19 18
20 main() { 19 main() {
21 groupSep = ' | '; 20 groupSep = ' | ';
22 runReflectiveTests(HierarchyTest); 21 runReflectiveTests(HierarchyTest);
23 } 22 }
24 23
25 24
26 @ReflectiveTestCase() 25 @ReflectiveTestCase()
27 class HierarchyTest extends AbstractSingleUnitTest { 26 class HierarchyTest extends AbstractSingleUnitTest {
28 Index index; 27 Index index;
(...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after
66 A() {} 65 A() {}
67 } 66 }
68 class B extends A { 67 class B extends A {
69 B() {} 68 B() {}
70 } 69 }
71 '''); 70 ''');
72 ClassElement classA = findElement("A"); 71 ClassElement classA = findElement("A");
73 ClassElement classB = findElement("B"); 72 ClassElement classB = findElement("B");
74 ClassMemberElement memberA = classA.constructors[0]; 73 ClassMemberElement memberA = classA.constructors[0];
75 ClassMemberElement memberB = classB.constructors[0]; 74 ClassMemberElement memberB = classB.constructors[0];
76 var futureA = 75 var futureA = getHierarchyMembers(searchEngine, memberA).then((members) {
77 getHierarchyMembers(searchEngine, memberA, false).then((members) {
78 expect(members, unorderedEquals([memberA])); 76 expect(members, unorderedEquals([memberA]));
79 }); 77 });
80 var futureB = 78 var futureB = getHierarchyMembers(searchEngine, memberB).then((members) {
81 getHierarchyMembers(searchEngine, memberB, false).then((members) {
82 expect(members, unorderedEquals([memberB])); 79 expect(members, unorderedEquals([memberB]));
83 }); 80 });
84 return Future.wait([futureA, futureB]); 81 return Future.wait([futureA, futureB]);
85 } 82 }
86 83
87 Future test_getHierarchyMembers_fields() { 84 Future test_getHierarchyMembers_fields() {
88 _indexTestUnit(''' 85 _indexTestUnit('''
89 class A { 86 class A {
90 int foo; 87 int foo;
91 } 88 }
92 class B extends A { 89 class B extends A {
93 get foo => null; 90 get foo => null;
94 } 91 }
95 class C extends B { 92 class C extends B {
96 set foo(x) {} 93 set foo(x) {}
97 } 94 }
98 class D { 95 class D {
99 int foo; 96 int foo;
100 } 97 }
101 '''); 98 ''');
102 ClassElement classA = findElement("A"); 99 ClassElement classA = findElement("A");
103 ClassElement classB = findElement("B"); 100 ClassElement classB = findElement("B");
104 ClassElement classC = findElement("C"); 101 ClassElement classC = findElement("C");
105 ClassElement classD = findElement("D"); 102 ClassElement classD = findElement("D");
106 ClassElement classE = findElement("E"); 103 ClassElement classE = findElement("E");
107 ClassMemberElement memberA = classA.fields[0]; 104 ClassMemberElement memberA = classA.fields[0];
108 ClassMemberElement memberB = classB.fields[0]; 105 ClassMemberElement memberB = classB.fields[0];
109 ClassMemberElement memberC = classC.fields[0]; 106 ClassMemberElement memberC = classC.fields[0];
110 ClassMemberElement memberD = classD.fields[0]; 107 ClassMemberElement memberD = classD.fields[0];
111 var futureA = 108 var futureA = getHierarchyMembers(searchEngine, memberA).then((members) {
112 getHierarchyMembers(searchEngine, memberA, false).then((members) {
113 expect(members, unorderedEquals([memberA, memberB, memberC])); 109 expect(members, unorderedEquals([memberA, memberB, memberC]));
114 }); 110 });
115 var futureB = 111 var futureB = getHierarchyMembers(searchEngine, memberB).then((members) {
116 getHierarchyMembers(searchEngine, memberB, false).then((members) {
117 expect(members, unorderedEquals([memberA, memberB, memberC])); 112 expect(members, unorderedEquals([memberA, memberB, memberC]));
118 }); 113 });
119 var futureC = 114 var futureC = getHierarchyMembers(searchEngine, memberC).then((members) {
120 getHierarchyMembers(searchEngine, memberC, false).then((members) {
121 expect(members, unorderedEquals([memberA, memberB, memberC])); 115 expect(members, unorderedEquals([memberA, memberB, memberC]));
122 }); 116 });
123 var futureD = 117 var futureD = getHierarchyMembers(searchEngine, memberD).then((members) {
124 getHierarchyMembers(searchEngine, memberD, false).then((members) {
125 expect(members, unorderedEquals([memberD])); 118 expect(members, unorderedEquals([memberD]));
126 }); 119 });
127 return Future.wait([futureA, futureB, futureC, futureD]); 120 return Future.wait([futureA, futureB, futureC, futureD]);
128 } 121 }
129 122
130 Future test_getHierarchyMembers_methods() { 123 Future test_getHierarchyMembers_methods() {
131 _indexTestUnit(''' 124 _indexTestUnit('''
132 class A { 125 class A {
133 foo() {} 126 foo() {}
134 } 127 }
(...skipping 13 matching lines...) Expand all
148 ClassElement classA = findElement("A"); 141 ClassElement classA = findElement("A");
149 ClassElement classB = findElement("B"); 142 ClassElement classB = findElement("B");
150 ClassElement classC = findElement("C"); 143 ClassElement classC = findElement("C");
151 ClassElement classD = findElement("D"); 144 ClassElement classD = findElement("D");
152 ClassElement classE = findElement("E"); 145 ClassElement classE = findElement("E");
153 ClassMemberElement memberA = classA.methods[0]; 146 ClassMemberElement memberA = classA.methods[0];
154 ClassMemberElement memberB = classB.methods[0]; 147 ClassMemberElement memberB = classB.methods[0];
155 ClassMemberElement memberC = classC.methods[0]; 148 ClassMemberElement memberC = classC.methods[0];
156 ClassMemberElement memberD = classD.methods[0]; 149 ClassMemberElement memberD = classD.methods[0];
157 ClassMemberElement memberE = classE.methods[0]; 150 ClassMemberElement memberE = classE.methods[0];
158 var futureA = 151 var futureA = getHierarchyMembers(searchEngine, memberA).then((members) {
159 getHierarchyMembers(searchEngine, memberA, false).then((members) {
160 expect(members, unorderedEquals([memberA, memberB, memberC])); 152 expect(members, unorderedEquals([memberA, memberB, memberC]));
161 }); 153 });
162 var futureB = 154 var futureB = getHierarchyMembers(searchEngine, memberB).then((members) {
163 getHierarchyMembers(searchEngine, memberB, false).then((members) {
164 expect(members, unorderedEquals([memberA, memberB, memberC])); 155 expect(members, unorderedEquals([memberA, memberB, memberC]));
165 }); 156 });
166 var futureC = 157 var futureC = getHierarchyMembers(searchEngine, memberC).then((members) {
167 getHierarchyMembers(searchEngine, memberC, false).then((members) {
168 expect(members, unorderedEquals([memberA, memberB, memberC])); 158 expect(members, unorderedEquals([memberA, memberB, memberC]));
169 }); 159 });
170 var futureD = 160 var futureD = getHierarchyMembers(searchEngine, memberD).then((members) {
171 getHierarchyMembers(searchEngine, memberD, false).then((members) {
172 expect(members, unorderedEquals([memberD, memberE])); 161 expect(members, unorderedEquals([memberD, memberE]));
173 }); 162 });
174 var futureE = 163 var futureE = getHierarchyMembers(searchEngine, memberE).then((members) {
175 getHierarchyMembers(searchEngine, memberE, false).then((members) {
176 expect(members, unorderedEquals([memberD, memberE])); 164 expect(members, unorderedEquals([memberD, memberE]));
177 }); 165 });
178 return Future.wait([futureA, futureB, futureC, futureD, futureE]); 166 return Future.wait([futureA, futureB, futureC, futureD, futureE]);
179 } 167 }
180 168
181 Future test_getHierarchyMembers_methods_onlySuper() {
182 _indexTestUnit('''
183 class A {
184 foo() {}
185 }
186 class B extends A {
187 foo() {}
188 }
189 class C extends B {
190 foo() {}
191 }
192 ''');
193 ClassElement classA = findElement("A");
194 ClassElement classB = findElement("B");
195 ClassElement classC = findElement("C");
196 ClassMemberElement memberA = classA.methods[0];
197 ClassMemberElement memberB = classB.methods[0];
198 ClassMemberElement memberC = classC.methods[0];
199 var futureA =
200 getHierarchyMembers(searchEngine, memberA, true).then((members) {
201 expect(members, unorderedEquals([memberA]));
202 });
203 var futureB =
204 getHierarchyMembers(searchEngine, memberB, true).then((members) {
205 expect(members, unorderedEquals([memberA, memberB]));
206 });
207 var futureC =
208 getHierarchyMembers(searchEngine, memberC, true).then((members) {
209 expect(members, unorderedEquals([memberA, memberB, memberC]));
210 });
211 return Future.wait([futureA, futureB, futureC]);
212 }
213
214 Future test_getHierarchyMembers_withInterfaces() { 169 Future test_getHierarchyMembers_withInterfaces() {
215 _indexTestUnit(''' 170 _indexTestUnit('''
216 class A { 171 class A {
217 foo() {} 172 foo() {}
218 } 173 }
219 class B implements A { 174 class B implements A {
220 foo() {} 175 foo() {}
221 } 176 }
222 abstract class C implements A { 177 abstract class C implements A {
223 } 178 }
224 class D extends C { 179 class D extends C {
225 foo() {} 180 foo() {}
226 } 181 }
227 class E { 182 class E {
228 foo() {} 183 foo() {}
229 } 184 }
230 '''); 185 ''');
231 ClassElement classA = findElement("A"); 186 ClassElement classA = findElement("A");
232 ClassElement classB = findElement("B"); 187 ClassElement classB = findElement("B");
233 ClassElement classC = findElement("C"); 188 ClassElement classC = findElement("C");
234 ClassElement classD = findElement("D"); 189 ClassElement classD = findElement("D");
235 ClassElement classE = findElement("E"); 190 ClassElement classE = findElement("E");
236 ClassMemberElement memberA = classA.methods[0]; 191 ClassMemberElement memberA = classA.methods[0];
237 ClassMemberElement memberB = classB.methods[0]; 192 ClassMemberElement memberB = classB.methods[0];
238 ClassMemberElement memberD = classD.methods[0]; 193 ClassMemberElement memberD = classD.methods[0];
239 var futureA = 194 var futureA = getHierarchyMembers(searchEngine, memberA).then((members) {
240 getHierarchyMembers(searchEngine, memberA, false).then((members) {
241 expect(members, unorderedEquals([memberA, memberB, memberD])); 195 expect(members, unorderedEquals([memberA, memberB, memberD]));
242 }); 196 });
243 var futureB = 197 var futureB = getHierarchyMembers(searchEngine, memberB).then((members) {
244 getHierarchyMembers(searchEngine, memberB, false).then((members) {
245 expect(members, unorderedEquals([memberA, memberB, memberD])); 198 expect(members, unorderedEquals([memberA, memberB, memberD]));
246 }); 199 });
247 var futureD = 200 var futureD = getHierarchyMembers(searchEngine, memberD).then((members) {
248 getHierarchyMembers(searchEngine, memberD, false).then((members) {
249 expect(members, unorderedEquals([memberA, memberB, memberD])); 201 expect(members, unorderedEquals([memberA, memberB, memberD]));
250 }); 202 });
251 return Future.wait([futureA, futureB, futureD]); 203 return Future.wait([futureA, futureB, futureD]);
252 } 204 }
253 205
254 void test_getMembers() { 206 void test_getMembers() {
255 _indexTestUnit(''' 207 _indexTestUnit('''
256 class A { 208 class A {
257 A() {} 209 A() {}
258 var ma1; 210 var ma1;
(...skipping 102 matching lines...) Expand 10 before | Expand all | Expand 10 after
361 Set<ClassElement> supers = getSuperClasses(classF); 313 Set<ClassElement> supers = getSuperClasses(classF);
362 expect(supers, unorderedEquals([objectElement, classA])); 314 expect(supers, unorderedEquals([objectElement, classA]));
363 } 315 }
364 } 316 }
365 317
366 void _indexTestUnit(String code) { 318 void _indexTestUnit(String code) {
367 resolveTestUnit(code); 319 resolveTestUnit(code);
368 index.indexUnit(context, testUnit); 320 index.indexUnit(context, testUnit);
369 } 321 }
370 } 322 }
OLDNEW
« no previous file with comments | « pkg/analysis_server/test/search/element_references_test.dart ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698