| 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:collection'; | 7 import 'dart:collection'; |
| 8 | 8 |
| 9 import 'package:analysis_server/src/context_manager.dart'; | 9 import 'package:analysis_server/src/context_manager.dart'; |
| 10 import 'package:analyzer/file_system/file_system.dart'; | 10 import 'package:analyzer/file_system/file_system.dart'; |
| (...skipping 936 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 947 | 947 |
| 948 List<AnalysisContext> contextsInAnalysisRoot = | 948 List<AnalysisContext> contextsInAnalysisRoot = |
| 949 manager.contextsInAnalysisRoot(resourceProvider.newFolder(projPath)); | 949 manager.contextsInAnalysisRoot(resourceProvider.newFolder(projPath)); |
| 950 expect(contextsInAnalysisRoot, hasLength(1)); | 950 expect(contextsInAnalysisRoot, hasLength(1)); |
| 951 AnalysisContext context = contextsInAnalysisRoot[0]; | 951 AnalysisContext context = contextsInAnalysisRoot[0]; |
| 952 expect(context, isNotNull); | 952 expect(context, isNotNull); |
| 953 Source result = context.sourceFactory.forUri2(uri); | 953 Source result = context.sourceFactory.forUri2(uri); |
| 954 expect(result, same(source)); | 954 expect(result, same(source)); |
| 955 } | 955 } |
| 956 | 956 |
| 957 void test_setRoots_pathContainsDotFile() { |
| 958 // If the path to a file (relative to the context root) contains a folder |
| 959 // whose name begins with '.', then the file is ignored. |
| 960 String project = '/project'; |
| 961 String fileA = '$project/foo.dart'; |
| 962 String fileB = '$project/.pub/bar.dart'; |
| 963 resourceProvider.newFile(fileA, ''); |
| 964 resourceProvider.newFile(fileB, ''); |
| 965 manager.setRoots(<String>[project], <String>[], <String, String>{}); |
| 966 callbacks.assertContextPaths([project]); |
| 967 callbacks.assertContextFiles(project, [fileA]); |
| 968 } |
| 969 |
| 957 void test_setRoots_removeFolderWithoutPubspec() { | 970 void test_setRoots_removeFolderWithoutPubspec() { |
| 958 packageMapProvider.packageMap = null; | 971 packageMapProvider.packageMap = null; |
| 959 // add one root - there is a context | 972 // add one root - there is a context |
| 960 manager.setRoots(<String>[projPath], <String>[], <String, String>{}); | 973 manager.setRoots(<String>[projPath], <String>[], <String, String>{}); |
| 961 expect(callbacks.currentContextPaths, hasLength(1)); | 974 expect(callbacks.currentContextPaths, hasLength(1)); |
| 962 // set empty roots - no contexts | 975 // set empty roots - no contexts |
| 963 manager.setRoots(<String>[], <String>[], <String, String>{}); | 976 manager.setRoots(<String>[], <String>[], <String, String>{}); |
| 964 expect(callbacks.currentContextPaths, hasLength(0)); | 977 expect(callbacks.currentContextPaths, hasLength(0)); |
| 965 expect(callbacks.currentContextFilePaths, hasLength(0)); | 978 expect(callbacks.currentContextFilePaths, hasLength(0)); |
| 966 } | 979 } |
| (...skipping 103 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1070 }; | 1083 }; |
| 1071 List<String> includedPaths = <String>[projPath]; | 1084 List<String> includedPaths = <String>[projPath]; |
| 1072 List<String> excludedPaths = <String>[]; | 1085 List<String> excludedPaths = <String>[]; |
| 1073 manager.setRoots(includedPaths, excludedPaths, | 1086 manager.setRoots(includedPaths, excludedPaths, |
| 1074 <String, String>{projPath: packageRootPath}); | 1087 <String, String>{projPath: packageRootPath}); |
| 1075 _checkPackageRoot(projPath, equals(packageRootPath)); | 1088 _checkPackageRoot(projPath, equals(packageRootPath)); |
| 1076 manager.setRoots(includedPaths, excludedPaths, <String, String>{}); | 1089 manager.setRoots(includedPaths, excludedPaths, <String, String>{}); |
| 1077 _checkPackageMap(projPath, equals(packageMapProvider.packageMap)); | 1090 _checkPackageMap(projPath, equals(packageMapProvider.packageMap)); |
| 1078 } | 1091 } |
| 1079 | 1092 |
| 1093 void test_setRoots_rootPathContainsDotFile() { |
| 1094 // If the path to the context root itself contains a folder whose name |
| 1095 // begins with '.', then that is not sufficient to cause any files in the |
| 1096 // context to be ignored. |
| 1097 String project = '/.pub/project'; |
| 1098 String fileA = '$project/foo.dart'; |
| 1099 resourceProvider.newFile(fileA, ''); |
| 1100 manager.setRoots(<String>[project], <String>[], <String, String>{}); |
| 1101 callbacks.assertContextPaths([project]); |
| 1102 callbacks.assertContextFiles(project, [fileA]); |
| 1103 } |
| 1104 |
| 1080 test_watch_addDummyLink() { | 1105 test_watch_addDummyLink() { |
| 1081 manager.setRoots(<String>[projPath], <String>[], <String, String>{}); | 1106 manager.setRoots(<String>[projPath], <String>[], <String, String>{}); |
| 1082 // empty folder initially | 1107 // empty folder initially |
| 1083 Map<String, int> filePaths = callbacks.currentContextFilePaths[projPath]; | 1108 Map<String, int> filePaths = callbacks.currentContextFilePaths[projPath]; |
| 1084 expect(filePaths, isEmpty); | 1109 expect(filePaths, isEmpty); |
| 1085 // add link | 1110 // add link |
| 1086 String filePath = posix.join(projPath, 'foo.dart'); | 1111 String filePath = posix.join(projPath, 'foo.dart'); |
| 1087 resourceProvider.newDummyLink(filePath); | 1112 resourceProvider.newDummyLink(filePath); |
| 1088 // the link was ignored | 1113 // the link was ignored |
| 1089 return pumpEventQueue().then((_) { | 1114 return pumpEventQueue().then((_) { |
| (...skipping 30 matching lines...) Expand all Loading... |
| 1120 callbacks.assertContextPaths([project]); | 1145 callbacks.assertContextPaths([project]); |
| 1121 callbacks.assertContextFiles(project, [fileA]); | 1146 callbacks.assertContextFiles(project, [fileA]); |
| 1122 // add a file, ignored as excluded | 1147 // add a file, ignored as excluded |
| 1123 resourceProvider.newFile(fileB, 'library b;'); | 1148 resourceProvider.newFile(fileB, 'library b;'); |
| 1124 return pumpEventQueue().then((_) { | 1149 return pumpEventQueue().then((_) { |
| 1125 callbacks.assertContextPaths([project]); | 1150 callbacks.assertContextPaths([project]); |
| 1126 callbacks.assertContextFiles(project, [fileA]); | 1151 callbacks.assertContextFiles(project, [fileA]); |
| 1127 }); | 1152 }); |
| 1128 } | 1153 } |
| 1129 | 1154 |
| 1155 test_watch_addFile_pathContainsDotFile() async { |
| 1156 // If a file is added and the path to it (relative to the context root) |
| 1157 // contains a folder whose name begins with '.', then the file is ignored. |
| 1158 String project = '/project'; |
| 1159 String fileA = '$project/foo.dart'; |
| 1160 String fileB = '$project/.pub/bar.dart'; |
| 1161 resourceProvider.newFile(fileA, ''); |
| 1162 manager.setRoots(<String>[project], <String>[], <String, String>{}); |
| 1163 callbacks.assertContextPaths([project]); |
| 1164 callbacks.assertContextFiles(project, [fileA]); |
| 1165 resourceProvider.newFile(fileB, ''); |
| 1166 await pumpEventQueue(); |
| 1167 callbacks.assertContextPaths([project]); |
| 1168 callbacks.assertContextFiles(project, [fileA]); |
| 1169 } |
| 1170 |
| 1171 test_watch_addFile_rootPathContainsDotFile() async { |
| 1172 // If a file is added and the path to the context contains a folder whose |
| 1173 // name begins with '.', then the file is not ignored. |
| 1174 String project = '/.pub/project'; |
| 1175 String fileA = '$project/foo.dart'; |
| 1176 String fileB = '$project/bar/baz.dart'; |
| 1177 resourceProvider.newFile(fileA, ''); |
| 1178 manager.setRoots(<String>[project], <String>[], <String, String>{}); |
| 1179 callbacks.assertContextPaths([project]); |
| 1180 callbacks.assertContextFiles(project, [fileA]); |
| 1181 resourceProvider.newFile(fileB, ''); |
| 1182 await pumpEventQueue(); |
| 1183 callbacks.assertContextPaths([project]); |
| 1184 callbacks.assertContextFiles(project, [fileA, fileB]); |
| 1185 } |
| 1186 |
| 1130 test_watch_addFileInSubfolder() { | 1187 test_watch_addFileInSubfolder() { |
| 1131 manager.setRoots(<String>[projPath], <String>[], <String, String>{}); | 1188 manager.setRoots(<String>[projPath], <String>[], <String, String>{}); |
| 1132 // empty folder initially | 1189 // empty folder initially |
| 1133 Map<String, int> filePaths = callbacks.currentContextFilePaths[projPath]; | 1190 Map<String, int> filePaths = callbacks.currentContextFilePaths[projPath]; |
| 1134 expect(filePaths, hasLength(0)); | 1191 expect(filePaths, hasLength(0)); |
| 1135 // add file in subfolder | 1192 // add file in subfolder |
| 1136 String filePath = posix.join(projPath, 'foo', 'bar.dart'); | 1193 String filePath = posix.join(projPath, 'foo', 'bar.dart'); |
| 1137 resourceProvider.newFile(filePath, 'contents'); | 1194 resourceProvider.newFile(filePath, 'contents'); |
| 1138 // the file was added | 1195 // the file was added |
| 1139 return pumpEventQueue().then((_) { | 1196 return pumpEventQueue().then((_) { |
| (...skipping 598 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1738 class TestUriResolver extends UriResolver { | 1795 class TestUriResolver extends UriResolver { |
| 1739 Map<Uri, Source> uriMap; | 1796 Map<Uri, Source> uriMap; |
| 1740 | 1797 |
| 1741 TestUriResolver(this.uriMap); | 1798 TestUriResolver(this.uriMap); |
| 1742 | 1799 |
| 1743 @override | 1800 @override |
| 1744 Source resolveAbsolute(Uri uri, [Uri actualUri]) { | 1801 Source resolveAbsolute(Uri uri, [Uri actualUri]) { |
| 1745 return uriMap[uri]; | 1802 return uriMap[uri]; |
| 1746 } | 1803 } |
| 1747 } | 1804 } |
| OLD | NEW |