| OLD | NEW | 
|---|
| 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.src.context.context_test; | 5 library test.src.context.context_test; | 
| 6 | 6 | 
| 7 import 'dart:async'; | 7 import 'dart:async'; | 
| 8 | 8 | 
| 9 import 'package:analyzer/src/cancelable_future.dart'; | 9 import 'package:analyzer/src/cancelable_future.dart'; | 
| 10 import 'package:analyzer/src/context/cache.dart'; | 10 import 'package:analyzer/src/context/cache.dart'; | 
| (...skipping 11 matching lines...) Expand all  Loading... | 
| 22         AnalysisNotScheduledError, | 22         AnalysisNotScheduledError, | 
| 23         AnalysisOptions, | 23         AnalysisOptions, | 
| 24         AnalysisOptionsImpl, | 24         AnalysisOptionsImpl, | 
| 25         AnalysisResult, | 25         AnalysisResult, | 
| 26         CacheState, | 26         CacheState, | 
| 27         ChangeNotice, | 27         ChangeNotice, | 
| 28         ChangeSet, | 28         ChangeSet, | 
| 29         IncrementalAnalysisCache, | 29         IncrementalAnalysisCache, | 
| 30         TimestampedData; | 30         TimestampedData; | 
| 31 import 'package:analyzer/src/generated/error.dart'; | 31 import 'package:analyzer/src/generated/error.dart'; | 
| 32 import 'package:analyzer/src/generated/html.dart' as ht; |  | 
| 33 import 'package:analyzer/src/generated/java_engine.dart'; | 32 import 'package:analyzer/src/generated/java_engine.dart'; | 
| 34 import 'package:analyzer/src/generated/resolver.dart'; | 33 import 'package:analyzer/src/generated/resolver.dart'; | 
| 35 import 'package:analyzer/src/generated/scanner.dart'; | 34 import 'package:analyzer/src/generated/scanner.dart'; | 
| 36 import 'package:analyzer/src/generated/source.dart'; | 35 import 'package:analyzer/src/generated/source.dart'; | 
| 37 import 'package:analyzer/src/task/dart.dart'; | 36 import 'package:analyzer/src/task/dart.dart'; | 
|  | 37 import 'package:analyzer/src/task/html.dart'; | 
| 38 import 'package:analyzer/task/dart.dart'; | 38 import 'package:analyzer/task/dart.dart'; | 
| 39 import 'package:analyzer/task/model.dart'; | 39 import 'package:analyzer/task/model.dart'; | 
| 40 import 'package:html/dom.dart' show Document; | 40 import 'package:html/dom.dart' show Document; | 
| 41 import 'package:unittest/unittest.dart'; | 41 import 'package:unittest/unittest.dart'; | 
| 42 import 'package:watcher/src/utils.dart'; | 42 import 'package:watcher/src/utils.dart'; | 
| 43 | 43 | 
| 44 import '../../generated/engine_test.dart'; | 44 import '../../generated/engine_test.dart'; | 
| 45 import '../../generated/test_support.dart'; | 45 import '../../generated/test_support.dart'; | 
| 46 import '../../reflective_tests.dart'; | 46 import '../../reflective_tests.dart'; | 
| 47 import 'abstract_context.dart'; | 47 import 'abstract_context.dart'; | 
| 48 import 'package:analyzer/src/task/html.dart'; |  | 
| 49 | 48 | 
| 50 main() { | 49 main() { | 
| 51   groupSep = ' | '; | 50   groupSep = ' | '; | 
| 52   runReflectiveTests(AnalysisContextImplTest); | 51   runReflectiveTests(AnalysisContextImplTest); | 
| 53   runReflectiveTests(LimitedInvalidateTest); | 52   runReflectiveTests(LimitedInvalidateTest); | 
| 54 } | 53 } | 
| 55 | 54 | 
| 56 @reflectiveTest | 55 @reflectiveTest | 
| 57 class AnalysisContextImplTest extends AbstractContextTest { | 56 class AnalysisContextImplTest extends AbstractContextTest { | 
| 58   void test_parseHtmlUnit_resolveDirectives() { |  | 
| 59     Source libSource = addSource("/lib.dart", r''' |  | 
| 60 library lib; |  | 
| 61 class ClassA {}'''); |  | 
| 62     Source source = addSource("/lib.html", r''' |  | 
| 63 <!DOCTYPE html> |  | 
| 64 <html> |  | 
| 65 <head> |  | 
| 66   <script type='application/dart'> |  | 
| 67     import 'lib.dart'; |  | 
| 68     ClassA v = null; |  | 
| 69   </script> |  | 
| 70 </head> |  | 
| 71 <body> |  | 
| 72 </body> |  | 
| 73 </html>'''); |  | 
| 74     Document document = context.parseHtmlDocument(source); |  | 
| 75     expect(document, isNotNull); |  | 
| 76     List<DartScript> scripts = context.computeResult(source, DART_SCRIPTS); |  | 
| 77     expect(scripts, hasLength(1)); |  | 
| 78     CompilationUnit unit = context.computeResult(scripts[0], PARSED_UNIT); |  | 
| 79     ImportDirective importNode = unit.directives[0] as ImportDirective; |  | 
| 80     expect(importNode.uriContent, isNotNull); |  | 
| 81     expect(importNode.source, libSource); |  | 
| 82   } |  | 
| 83 |  | 
| 84   void fail_performAnalysisTask_importedLibraryDelete_html() { | 57   void fail_performAnalysisTask_importedLibraryDelete_html() { | 
| 85     // NOTE: This was failing before converting to the new task model. | 58     // NOTE: This was failing before converting to the new task model. | 
| 86     Source htmlSource = addSource("/page.html", r''' | 59     Source htmlSource = addSource("/page.html", r''' | 
| 87 <html><body><script type="application/dart"> | 60 <html><body><script type="application/dart"> | 
| 88   import 'libB.dart'; | 61   import 'libB.dart'; | 
| 89   main() {print('hello dart');} | 62   main() {print('hello dart');} | 
| 90 </script></body></html>'''); | 63 </script></body></html>'''); | 
| 91     Source libBSource = addSource("/libB.dart", "library libB;"); | 64     Source libBSource = addSource("/libB.dart", "library libB;"); | 
| 92     _analyzeAll_assertFinished(); | 65     _analyzeAll_assertFinished(); | 
| 93     context.computeErrors(htmlSource); | 66     context.computeErrors(htmlSource); | 
| 94     expect( | 67     expect( | 
| 95         context.getResolvedCompilationUnit2(libBSource, libBSource), isNotNull, | 68         context.getResolvedCompilationUnit2(libBSource, libBSource), isNotNull, | 
| 96         reason: "libB resolved 1"); | 69         reason: "libB resolved 1"); | 
| 97     expect(!_hasAnalysisErrorWithErrorSeverity(context.getErrors(htmlSource)), | 70     expect(!_hasAnalysisErrorWithErrorSeverity(context.getErrors(htmlSource)), | 
| 98         isTrue, reason: "htmlSource doesn't have errors"); | 71         isTrue, reason: "htmlSource doesn't have errors"); | 
| 99     // remove libB.dart content and analyze | 72     // remove libB.dart content and analyze | 
| 100     context.setContents(libBSource, null); | 73     context.setContents(libBSource, null); | 
| 101     _analyzeAll_assertFinished(); | 74     _analyzeAll_assertFinished(); | 
| 102     context.computeErrors(htmlSource); | 75     context.computeErrors(htmlSource); | 
| 103     AnalysisErrorInfo errors = context.getErrors(htmlSource); | 76     AnalysisErrorInfo errors = context.getErrors(htmlSource); | 
| 104     expect(_hasAnalysisErrorWithErrorSeverity(errors), isTrue, | 77     expect(_hasAnalysisErrorWithErrorSeverity(errors), isTrue, | 
| 105         reason: "htmlSource has an error"); | 78         reason: "htmlSource has an error"); | 
| 106   } | 79   } | 
| 107 | 80 | 
| 108   void fail_recordLibraryElements() { | 81   void fail_recordLibraryElements() { | 
| 109     fail("Implement this"); | 82     fail("Implement this"); | 
| 110   } | 83   } | 
| 111 | 84 | 
| 112   void fail_unreadableSource() { |  | 
| 113     Source test1 = addSource("/test1.dart", r''' |  | 
| 114 import 'test2.dart'; |  | 
| 115 library test1;'''); |  | 
| 116     Source test2 = addSource("/test2.dart", r''' |  | 
| 117 import 'test1.dart'; |  | 
| 118 import 'test3.dart'; |  | 
| 119 library test2;'''); |  | 
| 120     Source test3 = _addSourceWithException("/test3.dart"); |  | 
| 121     _analyzeAll_assertFinished(); |  | 
| 122     // test1 and test2 should have been successfully analyzed |  | 
| 123     // despite the fact that test3 couldn't be read. |  | 
| 124     expect(context.computeLibraryElement(test1), isNotNull); |  | 
| 125     expect(context.computeLibraryElement(test2), isNotNull); |  | 
| 126     expect(context.computeLibraryElement(test3), isNull); |  | 
| 127   } |  | 
| 128 |  | 
| 129   @override | 85   @override | 
| 130   void tearDown() { | 86   void tearDown() { | 
| 131     context = null; | 87     context = null; | 
| 132     sourceFactory = null; | 88     sourceFactory = null; | 
| 133     super.tearDown(); | 89     super.tearDown(); | 
| 134   } | 90   } | 
| 135 | 91 | 
| 136   Future test_applyChanges_add() { | 92   Future test_applyChanges_add() { | 
| 137     SourcesChangedListener listener = new SourcesChangedListener(); | 93     SourcesChangedListener listener = new SourcesChangedListener(); | 
| 138     context.onSourcesChanged.listen(listener.onData); | 94     context.onSourcesChanged.listen(listener.onData); | 
| (...skipping 1154 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 1293       // Expected result | 1249       // Expected result | 
| 1294     } | 1250     } | 
| 1295   } | 1251   } | 
| 1296 | 1252 | 
| 1297   void test_parseHtmlDocument() { | 1253   void test_parseHtmlDocument() { | 
| 1298     Source source = addSource("/lib.html", "<!DOCTYPE html><html></html>"); | 1254     Source source = addSource("/lib.html", "<!DOCTYPE html><html></html>"); | 
| 1299     Document document = context.parseHtmlDocument(source); | 1255     Document document = context.parseHtmlDocument(source); | 
| 1300     expect(document, isNotNull); | 1256     expect(document, isNotNull); | 
| 1301   } | 1257   } | 
| 1302 | 1258 | 
|  | 1259   void test_parseHtmlUnit_resolveDirectives() { | 
|  | 1260     Source libSource = addSource("/lib.dart", r''' | 
|  | 1261 library lib; | 
|  | 1262 class ClassA {}'''); | 
|  | 1263     Source source = addSource("/lib.html", r''' | 
|  | 1264 <!DOCTYPE html> | 
|  | 1265 <html> | 
|  | 1266 <head> | 
|  | 1267   <script type='application/dart'> | 
|  | 1268     import 'lib.dart'; | 
|  | 1269     ClassA v = null; | 
|  | 1270   </script> | 
|  | 1271 </head> | 
|  | 1272 <body> | 
|  | 1273 </body> | 
|  | 1274 </html>'''); | 
|  | 1275     Document document = context.parseHtmlDocument(source); | 
|  | 1276     expect(document, isNotNull); | 
|  | 1277     List<DartScript> scripts = context.computeResult(source, DART_SCRIPTS); | 
|  | 1278     expect(scripts, hasLength(1)); | 
|  | 1279     CompilationUnit unit = context.computeResult(scripts[0], PARSED_UNIT); | 
|  | 1280     ImportDirective importNode = unit.directives[0] as ImportDirective; | 
|  | 1281     expect(importNode.uriContent, isNotNull); | 
|  | 1282     expect(importNode.source, libSource); | 
|  | 1283   } | 
|  | 1284 | 
| 1303   void test_performAnalysisTask_addPart() { | 1285   void test_performAnalysisTask_addPart() { | 
| 1304     Source libSource = addSource("/lib.dart", r''' | 1286     Source libSource = addSource("/lib.dart", r''' | 
| 1305 library lib; | 1287 library lib; | 
| 1306 part 'part.dart';'''); | 1288 part 'part.dart';'''); | 
| 1307     // run all tasks without part | 1289     // run all tasks without part | 
| 1308     _analyzeAll_assertFinished(); | 1290     _analyzeAll_assertFinished(); | 
| 1309     expect(_hasAnalysisErrorWithErrorSeverity(context.getErrors(libSource)), | 1291     expect(_hasAnalysisErrorWithErrorSeverity(context.getErrors(libSource)), | 
| 1310         isTrue, reason: "lib has errors"); | 1292         isTrue, reason: "lib has errors"); | 
| 1311     // add part and run all tasks | 1293     // add part and run all tasks | 
| 1312     Source partSource = addSource("/part.dart", r''' | 1294     Source partSource = addSource("/part.dart", r''' | 
| (...skipping 940 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 2253   } | 2235   } | 
| 2254 } | 2236 } | 
| 2255 | 2237 | 
| 2256 class _AnalysisContextImplTest_test_applyChanges_removeContainer | 2238 class _AnalysisContextImplTest_test_applyChanges_removeContainer | 
| 2257     implements SourceContainer { | 2239     implements SourceContainer { | 
| 2258   Source libB; | 2240   Source libB; | 
| 2259   _AnalysisContextImplTest_test_applyChanges_removeContainer(this.libB); | 2241   _AnalysisContextImplTest_test_applyChanges_removeContainer(this.libB); | 
| 2260   @override | 2242   @override | 
| 2261   bool contains(Source source) => source == libB; | 2243   bool contains(Source source) => source == libB; | 
| 2262 } | 2244 } | 
| OLD | NEW | 
|---|