OLD | NEW |
1 // Copyright (c) 2015, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2015, 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 analyzer.test.src.task.dart_test; | 5 library analyzer.test.src.task.dart_test; |
6 | 6 |
| 7 import 'package:analyzer/dart/ast/ast.dart'; |
| 8 import 'package:analyzer/dart/ast/visitor.dart'; |
7 import 'package:analyzer/dart/element/element.dart'; | 9 import 'package:analyzer/dart/element/element.dart'; |
8 import 'package:analyzer/dart/element/type.dart'; | 10 import 'package:analyzer/dart/element/type.dart'; |
9 import 'package:analyzer/src/context/cache.dart'; | 11 import 'package:analyzer/src/context/cache.dart'; |
10 import 'package:analyzer/src/dart/element/element.dart'; | 12 import 'package:analyzer/src/dart/element/element.dart'; |
11 import 'package:analyzer/src/generated/ast.dart'; | |
12 import 'package:analyzer/src/generated/constant.dart'; | 13 import 'package:analyzer/src/generated/constant.dart'; |
13 import 'package:analyzer/src/generated/engine.dart' | 14 import 'package:analyzer/src/generated/engine.dart' |
14 show AnalysisOptions, AnalysisOptionsImpl, CacheState; | 15 show AnalysisOptions, AnalysisOptionsImpl, CacheState; |
15 import 'package:analyzer/src/generated/error.dart'; | 16 import 'package:analyzer/src/generated/error.dart'; |
16 import 'package:analyzer/src/generated/resolver.dart'; | 17 import 'package:analyzer/src/generated/resolver.dart'; |
17 import 'package:analyzer/src/generated/scanner.dart'; | 18 import 'package:analyzer/src/generated/scanner.dart'; |
18 import 'package:analyzer/src/generated/sdk.dart'; | 19 import 'package:analyzer/src/generated/sdk.dart'; |
19 import 'package:analyzer/src/generated/source.dart'; | 20 import 'package:analyzer/src/generated/source.dart'; |
20 import 'package:analyzer/src/services/lint.dart'; | 21 import 'package:analyzer/src/services/lint.dart'; |
21 import 'package:analyzer/src/task/dart.dart'; | 22 import 'package:analyzer/src/task/dart.dart'; |
(...skipping 2992 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
3014 expect(outputs[EXPORTED_LIBRARIES], hasLength(0)); | 3015 expect(outputs[EXPORTED_LIBRARIES], hasLength(0)); |
3015 _assertHasCore(outputs[IMPORTED_LIBRARIES], 1); | 3016 _assertHasCore(outputs[IMPORTED_LIBRARIES], 1); |
3016 expect(outputs[INCLUDED_PARTS], hasLength(0)); | 3017 expect(outputs[INCLUDED_PARTS], hasLength(0)); |
3017 expect(outputs[LIBRARY_SPECIFIC_UNITS], hasLength(1)); | 3018 expect(outputs[LIBRARY_SPECIFIC_UNITS], hasLength(1)); |
3018 expect(outputs[PARSE_ERRORS], hasLength(0)); | 3019 expect(outputs[PARSE_ERRORS], hasLength(0)); |
3019 expect(outputs[PARSED_UNIT], isNotNull); | 3020 expect(outputs[PARSED_UNIT], isNotNull); |
3020 expect(outputs[SOURCE_KIND], SourceKind.PART); | 3021 expect(outputs[SOURCE_KIND], SourceKind.PART); |
3021 expect(outputs[UNITS], hasLength(1)); | 3022 expect(outputs[UNITS], hasLength(1)); |
3022 } | 3023 } |
3023 | 3024 |
| 3025 test_perform_computeSourceKind_noDirectives_hasContainingLibrary() { |
| 3026 // Parse "lib.dart" to let the context know that "test.dart" is included. |
| 3027 computeResult( |
| 3028 newSource( |
| 3029 '/lib.dart', |
| 3030 r''' |
| 3031 library lib; |
| 3032 part 'test.dart'; |
| 3033 '''), |
| 3034 PARSED_UNIT); |
| 3035 // If there are no the "part of" directive, then it is not a part. |
| 3036 _performParseTask(''); |
| 3037 expect(outputs[SOURCE_KIND], SourceKind.LIBRARY); |
| 3038 } |
| 3039 |
| 3040 test_perform_computeSourceKind_noDirectives_noContainingLibrary() { |
| 3041 _performParseTask(''); |
| 3042 expect(outputs[SOURCE_KIND], SourceKind.LIBRARY); |
| 3043 } |
| 3044 |
| 3045 test_perform_doesNotExist() { |
| 3046 _performParseTask(null); |
| 3047 expect(outputs, hasLength(9)); |
| 3048 expect(outputs[EXPLICITLY_IMPORTED_LIBRARIES], hasLength(0)); |
| 3049 expect(outputs[EXPORTED_LIBRARIES], hasLength(0)); |
| 3050 _assertHasCore(outputs[IMPORTED_LIBRARIES], 1); |
| 3051 expect(outputs[INCLUDED_PARTS], hasLength(0)); |
| 3052 expect(outputs[LIBRARY_SPECIFIC_UNITS], hasLength(1)); |
| 3053 expect(outputs[PARSE_ERRORS], hasLength(0)); |
| 3054 expect(outputs[PARSED_UNIT], isNotNull); |
| 3055 expect(outputs[SOURCE_KIND], SourceKind.UNKNOWN); |
| 3056 expect(outputs[UNITS], hasLength(1)); |
| 3057 } |
| 3058 |
3024 test_perform_enableAsync_false() { | 3059 test_perform_enableAsync_false() { |
3025 AnalysisOptionsImpl options = new AnalysisOptionsImpl(); | 3060 AnalysisOptionsImpl options = new AnalysisOptionsImpl(); |
3026 options.enableAsync = false; | 3061 options.enableAsync = false; |
3027 prepareAnalysisContext(options); | 3062 prepareAnalysisContext(options); |
3028 _performParseTask(r''' | 3063 _performParseTask(r''' |
3029 import 'dart:async'; | 3064 import 'dart:async'; |
3030 class B {void foo() async {}}'''); | 3065 class B {void foo() async {}}'''); |
3031 expect(outputs, hasLength(9)); | 3066 expect(outputs, hasLength(9)); |
3032 expect(outputs[EXPLICITLY_IMPORTED_LIBRARIES], hasLength(1)); | 3067 expect(outputs[EXPLICITLY_IMPORTED_LIBRARIES], hasLength(1)); |
3033 expect(outputs[EXPORTED_LIBRARIES], hasLength(0)); | 3068 expect(outputs[EXPORTED_LIBRARIES], hasLength(0)); |
(...skipping 15 matching lines...) Expand all Loading... |
3049 expect(outputs[EXPORTED_LIBRARIES], hasLength(0)); | 3084 expect(outputs[EXPORTED_LIBRARIES], hasLength(0)); |
3050 _assertHasCore(outputs[IMPORTED_LIBRARIES], 2); | 3085 _assertHasCore(outputs[IMPORTED_LIBRARIES], 2); |
3051 expect(outputs[INCLUDED_PARTS], hasLength(0)); | 3086 expect(outputs[INCLUDED_PARTS], hasLength(0)); |
3052 expect(outputs[LIBRARY_SPECIFIC_UNITS], hasLength(1)); | 3087 expect(outputs[LIBRARY_SPECIFIC_UNITS], hasLength(1)); |
3053 expect(outputs[PARSE_ERRORS], hasLength(0)); | 3088 expect(outputs[PARSE_ERRORS], hasLength(0)); |
3054 expect(outputs[PARSED_UNIT], isNotNull); | 3089 expect(outputs[PARSED_UNIT], isNotNull); |
3055 expect(outputs[SOURCE_KIND], SourceKind.LIBRARY); | 3090 expect(outputs[SOURCE_KIND], SourceKind.LIBRARY); |
3056 expect(outputs[UNITS], hasLength(1)); | 3091 expect(outputs[UNITS], hasLength(1)); |
3057 } | 3092 } |
3058 | 3093 |
3059 test_perform_computeSourceKind_noDirectives_hasContainingLibrary() { | |
3060 // Parse "lib.dart" to let the context know that "test.dart" is included. | |
3061 computeResult( | |
3062 newSource( | |
3063 '/lib.dart', | |
3064 r''' | |
3065 library lib; | |
3066 part 'test.dart'; | |
3067 '''), | |
3068 PARSED_UNIT); | |
3069 // If there are no the "part of" directive, then it is not a part. | |
3070 _performParseTask(''); | |
3071 expect(outputs[SOURCE_KIND], SourceKind.LIBRARY); | |
3072 } | |
3073 | |
3074 test_perform_computeSourceKind_noDirectives_noContainingLibrary() { | |
3075 _performParseTask(''); | |
3076 expect(outputs[SOURCE_KIND], SourceKind.LIBRARY); | |
3077 } | |
3078 | |
3079 test_perform_doesNotExist() { | |
3080 _performParseTask(null); | |
3081 expect(outputs, hasLength(9)); | |
3082 expect(outputs[EXPLICITLY_IMPORTED_LIBRARIES], hasLength(0)); | |
3083 expect(outputs[EXPORTED_LIBRARIES], hasLength(0)); | |
3084 _assertHasCore(outputs[IMPORTED_LIBRARIES], 1); | |
3085 expect(outputs[INCLUDED_PARTS], hasLength(0)); | |
3086 expect(outputs[LIBRARY_SPECIFIC_UNITS], hasLength(1)); | |
3087 expect(outputs[PARSE_ERRORS], hasLength(0)); | |
3088 expect(outputs[PARSED_UNIT], isNotNull); | |
3089 expect(outputs[SOURCE_KIND], SourceKind.UNKNOWN); | |
3090 expect(outputs[UNITS], hasLength(1)); | |
3091 } | |
3092 | |
3093 test_perform_flushTokenStream() { | 3094 test_perform_flushTokenStream() { |
3094 _performParseTask(r''' | 3095 _performParseTask(r''' |
3095 class Test {} | 3096 class Test {} |
3096 '''); | 3097 '''); |
3097 expect(analysisCache.getState(source, TOKEN_STREAM), CacheState.FLUSHED); | 3098 expect(analysisCache.getState(source, TOKEN_STREAM), CacheState.FLUSHED); |
3098 } | 3099 } |
3099 | 3100 |
3100 test_perform_invalidDirectives() { | 3101 test_perform_invalidDirectives() { |
3101 _performParseTask(r''' | 3102 _performParseTask(r''' |
3102 library lib; | 3103 library lib; |
(...skipping 1771 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
4874 /** | 4875 /** |
4875 * Fill [errorListener] with [result] errors in the current [task]. | 4876 * Fill [errorListener] with [result] errors in the current [task]. |
4876 */ | 4877 */ |
4877 void _fillErrorListener(ResultDescriptor<List<AnalysisError>> result) { | 4878 void _fillErrorListener(ResultDescriptor<List<AnalysisError>> result) { |
4878 List<AnalysisError> errors = task.outputs[result]; | 4879 List<AnalysisError> errors = task.outputs[result]; |
4879 expect(errors, isNotNull, reason: result.name); | 4880 expect(errors, isNotNull, reason: result.name); |
4880 errorListener = new GatheringErrorListener(); | 4881 errorListener = new GatheringErrorListener(); |
4881 errorListener.addAll(errors); | 4882 errorListener.addAll(errors); |
4882 } | 4883 } |
4883 } | 4884 } |
OLD | NEW |