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.context.directory.manager; | 5 library test.context.directory.manager; |
6 | 6 |
7 import 'dart:async'; | 7 import 'dart:async'; |
8 import 'dart:collection'; | 8 import 'dart:collection'; |
9 | 9 |
10 import 'package:analysis_server/src/context_manager.dart'; | 10 import 'package:analysis_server/src/context_manager.dart'; |
| 11 import 'package:analysis_server/src/plugin/notification_manager.dart'; |
11 import 'package:analysis_server/src/utilities/null_string_sink.dart'; | 12 import 'package:analysis_server/src/utilities/null_string_sink.dart'; |
12 import 'package:analyzer/context/context_root.dart'; | 13 import 'package:analyzer/context/context_root.dart'; |
13 import 'package:analyzer/error/error.dart'; | 14 import 'package:analyzer/error/error.dart'; |
14 import 'package:analyzer/file_system/file_system.dart'; | 15 import 'package:analyzer/file_system/file_system.dart'; |
15 import 'package:analyzer/file_system/memory_file_system.dart'; | 16 import 'package:analyzer/file_system/memory_file_system.dart'; |
16 import 'package:analyzer/instrumentation/instrumentation.dart'; | 17 import 'package:analyzer/instrumentation/instrumentation.dart'; |
17 import 'package:analyzer/source/error_processor.dart'; | 18 import 'package:analyzer/source/error_processor.dart'; |
18 import 'package:analyzer/src/context/builder.dart'; | 19 import 'package:analyzer/src/context/builder.dart'; |
19 import 'package:analyzer/src/dart/analysis/driver.dart'; | 20 import 'package:analyzer/src/dart/analysis/driver.dart'; |
20 import 'package:analyzer/src/dart/analysis/file_state.dart'; | 21 import 'package:analyzer/src/dart/analysis/file_state.dart'; |
(...skipping 11 matching lines...) Expand all Loading... |
32 import 'package:linter/src/rules/avoid_as.dart'; | 33 import 'package:linter/src/rules/avoid_as.dart'; |
33 import 'package:path/path.dart' as path; | 34 import 'package:path/path.dart' as path; |
34 import 'package:plugin/manager.dart'; | 35 import 'package:plugin/manager.dart'; |
35 import 'package:plugin/plugin.dart'; | 36 import 'package:plugin/plugin.dart'; |
36 import 'package:test/test.dart'; | 37 import 'package:test/test.dart'; |
37 import 'package:test_reflective_loader/test_reflective_loader.dart'; | 38 import 'package:test_reflective_loader/test_reflective_loader.dart'; |
38 import 'package:watcher/watcher.dart'; | 39 import 'package:watcher/watcher.dart'; |
39 | 40 |
40 import 'mock_sdk.dart'; | 41 import 'mock_sdk.dart'; |
41 import 'mocks.dart'; | 42 import 'mocks.dart'; |
| 43 import 'src/plugin/plugin_manager_test.dart'; |
42 | 44 |
43 main() { | 45 main() { |
44 defineReflectiveSuite(() { | 46 defineReflectiveSuite(() { |
45 defineReflectiveTests(AbstractContextManagerTest); | 47 defineReflectiveTests(AbstractContextManagerTest); |
46 defineReflectiveTests(ContextManagerWithNewOptionsTest); | 48 defineReflectiveTests(ContextManagerWithNewOptionsTest); |
47 defineReflectiveTests(ContextManagerWithOldOptionsTest); | 49 defineReflectiveTests(ContextManagerWithOldOptionsTest); |
48 }); | 50 }); |
49 } | 51 } |
50 | 52 |
51 @reflectiveTest | 53 @reflectiveTest |
(...skipping 1975 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2027 | 2029 |
2028 test_analysis_options_parse_failure() async { | 2030 test_analysis_options_parse_failure() async { |
2029 // Create files. | 2031 // Create files. |
2030 String libPath = newFolder([projPath, ContextManagerTest.LIB_NAME]); | 2032 String libPath = newFolder([projPath, ContextManagerTest.LIB_NAME]); |
2031 newFile([libPath, 'main.dart']); | 2033 newFile([libPath, 'main.dart']); |
2032 String sdkExtPath = newFolder([projPath, 'sdk_ext']); | 2034 String sdkExtPath = newFolder([projPath, 'sdk_ext']); |
2033 newFile([sdkExtPath, 'entry.dart']); | 2035 newFile([sdkExtPath, 'entry.dart']); |
2034 String sdkExtSrcPath = newFolder([projPath, 'sdk_ext', 'src']); | 2036 String sdkExtSrcPath = newFolder([projPath, 'sdk_ext', 'src']); |
2035 newFile([sdkExtSrcPath, 'part.dart']); | 2037 newFile([sdkExtSrcPath, 'part.dart']); |
2036 // Setup analysis options file with ignore list. | 2038 // Setup analysis options file with ignore list. |
2037 newFile( | 2039 String optionsFilePath = newFile( |
2038 [projPath, optionsFileName], | 2040 [projPath, optionsFileName], |
2039 r''' | 2041 r''' |
2040 ; | 2042 ; |
2041 '''); | 2043 '''); |
2042 // Setup context. | 2044 // Setup context. |
2043 manager.setRoots(<String>[projPath], <String>[], <String, String>{}); | 2045 manager.setRoots(<String>[projPath], <String>[], <String, String>{}); |
2044 | 2046 |
2045 // No error means success. | 2047 // Check that an error was produced. |
| 2048 TestNotificationManager notificationManager = callbacks.notificationManager; |
| 2049 var errors = notificationManager.recordedErrors; |
| 2050 expect(errors, hasLength(1)); |
| 2051 expect(errors[errors.keys.first][optionsFilePath], hasLength(1)); |
2046 } | 2052 } |
2047 | 2053 |
2048 test_deleteRoot_hasAnalysisOptions() async { | 2054 test_deleteRoot_hasAnalysisOptions() async { |
2049 newFile([projPath, optionsFileName], ''); | 2055 newFile([projPath, optionsFileName], ''); |
2050 | 2056 |
2051 // Add the root. | 2057 // Add the root. |
2052 manager.setRoots(<String>[projPath], <String>[], <String, String>{}); | 2058 manager.setRoots(<String>[projPath], <String>[], <String, String>{}); |
2053 await pumpEventQueue(); | 2059 await pumpEventQueue(); |
2054 | 2060 |
2055 // Remove the root, with the analysis options file. | 2061 // Remove the root, with the analysis options file. |
(...skipping 524 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2580 /** | 2586 /** |
2581 * The list of `flushedFiles` in the last [removeContext] invocation. | 2587 * The list of `flushedFiles` in the last [removeContext] invocation. |
2582 */ | 2588 */ |
2583 List<String> lastFlushedFiles; | 2589 List<String> lastFlushedFiles; |
2584 | 2590 |
2585 /** | 2591 /** |
2586 * The watch events that have been broadcast. | 2592 * The watch events that have been broadcast. |
2587 */ | 2593 */ |
2588 List<WatchEvent> watchEvents = <WatchEvent>[]; | 2594 List<WatchEvent> watchEvents = <WatchEvent>[]; |
2589 | 2595 |
| 2596 @override |
| 2597 NotificationManager notificationManager = new TestNotificationManager(); |
| 2598 |
2590 TestContextManagerCallbacks( | 2599 TestContextManagerCallbacks( |
2591 this.resourceProvider, this.sdkManager, this.logger, this.scheduler); | 2600 this.resourceProvider, this.sdkManager, this.logger, this.scheduler); |
2592 | 2601 |
2593 /** | 2602 /** |
2594 * Return the current set of analysis options. | 2603 * Return the current set of analysis options. |
2595 */ | 2604 */ |
2596 AnalysisOptions get analysisOptions => currentDriver == null | 2605 AnalysisOptions get analysisOptions => currentDriver == null |
2597 ? currentContext.analysisOptions | 2606 ? currentContext.analysisOptions |
2598 : currentDriver.analysisOptions; | 2607 : currentDriver.analysisOptions; |
2599 | 2608 |
(...skipping 227 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2827 class TestUriResolver extends UriResolver { | 2836 class TestUriResolver extends UriResolver { |
2828 Map<Uri, Source> uriMap; | 2837 Map<Uri, Source> uriMap; |
2829 | 2838 |
2830 TestUriResolver(this.uriMap); | 2839 TestUriResolver(this.uriMap); |
2831 | 2840 |
2832 @override | 2841 @override |
2833 Source resolveAbsolute(Uri uri, [Uri actualUri]) { | 2842 Source resolveAbsolute(Uri uri, [Uri actualUri]) { |
2834 return uriMap[uri]; | 2843 return uriMap[uri]; |
2835 } | 2844 } |
2836 } | 2845 } |
OLD | NEW |