| 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/error/error.dart'; | 10 import 'package:analyzer/error/error.dart'; |
| (...skipping 1833 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1844 | 1844 |
| 1845 test_analysis_options_file_delete() async { | 1845 test_analysis_options_file_delete() async { |
| 1846 // Setup analysis options | 1846 // Setup analysis options |
| 1847 newFile( | 1847 newFile( |
| 1848 [projPath, optionsFileName], | 1848 [projPath, optionsFileName], |
| 1849 r''' | 1849 r''' |
| 1850 embedded_libs: | 1850 embedded_libs: |
| 1851 "dart:foobar": "../sdk_ext/entry.dart" | 1851 "dart:foobar": "../sdk_ext/entry.dart" |
| 1852 analyzer: | 1852 analyzer: |
| 1853 language: | 1853 language: |
| 1854 enableGenericMethods: true | 1854 enableStrictCallChecks: true |
| 1855 errors: | 1855 errors: |
| 1856 unused_local_variable: false | 1856 unused_local_variable: false |
| 1857 linter: | 1857 linter: |
| 1858 rules: | 1858 rules: |
| 1859 - camel_case_types | 1859 - camel_case_types |
| 1860 '''); | 1860 '''); |
| 1861 | 1861 |
| 1862 // Setup context. | 1862 // Setup context. |
| 1863 manager.setRoots(<String>[projPath], <String>[], <String, String>{}); | 1863 manager.setRoots(<String>[projPath], <String>[], <String, String>{}); |
| 1864 await pumpEventQueue(); | 1864 await pumpEventQueue(); |
| 1865 | 1865 |
| 1866 // Verify options were set. | 1866 // Verify options were set. |
| 1867 expect(errorProcessors, hasLength(1)); | 1867 expect(errorProcessors, hasLength(1)); |
| 1868 expect(lints, hasLength(1)); | 1868 expect(lints, hasLength(1)); |
| 1869 expect(options.enableGenericMethods, isTrue); | 1869 expect(options.enableStrictCallChecks, isTrue); |
| 1870 | 1870 |
| 1871 // Remove options. | 1871 // Remove options. |
| 1872 deleteFile([projPath, optionsFileName]); | 1872 deleteFile([projPath, optionsFileName]); |
| 1873 await pumpEventQueue(); | 1873 await pumpEventQueue(); |
| 1874 | 1874 |
| 1875 // Verify defaults restored. | 1875 // Verify defaults restored. |
| 1876 expect(errorProcessors, isEmpty); | 1876 expect(errorProcessors, isEmpty); |
| 1877 expect(lints, isEmpty); | 1877 expect(lints, isEmpty); |
| 1878 expect(options.enableGenericMethods, isFalse); | 1878 expect(options.enableStrictCallChecks, isFalse); |
| 1879 } | 1879 } |
| 1880 | 1880 |
| 1881 test_analysis_options_file_delete_with_embedder() async { | 1881 test_analysis_options_file_delete_with_embedder() async { |
| 1882 // Setup _embedder.yaml. | 1882 // Setup _embedder.yaml. |
| 1883 String libPath = newFolder([projPath, ContextManagerTest.LIB_NAME]); | 1883 String libPath = newFolder([projPath, ContextManagerTest.LIB_NAME]); |
| 1884 newFile( | 1884 newFile( |
| 1885 [libPath, '_embedder.yaml'], | 1885 [libPath, '_embedder.yaml'], |
| 1886 r''' | 1886 r''' |
| 1887 analyzer: | 1887 analyzer: |
| 1888 strong-mode: true | 1888 strong-mode: true |
| 1889 errors: | 1889 errors: |
| 1890 missing_return: false | 1890 missing_return: false |
| 1891 linter: | 1891 linter: |
| 1892 rules: | 1892 rules: |
| 1893 - avoid_as | 1893 - avoid_as |
| 1894 '''); | 1894 '''); |
| 1895 | 1895 |
| 1896 // Setup .packages file | 1896 // Setup .packages file |
| 1897 newFile( | 1897 newFile( |
| 1898 [projPath, '.packages'], | 1898 [projPath, '.packages'], |
| 1899 r''' | 1899 r''' |
| 1900 test_pack:lib/'''); | 1900 test_pack:lib/'''); |
| 1901 | 1901 |
| 1902 // Setup analysis options | 1902 // Setup analysis options |
| 1903 newFile( | 1903 newFile( |
| 1904 [projPath, optionsFileName], | 1904 [projPath, optionsFileName], |
| 1905 r''' | 1905 r''' |
| 1906 analyzer: | 1906 analyzer: |
| 1907 language: | 1907 language: |
| 1908 enableGenericMethods: true | 1908 enableStrictCallChecks: true |
| 1909 errors: | 1909 errors: |
| 1910 unused_local_variable: false | 1910 unused_local_variable: false |
| 1911 linter: | 1911 linter: |
| 1912 rules: | 1912 rules: |
| 1913 - camel_case_types | 1913 - camel_case_types |
| 1914 '''); | 1914 '''); |
| 1915 | 1915 |
| 1916 // Setup context. | 1916 // Setup context. |
| 1917 manager.setRoots(<String>[projPath], <String>[], <String, String>{}); | 1917 manager.setRoots(<String>[projPath], <String>[], <String, String>{}); |
| 1918 await pumpEventQueue(); | 1918 await pumpEventQueue(); |
| 1919 | 1919 |
| 1920 // Verify options were set. | 1920 // Verify options were set. |
| 1921 expect(options.enableGenericMethods, isTrue); | 1921 expect(options.enableStrictCallChecks, isTrue); |
| 1922 expect(options.strongMode, isTrue); | 1922 expect(options.strongMode, isTrue); |
| 1923 expect(errorProcessors, hasLength(2)); | 1923 expect(errorProcessors, hasLength(2)); |
| 1924 expect(lints, hasLength(2)); | 1924 expect(lints, hasLength(2)); |
| 1925 | 1925 |
| 1926 // Remove options. | 1926 // Remove options. |
| 1927 deleteFile([projPath, optionsFileName]); | 1927 deleteFile([projPath, optionsFileName]); |
| 1928 await pumpEventQueue(); | 1928 await pumpEventQueue(); |
| 1929 | 1929 |
| 1930 // Verify defaults restored. | 1930 // Verify defaults restored. |
| 1931 expect(options.enableGenericMethods, isFalse); | 1931 expect(options.enableStrictCallChecks, isFalse); |
| 1932 expect(lints, hasLength(1)); | 1932 expect(lints, hasLength(1)); |
| 1933 expect(lints.first, new isInstanceOf<AvoidAs>()); | 1933 expect(lints.first, new isInstanceOf<AvoidAs>()); |
| 1934 expect(errorProcessors, hasLength(1)); | 1934 expect(errorProcessors, hasLength(1)); |
| 1935 expect(getProcessor(missing_return).severity, isNull); | 1935 expect(getProcessor(missing_return).severity, isNull); |
| 1936 } | 1936 } |
| 1937 | 1937 |
| 1938 test_analysis_options_parse_failure() async { | 1938 test_analysis_options_parse_failure() async { |
| 1939 // Create files. | 1939 // Create files. |
| 1940 String libPath = newFolder([projPath, ContextManagerTest.LIB_NAME]); | 1940 String libPath = newFolder([projPath, ContextManagerTest.LIB_NAME]); |
| 1941 newFile([libPath, 'main.dart']); | 1941 newFile([libPath, 'main.dart']); |
| (...skipping 48 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1990 '''); | 1990 '''); |
| 1991 | 1991 |
| 1992 // Setup analysis options | 1992 // Setup analysis options |
| 1993 newFile( | 1993 newFile( |
| 1994 [projPath, optionsFileName], | 1994 [projPath, optionsFileName], |
| 1995 r''' | 1995 r''' |
| 1996 analyzer: | 1996 analyzer: |
| 1997 exclude: | 1997 exclude: |
| 1998 - 'test/**' | 1998 - 'test/**' |
| 1999 language: | 1999 language: |
| 2000 enableGenericMethods: true | 2000 enableStrictCallChecks: true |
| 2001 errors: | 2001 errors: |
| 2002 unused_local_variable: false | 2002 unused_local_variable: false |
| 2003 linter: | 2003 linter: |
| 2004 rules: | 2004 rules: |
| 2005 - camel_case_types | 2005 - camel_case_types |
| 2006 '''); | 2006 '''); |
| 2007 | 2007 |
| 2008 // Setup context. | 2008 // Setup context. |
| 2009 manager.setRoots(<String>[projPath], <String>[], <String, String>{}); | 2009 manager.setRoots(<String>[projPath], <String>[], <String, String>{}); |
| 2010 await pumpEventQueue(); | 2010 await pumpEventQueue(); |
| 2011 | 2011 |
| 2012 // Confirm that one context was created. | 2012 // Confirm that one context was created. |
| 2013 var contexts = | 2013 var contexts = |
| 2014 manager.contextsInAnalysisRoot(resourceProvider.newFolder(projPath)); | 2014 manager.contextsInAnalysisRoot(resourceProvider.newFolder(projPath)); |
| 2015 expect(contexts, isNotNull); | 2015 expect(contexts, isNotNull); |
| 2016 expect(contexts, hasLength(1)); | 2016 expect(contexts, hasLength(1)); |
| 2017 | 2017 |
| 2018 var context = contexts.first; | 2018 var context = contexts.first; |
| 2019 | 2019 |
| 2020 // Verify options. | 2020 // Verify options. |
| 2021 // * from `config.yaml`: | 2021 // * from `config.yaml`: |
| 2022 expect(context.analysisOptions.strongMode, isTrue); | 2022 expect(context.analysisOptions.strongMode, isTrue); |
| 2023 expect(context.analysisOptions.enableSuperMixins, isTrue); | 2023 expect(context.analysisOptions.enableSuperMixins, isTrue); |
| 2024 // * from analysis options: | 2024 // * from analysis options: |
| 2025 expect(context.analysisOptions.enableGenericMethods, isTrue); | 2025 expect(context.analysisOptions.enableStrictCallChecks, isTrue); |
| 2026 | 2026 |
| 2027 // * verify tests are excluded | 2027 // * verify tests are excluded |
| 2028 expect(callbacks.currentContextFilePaths[projPath].keys, | 2028 expect(callbacks.currentContextFilePaths[projPath].keys, |
| 2029 unorderedEquals(['/my/proj/$optionsFileName'])); | 2029 unorderedEquals(['/my/proj/$optionsFileName'])); |
| 2030 | 2030 |
| 2031 // Verify filter setup. | 2031 // Verify filter setup. |
| 2032 expect(errorProcessors, hasLength(2)); | 2032 expect(errorProcessors, hasLength(2)); |
| 2033 | 2033 |
| 2034 // * (config.) | 2034 // * (config.) |
| 2035 expect(getProcessor(missing_return).severity, isNull); | 2035 expect(getProcessor(missing_return).severity, isNull); |
| (...skipping 50 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2086 test_pack:lib/'''); | 2086 test_pack:lib/'''); |
| 2087 | 2087 |
| 2088 // Setup analysis options | 2088 // Setup analysis options |
| 2089 newFile( | 2089 newFile( |
| 2090 [projPath, optionsFileName], | 2090 [projPath, optionsFileName], |
| 2091 r''' | 2091 r''' |
| 2092 analyzer: | 2092 analyzer: |
| 2093 exclude: | 2093 exclude: |
| 2094 - 'test/**' | 2094 - 'test/**' |
| 2095 language: | 2095 language: |
| 2096 enableGenericMethods: true | 2096 enableStrictCallChecks: true |
| 2097 errors: | 2097 errors: |
| 2098 unused_local_variable: false | 2098 unused_local_variable: false |
| 2099 linter: | 2099 linter: |
| 2100 rules: | 2100 rules: |
| 2101 - camel_case_types | 2101 - camel_case_types |
| 2102 '''); | 2102 '''); |
| 2103 | 2103 |
| 2104 // Setup config.yaml. | 2104 // Setup config.yaml. |
| 2105 newFile( | 2105 newFile( |
| 2106 [libPath, 'config', 'config.yaml'], | 2106 [libPath, 'config', 'config.yaml'], |
| (...skipping 15 matching lines...) Expand all Loading... |
| 2122 manager.contextsInAnalysisRoot(resourceProvider.newFolder(projPath)); | 2122 manager.contextsInAnalysisRoot(resourceProvider.newFolder(projPath)); |
| 2123 expect(contexts, isNotNull); | 2123 expect(contexts, isNotNull); |
| 2124 expect(contexts, hasLength(1)); | 2124 expect(contexts, hasLength(1)); |
| 2125 var context = contexts[0]; | 2125 var context = contexts[0]; |
| 2126 | 2126 |
| 2127 // Verify options. | 2127 // Verify options. |
| 2128 // * from `_embedder.yaml`: | 2128 // * from `_embedder.yaml`: |
| 2129 expect(context.analysisOptions.strongMode, isTrue); | 2129 expect(context.analysisOptions.strongMode, isTrue); |
| 2130 expect(context.analysisOptions.enableSuperMixins, isTrue); | 2130 expect(context.analysisOptions.enableSuperMixins, isTrue); |
| 2131 // * from analysis options: | 2131 // * from analysis options: |
| 2132 expect(context.analysisOptions.enableGenericMethods, isTrue); | 2132 expect(context.analysisOptions.enableStrictCallChecks, isTrue); |
| 2133 | 2133 |
| 2134 // * verify tests are excluded | 2134 // * verify tests are excluded |
| 2135 expect( | 2135 expect( |
| 2136 callbacks.currentContextFilePaths[projPath].keys, | 2136 callbacks.currentContextFilePaths[projPath].keys, |
| 2137 unorderedEquals( | 2137 unorderedEquals( |
| 2138 ['/my/proj/sdk_ext/entry.dart', '/my/proj/$optionsFileName'])); | 2138 ['/my/proj/sdk_ext/entry.dart', '/my/proj/$optionsFileName'])); |
| 2139 | 2139 |
| 2140 // Verify filter setup. | 2140 // Verify filter setup. |
| 2141 expect(errorProcessors, hasLength(3)); | 2141 expect(errorProcessors, hasLength(3)); |
| 2142 | 2142 |
| (...skipping 52 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2195 test_pack:lib/'''); | 2195 test_pack:lib/'''); |
| 2196 | 2196 |
| 2197 // Setup analysis options | 2197 // Setup analysis options |
| 2198 newFile( | 2198 newFile( |
| 2199 [projPath, optionsFileName], | 2199 [projPath, optionsFileName], |
| 2200 r''' | 2200 r''' |
| 2201 analyzer: | 2201 analyzer: |
| 2202 exclude: | 2202 exclude: |
| 2203 - 'test/**' | 2203 - 'test/**' |
| 2204 language: | 2204 language: |
| 2205 enableGenericMethods: true | 2205 enableStrictCallChecks: true |
| 2206 errors: | 2206 errors: |
| 2207 unused_local_variable: false | 2207 unused_local_variable: false |
| 2208 linter: | 2208 linter: |
| 2209 rules: | 2209 rules: |
| 2210 - camel_case_types | 2210 - camel_case_types |
| 2211 '''); | 2211 '''); |
| 2212 | 2212 |
| 2213 // Setup context. | 2213 // Setup context. |
| 2214 manager.setRoots(<String>[projPath], <String>[], <String, String>{}); | 2214 manager.setRoots(<String>[projPath], <String>[], <String, String>{}); |
| 2215 await pumpEventQueue(); | 2215 await pumpEventQueue(); |
| 2216 | 2216 |
| 2217 // Confirm that one context was created. | 2217 // Confirm that one context was created. |
| 2218 var contexts = | 2218 var contexts = |
| 2219 manager.contextsInAnalysisRoot(resourceProvider.newFolder(projPath)); | 2219 manager.contextsInAnalysisRoot(resourceProvider.newFolder(projPath)); |
| 2220 expect(contexts, isNotNull); | 2220 expect(contexts, isNotNull); |
| 2221 expect(contexts, hasLength(1)); | 2221 expect(contexts, hasLength(1)); |
| 2222 var context = contexts[0]; | 2222 var context = contexts[0]; |
| 2223 | 2223 |
| 2224 // Verify options. | 2224 // Verify options. |
| 2225 // * from `_embedder.yaml`: | 2225 // * from `_embedder.yaml`: |
| 2226 expect(context.analysisOptions.strongMode, isTrue); | 2226 expect(context.analysisOptions.strongMode, isTrue); |
| 2227 expect(context.analysisOptions.enableSuperMixins, isTrue); | 2227 expect(context.analysisOptions.enableSuperMixins, isTrue); |
| 2228 // * from analysis options: | 2228 // * from analysis options: |
| 2229 expect(context.analysisOptions.enableGenericMethods, isTrue); | 2229 expect(context.analysisOptions.enableStrictCallChecks, isTrue); |
| 2230 | 2230 |
| 2231 // * verify tests are excluded | 2231 // * verify tests are excluded |
| 2232 expect( | 2232 expect( |
| 2233 callbacks.currentContextFilePaths[projPath].keys, | 2233 callbacks.currentContextFilePaths[projPath].keys, |
| 2234 unorderedEquals( | 2234 unorderedEquals( |
| 2235 ['/my/proj/sdk_ext/entry.dart', '/my/proj/$optionsFileName'])); | 2235 ['/my/proj/sdk_ext/entry.dart', '/my/proj/$optionsFileName'])); |
| 2236 | 2236 |
| 2237 // Verify filter setup. | 2237 // Verify filter setup. |
| 2238 expect(errorProcessors, hasLength(2)); | 2238 expect(errorProcessors, hasLength(2)); |
| 2239 | 2239 |
| (...skipping 527 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2767 class TestUriResolver extends UriResolver { | 2767 class TestUriResolver extends UriResolver { |
| 2768 Map<Uri, Source> uriMap; | 2768 Map<Uri, Source> uriMap; |
| 2769 | 2769 |
| 2770 TestUriResolver(this.uriMap); | 2770 TestUriResolver(this.uriMap); |
| 2771 | 2771 |
| 2772 @override | 2772 @override |
| 2773 Source resolveAbsolute(Uri uri, [Uri actualUri]) { | 2773 Source resolveAbsolute(Uri uri, [Uri actualUri]) { |
| 2774 return uriMap[uri]; | 2774 return uriMap[uri]; |
| 2775 } | 2775 } |
| 2776 } | 2776 } |
| OLD | NEW |