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

Side by Side Diff: tests/try/poi/serialize_test.dart

Issue 2232273004: Delete site/try (Closed) Base URL: git@github.com:dart-lang/sdk.git@master
Patch Set: Created 4 years, 4 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
OLDNEW
(Empty)
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
3 // BSD-style license that can be found in the LICENSE file.
4
5 /// Test that poi.dart can serialize a scope.
6
7 library trydart.serialize_test;
8
9 import 'dart:io' show
10 Platform;
11
12 import 'dart:async' show
13 Future;
14
15 import 'dart:convert' show
16 JSON;
17
18 import 'package:try/poi/poi.dart' as poi;
19
20 import 'package:async_helper/async_helper.dart';
21
22 import 'package:expect/expect.dart';
23
24 import 'package:compiler/src/elements/elements.dart' show
25 Element;
26
27 import 'package:compiler/src/source_file_provider.dart' show
28 FormattingDiagnosticHandler;
29
30 Future testInteresting() {
31 poi.cachedCompiler = null;
32 Uri script = Platform.script.resolve('data/interesting.dart');
33 FormattingDiagnosticHandler handler = new FormattingDiagnosticHandler();
34
35 int position = 263;
36
37 Future future = poi.runPoi(script, position, handler.provider, handler);
38 return future.then((Element element) {
39 Uri foundScript = element.compilationUnit.script.resourceUri;
40 Expect.stringEquals('$script', '$foundScript');
41 Expect.stringEquals('fisk', element.name);
42
43 String scope = poi.scopeInformation(element, position);
44 Expect.stringEquals(
45 JSON.encode(expectedInteresting), JSON.encode(JSON.decode(scope)),
46 scope);
47 return testSubclass(handler);
48 });
49 }
50
51 Future testSubclass(FormattingDiagnosticHandler handler) {
52 poi.cachedCompiler = null;
53 int position = 506;
54
55 Uri script = Platform.script.resolve('data/subclass.dart');
56
57 Future future = poi.runPoi(script, position, handler.provider, handler);
58 return future.then((Element element) {
59 Uri foundScript = element.compilationUnit.script.resourceUri;
60 Expect.stringEquals('$script', '$foundScript');
61 Expect.stringEquals('instanceMethod2', element.name);
62
63 String scope = poi.scopeInformation(element, position);
64 Expect.stringEquals(
65 JSON.encode(expectedSubclass), JSON.encode(JSON.decode(scope)), scope);
66
67 return testAbstractField(handler);
68 });
69 }
70
71 Future testAbstractField(FormattingDiagnosticHandler handler) {
72 poi.cachedCompiler = null;
73 int position = 321;
74
75 Uri script = Platform.script.resolve('data/abstract_field.dart');
76
77 Future future = poi.runPoi(script, position, handler.provider, handler);
78 return future.then((Element element) {
79 Uri foundScript = element.compilationUnit.script.resourceUri;
80 Expect.stringEquals('$script', '$foundScript');
81 Expect.stringEquals('method', element.name);
82
83 String scope = poi.scopeInformation(element, position);
84 Expect.stringEquals(
85 JSON.encode(expectedAbstractField), JSON.encode(JSON.decode(scope)),
86 scope);
87 });
88 }
89
90 void main() {
91 asyncTest(testInteresting);
92 }
93
94 final expectedInteresting = {
95 "name": "fisk",
96 "kind": "function",
97 "type": "() -> dynamic",
98 "enclosing": {
99 "name": "Foo",
100 "kind": "class side",
101 "members": [
102 {
103 "kind": "generative_constructor",
104 "type": "() -> Foo"
105 }
106 ],
107 "enclosing": {
108 "name": "Foo",
109 "kind": "instance side",
110 "members": [
111 {
112 "name": "fisk",
113 "kind": "function",
114 "type": "() -> dynamic"
115 },
116 {
117 "name": "hest",
118 "kind": "function",
119 "type": "() -> dynamic"
120 },
121 ],
122 "enclosing": {
123 "name": "interesting",
124 "kind": "library",
125 "members": [
126 {
127 "name": "Foo",
128 "kind": "class"
129 },
130 {
131 "name": "main",
132 "kind": "function",
133 "type": "() -> dynamic"
134 }
135 ],
136 "enclosing": {
137 "kind": "imports",
138 "members": coreImports,
139 "enclosing": object,
140 }
141 }
142 }
143 }
144 };
145
146 final expectedSubclass = {
147 "name": "instanceMethod2",
148 "kind": "function",
149 "type": "() -> dynamic",
150 "enclosing": {
151 "name": "C",
152 "kind": "class side",
153 "members": [
154 {
155 "name": "staticMethod1",
156 "kind": "function",
157 "type": "() -> dynamic"
158 },
159 {
160 "name": "staticMethod2",
161 "kind": "function",
162 "type": "() -> dynamic"
163 },
164 {
165 "kind": "generative_constructor",
166 "type": "() -> C"
167 }
168 ],
169 "enclosing": {
170 "name": "C",
171 "kind": "instance side",
172 "members": [
173 {
174 "name": "instanceMethod1",
175 "kind": "function",
176 "type": "() -> dynamic"
177 },
178 {
179 "name": "instanceMethod2",
180 "kind": "function",
181 "type": "() -> dynamic"
182 }
183 ],
184 "enclosing": {
185 "name": "subclass",
186 "kind": "library",
187 "members": [
188 {
189 "name": "S",
190 "kind": "class"
191 },
192 {
193 "name": "C",
194 "kind": "class"
195 },
196 {
197 "name": "main",
198 "kind": "function",
199 "type": "() -> dynamic"
200 },
201 {
202 "name": "p",
203 "kind": "prefix"
204 }
205 ],
206 "enclosing": {
207 "kind": "imports",
208 "members": [
209 {
210 "name": "Foo",
211 "kind": "class"
212 },
213 {
214 "name": "main",
215 "kind": "function",
216 "type": "() -> dynamic"
217 },
218 ]..addAll(coreImports),
219 "enclosing": {
220 "name": "S",
221 "kind": "instance side",
222 "members": [
223 {
224 "name": "superMethod1",
225 "kind": "function",
226 "type": "() -> dynamic"
227 },
228 {
229 "name": "superMethod2",
230 "kind": "function",
231 "type": "() -> dynamic"
232 },
233 ],
234 "enclosing": {
235 "name": "P",
236 "kind": "instance side",
237 "members": [
238 {
239 "name": "pMethod1",
240 "kind": "function",
241 "type": "() -> dynamic"
242 },
243 {
244 "name": "pMethod2",
245 "kind": "function",
246 "type": "() -> dynamic"
247 },
248 {
249 "name": "_pMethod1",
250 "kind": "function",
251 "type": "() -> dynamic"
252 },
253 {
254 "name": "_pMethod2",
255 "kind": "function",
256 "type": "() -> dynamic"
257 },
258 ],
259 "enclosing": object,
260 }
261 }
262 }
263 }
264 }
265 }
266 };
267
268 final expectedAbstractField = {
269 "name": "method",
270 "kind": "function",
271 "type": "() -> dynamic",
272 "enclosing": {
273 "name": "A",
274 "kind": "class side",
275 "members": [
276 {
277 "kind": "generative_constructor",
278 "type": "() -> A"
279 }
280 ],
281 "enclosing": {
282 "name": "A",
283 "kind": "instance side",
284 "members": [
285 {
286 "name": "foo",
287 "kind": "getter"
288 },
289 {
290 "name": "foo",
291 "kind": "setter"
292 },
293 {
294 "name": "method",
295 "kind": "function",
296 "type": "() -> dynamic"
297 }
298 ],
299 "enclosing": {
300 "name": "abstract_field",
301 "kind": "library",
302 "members": [
303 {
304 "name": "A",
305 "kind": "class"
306 },
307 {
308 "name": "bar",
309 "kind": "getter"
310 },
311 {
312 "name": "bar",
313 "kind": "getter"
314 },
315 {
316 "name": "main",
317 "kind": "function",
318 "type": "() -> dynamic"
319 }
320 ],
321 "enclosing": {
322 "kind": "imports",
323 "members": coreImports,
324 "enclosing": object
325 },
326 },
327 },
328 },
329 };
330
331 final coreImports = [
332 {
333 "name": "Deprecated",
334 "kind": "class"
335 },
336 {
337 "name": "deprecated",
338 "kind": "field",
339 "type": "Deprecated"
340 },
341 {
342 "name": "override",
343 "kind": "field",
344 "type": "Object"
345 },
346 {
347 "name": "proxy",
348 "kind": "field",
349 "type": "Object"
350 },
351 {
352 "name": "bool",
353 "kind": "class"
354 },
355 {
356 "name": "Comparator",
357 "kind": "typedef"
358 },
359 {
360 "name": "Comparable",
361 "kind": "class"
362 },
363 {
364 "name": "DateTime",
365 "kind": "class"
366 },
367 {
368 "name": "double",
369 "kind": "class"
370 },
371 {
372 "name": "Duration",
373 "kind": "class"
374 },
375 {
376 "name": "Error",
377 "kind": "class"
378 },
379 {
380 "name": "AssertionError",
381 "kind": "class"
382 },
383 {
384 "name": "TypeError",
385 "kind": "class"
386 },
387 {
388 "name": "CastError",
389 "kind": "class"
390 },
391 {
392 "name": "NullThrownError",
393 "kind": "class"
394 },
395 {
396 "name": "ArgumentError",
397 "kind": "class"
398 },
399 {
400 "name": "RangeError",
401 "kind": "class"
402 },
403 {
404 "name": "IndexError",
405 "kind": "class"
406 },
407 {
408 "name": "FallThroughError",
409 "kind": "class"
410 },
411 {
412 "name": "AbstractClassInstantiationError",
413 "kind": "class"
414 },
415 {
416 "name": "NoSuchMethodError",
417 "kind": "class"
418 },
419 {
420 "name": "UnsupportedError",
421 "kind": "class"
422 },
423 {
424 "name": "UnimplementedError",
425 "kind": "class"
426 },
427 {
428 "name": "StateError",
429 "kind": "class"
430 },
431 {
432 "name": "ConcurrentModificationError",
433 "kind": "class"
434 },
435 {
436 "name": "OutOfMemoryError",
437 "kind": "class"
438 },
439 {
440 "name": "StackOverflowError",
441 "kind": "class"
442 },
443 {
444 "name": "CyclicInitializationError",
445 "kind": "class"
446 },
447 {
448 "name": "Exception",
449 "kind": "class"
450 },
451 {
452 "name": "FormatException",
453 "kind": "class"
454 },
455 {
456 "name": "IntegerDivisionByZeroException",
457 "kind": "class"
458 },
459 {
460 "name": "Expando",
461 "kind": "class"
462 },
463 {
464 "name": "Function",
465 "kind": "class"
466 },
467 {
468 "name": "identical",
469 "kind": "function",
470 "type": "(Object, Object) -> bool"
471 },
472 {
473 "name": "identityHashCode",
474 "kind": "function",
475 "type": "(Object) -> int"
476 },
477 {
478 "name": "int",
479 "kind": "class"
480 },
481 {
482 "name": "Invocation",
483 "kind": "class"
484 },
485 {
486 "name": "Iterable",
487 "kind": "class"
488 },
489 {
490 "name": "BidirectionalIterator",
491 "kind": "class"
492 },
493 {
494 "name": "Iterator",
495 "kind": "class"
496 },
497 {
498 "name": "List",
499 "kind": "class"
500 },
501 {
502 "name": "Map",
503 "kind": "class"
504 },
505 {
506 "name": "Null",
507 "kind": "class"
508 },
509 {
510 "name": "num",
511 "kind": "class"
512 },
513 {
514 "name": "Object",
515 "kind": "class"
516 },
517 {
518 "name": "Pattern",
519 "kind": "class"
520 },
521 {
522 "name": "Match",
523 "kind": "class"
524 },
525 {
526 "name": "print",
527 "kind": "function",
528 "type": "(Object) -> void"
529 },
530 {
531 "name": "RegExp",
532 "kind": "class"
533 },
534 {
535 "name": "Resource",
536 "kind": "class"
537 },
538 {
539 "name": "Set",
540 "kind": "class"
541 },
542 {
543 "name": "Sink",
544 "kind": "class"
545 },
546 {
547 "name": "StackTrace",
548 "kind": "class"
549 },
550 {
551 "name": "Stopwatch",
552 "kind": "class"
553 },
554 {
555 "name": "String",
556 "kind": "class"
557 },
558 {
559 "name": "Runes",
560 "kind": "class"
561 },
562 {
563 "name": "RuneIterator",
564 "kind": "class"
565 },
566 {
567 "name": "StringBuffer",
568 "kind": "class"
569 },
570 {
571 "name": "StringSink",
572 "kind": "class"
573 },
574 {
575 "name": "Symbol",
576 "kind": "class"
577 },
578 {
579 "name": "Type",
580 "kind": "class"
581 },
582 {
583 "name": "Uri",
584 "kind": "class"
585 },
586 {
587 "name": "UriData",
588 "kind": "class"
589 }
590 ];
591
592 final object = {
593 "name": "Object",
594 "kind": "instance side",
595 "members": [
596 {
597 "name": "==",
598 "kind": "function",
599 "type": "(dynamic) -> bool"
600 },
601 {
602 "name": "hashCode",
603 "kind": "getter"
604 },
605 {
606 "name": "toString",
607 "kind": "function",
608 "type": "() -> String"
609 },
610 {
611 "name": "noSuchMethod",
612 "kind": "function",
613 "type": "(Invocation) -> dynamic"
614 },
615 {
616 "name": "runtimeType",
617 "kind": "getter"
618 }
619 ]
620 };
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698