| Index: pkg/analyzer/test/src/context/context_test.dart
|
| diff --git a/pkg/analyzer/test/src/context/context_test.dart b/pkg/analyzer/test/src/context/context_test.dart
|
| index e670075dcda35a3cbc7db1452077b99bc0256603..865ef8bb9bf3fa2643ec6479faf241226137885d 100644
|
| --- a/pkg/analyzer/test/src/context/context_test.dart
|
| +++ b/pkg/analyzer/test/src/context/context_test.dart
|
| @@ -54,11 +54,6 @@ main() {
|
|
|
| @reflectiveTest
|
| class AnalysisContextImplTest extends AbstractContextTest {
|
| - void test_applyChanges_empty() {
|
| - context.applyChanges(new ChangeSet());
|
| - expect(context.performAnalysisTask().changeNotices, isNull);
|
| - }
|
| -
|
| void fail_parseHtmlUnit_resolveDirectives() {
|
| Source libSource = addSource("/lib.dart", r'''
|
| library lib;
|
| @@ -98,30 +93,6 @@ class ClassA {}''');
|
| expect(importNode.source, libSource);
|
| }
|
|
|
| - void test_performAnalysisTask_getContentException_dart() {
|
| - Source source = _addSourceWithException('test.dart');
|
| - // prepare errors
|
| - _analyzeAll_assertFinished();
|
| - List<AnalysisError> errors = context.getErrors(source).errors;
|
| - // validate errors
|
| - expect(errors, hasLength(1));
|
| - AnalysisError error = errors[0];
|
| - expect(error.source, same(source));
|
| - expect(error.errorCode, ScannerErrorCode.UNABLE_GET_CONTENT);
|
| - }
|
| -
|
| - void test_performAnalysisTask_getContentException_html() {
|
| - Source source = _addSourceWithException('test.html');
|
| - // prepare errors
|
| - _analyzeAll_assertFinished();
|
| - List<AnalysisError> errors = context.getErrors(source).errors;
|
| - // validate errors
|
| - expect(errors, hasLength(1));
|
| - AnalysisError error = errors[0];
|
| - expect(error.source, same(source));
|
| - expect(error.errorCode, ScannerErrorCode.UNABLE_GET_CONTENT);
|
| - }
|
| -
|
| void fail_performAnalysisTask_importedLibraryDelete_html() {
|
| // NOTE: This was failing before converting to the new task model.
|
| Source htmlSource = addSource("/page.html", r'''
|
| @@ -146,89 +117,10 @@ class ClassA {}''');
|
| reason: "htmlSource has an error");
|
| }
|
|
|
| - void test_performAnalysisTask_IOException() {
|
| - TestSource source = _addSourceWithException2("/test.dart", "library test;");
|
| - source.generateExceptionOnRead = false;
|
| - _analyzeAll_assertFinished();
|
| - expect(source.readCount, 1);
|
| - _changeSource(source, "");
|
| - source.generateExceptionOnRead = true;
|
| - _analyzeAll_assertFinished();
|
| - expect(source.readCount, 3);
|
| - }
|
| -
|
| void fail_recordLibraryElements() {
|
| fail("Implement this");
|
| }
|
|
|
| - void fail_setAnalysisOptions_reduceAnalysisPriorityOrder() {
|
| - AnalysisOptionsImpl options =
|
| - new AnalysisOptionsImpl.from(context.analysisOptions);
|
| - List<Source> sources = new List<Source>();
|
| - for (int index = 0; index < options.cacheSize; index++) {
|
| - sources.add(addSource("/lib.dart$index", ""));
|
| - }
|
| - context.analysisPriorityOrder = sources;
|
| - int oldPriorityOrderSize = _getPriorityOrder(context).length;
|
| - options.cacheSize = options.cacheSize - 10;
|
| - context.analysisOptions = options;
|
| - expect(oldPriorityOrderSize > _getPriorityOrder(context).length, isTrue);
|
| - }
|
| -
|
| - void fail_setAnalysisPriorityOrder_lessThanCacheSize() {
|
| - AnalysisOptions options = context.analysisOptions;
|
| - List<Source> sources = new List<Source>();
|
| - for (int index = 0; index < options.cacheSize; index++) {
|
| - sources.add(addSource("/lib.dart$index", ""));
|
| - }
|
| - context.analysisPriorityOrder = sources;
|
| - expect(options.cacheSize > _getPriorityOrder(context).length, isTrue);
|
| - }
|
| -
|
| - Future fail_setChangedContents_libraryWithPart() {
|
| - AnalysisOptionsImpl options = new AnalysisOptionsImpl();
|
| - options.incremental = true;
|
| - context.analysisOptions = options;
|
| - SourcesChangedListener listener = new SourcesChangedListener();
|
| - context.onSourcesChanged.listen(listener.onData);
|
| - String oldCode = r'''
|
| -library lib;
|
| -part 'part.dart';
|
| -int a = 0;''';
|
| - Source librarySource = addSource("/lib.dart", oldCode);
|
| - String partContents = r'''
|
| -part of lib;
|
| -int b = a;''';
|
| - Source partSource = addSource("/part.dart", partContents);
|
| - LibraryElement element = context.computeLibraryElement(librarySource);
|
| - CompilationUnit unit =
|
| - context.getResolvedCompilationUnit(librarySource, element);
|
| - expect(unit, isNotNull);
|
| - int offset = oldCode.indexOf("int a") + 4;
|
| - String newCode = r'''
|
| -library lib;
|
| -part 'part.dart';
|
| -int ya = 0;''';
|
| - expect(_getIncrementalAnalysisCache(context), isNull);
|
| - context.setChangedContents(librarySource, newCode, offset, 0, 1);
|
| - expect(context.getContents(librarySource).data, newCode);
|
| - IncrementalAnalysisCache incrementalCache =
|
| - _getIncrementalAnalysisCache(context);
|
| - expect(incrementalCache.librarySource, librarySource);
|
| - expect(incrementalCache.resolvedUnit, same(unit));
|
| - expect(
|
| - context.getResolvedCompilationUnit2(partSource, librarySource), isNull);
|
| - expect(incrementalCache.newContents, newCode);
|
| - return pumpEventQueue().then((_) {
|
| - listener.assertEvent(wereSourcesAdded: true);
|
| - listener.assertEvent(changedSources: [librarySource]);
|
| - listener.assertEvent(wereSourcesAdded: true);
|
| - listener.assertEvent(changedSources: [partSource]);
|
| - listener.assertEvent(changedSources: [librarySource]);
|
| - listener.assertNoMoreEvents();
|
| - });
|
| - }
|
| -
|
| void fail_unreadableSource() {
|
| Source test1 = addSource("/test1.dart", r'''
|
| import 'test2.dart';
|
| @@ -389,6 +281,11 @@ int b = aa;''';
|
| });
|
| }
|
|
|
| + void test_applyChanges_empty() {
|
| + context.applyChanges(new ChangeSet());
|
| + expect(context.performAnalysisTask().changeNotices, isNull);
|
| + }
|
| +
|
| void test_applyChanges_overriddenSource() {
|
| // Note: addSource adds the source to the contentCache.
|
| Source source = addSource("/test.dart", "library test;");
|
| @@ -1597,6 +1494,30 @@ void g() { f(null); }''');
|
| reason: "part resolved 3");
|
| }
|
|
|
| + void test_performAnalysisTask_getContentException_dart() {
|
| + Source source = _addSourceWithException('test.dart');
|
| + // prepare errors
|
| + _analyzeAll_assertFinished();
|
| + List<AnalysisError> errors = context.getErrors(source).errors;
|
| + // validate errors
|
| + expect(errors, hasLength(1));
|
| + AnalysisError error = errors[0];
|
| + expect(error.source, same(source));
|
| + expect(error.errorCode, ScannerErrorCode.UNABLE_GET_CONTENT);
|
| + }
|
| +
|
| + void test_performAnalysisTask_getContentException_html() {
|
| + Source source = _addSourceWithException('test.html');
|
| + // prepare errors
|
| + _analyzeAll_assertFinished();
|
| + List<AnalysisError> errors = context.getErrors(source).errors;
|
| + // validate errors
|
| + expect(errors, hasLength(1));
|
| + AnalysisError error = errors[0];
|
| + expect(error.source, same(source));
|
| + expect(error.errorCode, ScannerErrorCode.UNABLE_GET_CONTENT);
|
| + }
|
| +
|
| void test_performAnalysisTask_importedLibraryAdd() {
|
| Source libASource =
|
| addSource("/libA.dart", "library libA; import 'libB.dart';");
|
| @@ -1667,6 +1588,17 @@ void g() { f(null); }''');
|
| isTrue, reason: "libA has an error");
|
| }
|
|
|
| + void test_performAnalysisTask_IOException() {
|
| + TestSource source = _addSourceWithException2("/test.dart", "library test;");
|
| + source.generateExceptionOnRead = false;
|
| + _analyzeAll_assertFinished();
|
| + expect(source.readCount, 1);
|
| + _changeSource(source, "");
|
| + source.generateExceptionOnRead = true;
|
| + _analyzeAll_assertFinished();
|
| + expect(source.readCount, 3);
|
| + }
|
| +
|
| void test_performAnalysisTask_missingPart() {
|
| Source source =
|
| addSource("/test.dart", "library lib; part 'no-such-file.dart';");
|
| @@ -1723,17 +1655,6 @@ void g() { f(null); }''');
|
| expect(resolvedUnitUris, contains('file:///test.dart'));
|
| }
|
|
|
| -// void test_resolveCompilationUnit_sourceChangeDuringResolution() {
|
| -// _context = new _AnalysisContext_sourceChangeDuringResolution();
|
| -// AnalysisContextFactory.initContextWithCore(_context);
|
| -// _sourceFactory = _context.sourceFactory;
|
| -// Source source = _addSource("/lib.dart", "library lib;");
|
| -// CompilationUnit compilationUnit =
|
| -// _context.resolveCompilationUnit2(source, source);
|
| -// expect(compilationUnit, isNotNull);
|
| -// expect(_context.getLineInfo(source), isNotNull);
|
| -// }
|
| -
|
| void test_resolveCompilationUnit_import_relative() {
|
| Source sourceA =
|
| addSource("/libA.dart", "library libA; import 'libB.dart'; class A{}");
|
| @@ -1774,6 +1695,17 @@ void g() { f(null); }''');
|
| ]);
|
| }
|
|
|
| +// void test_resolveCompilationUnit_sourceChangeDuringResolution() {
|
| +// _context = new _AnalysisContext_sourceChangeDuringResolution();
|
| +// AnalysisContextFactory.initContextWithCore(_context);
|
| +// _sourceFactory = _context.sourceFactory;
|
| +// Source source = _addSource("/lib.dart", "library lib;");
|
| +// CompilationUnit compilationUnit =
|
| +// _context.resolveCompilationUnit2(source, source);
|
| +// expect(compilationUnit, isNotNull);
|
| +// expect(_context.getLineInfo(source), isNotNull);
|
| +// }
|
| +
|
| void test_resolveCompilationUnit_library() {
|
| Source source = addSource("/lib.dart", "library lib;");
|
| LibraryElement library = context.computeLibraryElement(source);
|
| @@ -1802,6 +1734,16 @@ void g() { f(null); }''');
|
| expect(result.hint, options.hint);
|
| }
|
|
|
| + void test_setAnalysisPriorityOrder() {
|
| + int priorityCount = 4;
|
| + List<Source> sources = new List<Source>();
|
| + for (int index = 0; index < priorityCount; index++) {
|
| + sources.add(addSource("/lib.dart$index", ""));
|
| + }
|
| + context.analysisPriorityOrder = sources;
|
| + expect(_getPriorityOrder(context).length, priorityCount);
|
| + }
|
| +
|
| void test_setAnalysisPriorityOrder_empty() {
|
| context.analysisPriorityOrder = new List<Source>();
|
| }
|
| @@ -1812,6 +1754,42 @@ void g() { f(null); }''');
|
| context.analysisPriorityOrder = sources;
|
| }
|
|
|
| + Future test_setChangedContents_libraryWithPart() {
|
| + AnalysisOptionsImpl options = new AnalysisOptionsImpl();
|
| + options.incremental = true;
|
| + context.analysisOptions = options;
|
| + SourcesChangedListener listener = new SourcesChangedListener();
|
| + context.onSourcesChanged.listen(listener.onData);
|
| + String oldCode = r'''
|
| +library lib;
|
| +part 'part.dart';
|
| +int a = 0;''';
|
| + Source librarySource = addSource("/lib.dart", oldCode);
|
| + String partContents = r'''
|
| +part of lib;
|
| +int b = a;''';
|
| + Source partSource = addSource("/part.dart", partContents);
|
| + LibraryElement element = context.computeLibraryElement(librarySource);
|
| + CompilationUnit unit =
|
| + context.resolveCompilationUnit(librarySource, element);
|
| + expect(unit, isNotNull);
|
| + int offset = oldCode.indexOf("int a") + 4;
|
| + String newCode = r'''
|
| +library lib;
|
| +part 'part.dart';
|
| +int ya = 0;''';
|
| + context.setChangedContents(librarySource, newCode, offset, 0, 1);
|
| + expect(context.getContents(librarySource).data, newCode);
|
| + expect(
|
| + context.getResolvedCompilationUnit2(partSource, librarySource), isNull);
|
| + return pumpEventQueue().then((_) {
|
| + listener.assertEvent(wereSourcesAdded: true);
|
| + listener.assertEvent(wereSourcesAdded: true);
|
| + listener.assertEvent(changedSources: [librarySource]);
|
| + listener.assertNoMoreEvents();
|
| + });
|
| + }
|
| +
|
| void test_setChangedContents_notResolved() {
|
| AnalysisOptionsImpl options =
|
| new AnalysisOptionsImpl.from(context.analysisOptions);
|
| @@ -1827,7 +1805,6 @@ library lib;
|
| int ya = 0;''';
|
| context.setChangedContents(librarySource, newCode, offset, 0, 1);
|
| expect(context.getContents(librarySource).data, newCode);
|
| - expect(_getIncrementalAnalysisCache(context), isNull);
|
| }
|
|
|
| Future test_setContents_libraryWithPart() {
|
| @@ -1843,10 +1820,6 @@ part of lib;
|
| int b = a;''';
|
| Source partSource = addSource("/part.dart", partContents1);
|
| context.computeLibraryElement(librarySource);
|
| - IncrementalAnalysisCache incrementalCache = new IncrementalAnalysisCache(
|
| - librarySource, librarySource, null, null, null, 0, 0, 0);
|
| - _setIncrementalAnalysisCache(context, incrementalCache);
|
| - expect(_getIncrementalAnalysisCache(context), same(incrementalCache));
|
| String libraryContents2 = r'''
|
| library lib;
|
| part 'part.dart';
|
| @@ -1854,7 +1827,6 @@ int aa = 0;''';
|
| context.setContents(librarySource, libraryContents2);
|
| expect(
|
| context.getResolvedCompilationUnit2(partSource, librarySource), isNull);
|
| - expect(_getIncrementalAnalysisCache(context), isNull);
|
| return pumpEventQueue().then((_) {
|
| listener.assertEvent(wereSourcesAdded: true);
|
| listener.assertEvent(wereSourcesAdded: true);
|
| @@ -1869,14 +1841,9 @@ library lib;
|
| int a = 0;''');
|
| context.setContents(librarySource, '// different');
|
| context.computeLibraryElement(librarySource);
|
| - IncrementalAnalysisCache incrementalCache = new IncrementalAnalysisCache(
|
| - librarySource, librarySource, null, null, null, 0, 0, 0);
|
| - _setIncrementalAnalysisCache(context, incrementalCache);
|
| - expect(_getIncrementalAnalysisCache(context), same(incrementalCache));
|
| context.setContents(librarySource, null);
|
| expect(context.getResolvedCompilationUnit2(librarySource, librarySource),
|
| isNull);
|
| - expect(_getIncrementalAnalysisCache(context), isNull);
|
| }
|
|
|
| void test_setContents_unchanged_consistentModificationTime() {
|
| @@ -2003,11 +1970,6 @@ int a = 0;''');
|
| entry.setState(RESOLVED_UNIT, CacheState.FLUSHED);
|
| }
|
|
|
| - IncrementalAnalysisCache _getIncrementalAnalysisCache(
|
| - AnalysisContextImpl context2) {
|
| - return context2.test_incrementalAnalysisCache;
|
| - }
|
| -
|
| List<Source> _getPriorityOrder(AnalysisContextImpl context2) {
|
| return context2.test_priorityOrder;
|
| }
|
| @@ -2027,11 +1989,6 @@ int a = 0;''');
|
| context.applyChanges(changeSet);
|
| }
|
|
|
| - void _setIncrementalAnalysisCache(
|
| - AnalysisContextImpl context, IncrementalAnalysisCache incrementalCache) {
|
| - context.test_incrementalAnalysisCache = incrementalCache;
|
| - }
|
| -
|
| /**
|
| * Returns `true` if there is an [AnalysisError] with [ErrorSeverity.ERROR] in
|
| * the given [AnalysisErrorInfo].
|
|
|