| OLD | NEW |
| (Empty) | |
| 1 // Copyright (c) 2016, the Dart project authors. Please see the AUTHORS file |
| 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. |
| 4 |
| 5 library analyzer.test.src.source.source_resource_test; |
| 6 |
| 7 import 'package:analyzer/file_system/file_system.dart'; |
| 8 import 'package:analyzer/file_system/memory_file_system.dart'; |
| 9 import 'package:analyzer/file_system/physical_file_system.dart'; |
| 10 import 'package:analyzer/src/generated/java_core.dart'; |
| 11 import 'package:analyzer/src/generated/java_engine_io.dart'; |
| 12 import 'package:analyzer/src/generated/sdk.dart'; |
| 13 import 'package:analyzer/src/generated/source.dart'; |
| 14 import 'package:analyzer/src/generated/utilities_dart.dart'; |
| 15 import 'package:analyzer/src/source/source_resource.dart'; |
| 16 import 'package:unittest/unittest.dart'; |
| 17 |
| 18 import '../../reflective_tests.dart'; |
| 19 import '../../utils.dart'; |
| 20 import '../context/mock_sdk.dart'; |
| 21 |
| 22 main() { |
| 23 initializeTestEnvironment(); |
| 24 runReflectiveTests(FileSourceTest); |
| 25 } |
| 26 |
| 27 @reflectiveTest |
| 28 class FileSourceTest { |
| 29 MemoryResourceProvider resourceProvider = new MemoryResourceProvider(); |
| 30 |
| 31 void test_equals_false_differentFiles() { |
| 32 File file1 = resourceProvider.getFile("/does/not/exist1.dart"); |
| 33 File file2 = resourceProvider.getFile("/does/not/exist2.dart"); |
| 34 FileSource source1 = new FileSource(file1); |
| 35 FileSource source2 = new FileSource(file2); |
| 36 expect(source1 == source2, isFalse); |
| 37 } |
| 38 |
| 39 void test_equals_false_null() { |
| 40 File file = resourceProvider.getFile("/does/not/exist1.dart"); |
| 41 FileSource source1 = new FileSource(file); |
| 42 expect(source1 == null, isFalse); |
| 43 } |
| 44 |
| 45 void test_equals_true() { |
| 46 File file1 = resourceProvider.getFile("/does/not/exist.dart"); |
| 47 File file2 = resourceProvider.getFile("/does/not/exist.dart"); |
| 48 FileSource source1 = new FileSource(file1); |
| 49 FileSource source2 = new FileSource(file2); |
| 50 expect(source1 == source2, isTrue); |
| 51 } |
| 52 |
| 53 void test_fileReadMode() { |
| 54 expect(FileSource.fileReadMode('a'), 'a'); |
| 55 expect(FileSource.fileReadMode('a\n'), 'a\n'); |
| 56 expect(FileSource.fileReadMode('ab'), 'ab'); |
| 57 expect(FileSource.fileReadMode('abc'), 'abc'); |
| 58 expect(FileSource.fileReadMode('a\nb'), 'a\nb'); |
| 59 expect(FileSource.fileReadMode('a\rb'), 'a\rb'); |
| 60 expect(FileSource.fileReadMode('a\r\nb'), 'a\r\nb'); |
| 61 } |
| 62 |
| 63 void test_fileReadMode_changed() { |
| 64 FileSource.fileReadMode = (String s) => s + 'xyz'; |
| 65 expect(FileSource.fileReadMode('a'), 'axyz'); |
| 66 expect(FileSource.fileReadMode('a\n'), 'a\nxyz'); |
| 67 expect(FileSource.fileReadMode('ab'), 'abxyz'); |
| 68 expect(FileSource.fileReadMode('abc'), 'abcxyz'); |
| 69 FileSource.fileReadMode = (String s) => s; |
| 70 } |
| 71 |
| 72 void test_fileReadMode_normalize_eol_always() { |
| 73 FileSource.fileReadMode = PhysicalResourceProvider.NORMALIZE_EOL_ALWAYS; |
| 74 expect(FileSource.fileReadMode('a'), 'a'); |
| 75 |
| 76 // '\n' -> '\n' as first, last and only character |
| 77 expect(FileSource.fileReadMode('\n'), '\n'); |
| 78 expect(FileSource.fileReadMode('a\n'), 'a\n'); |
| 79 expect(FileSource.fileReadMode('\na'), '\na'); |
| 80 |
| 81 // '\r\n' -> '\n' as first, last and only character |
| 82 expect(FileSource.fileReadMode('\r\n'), '\n'); |
| 83 expect(FileSource.fileReadMode('a\r\n'), 'a\n'); |
| 84 expect(FileSource.fileReadMode('\r\na'), '\na'); |
| 85 |
| 86 // '\r' -> '\n' as first, last and only character |
| 87 expect(FileSource.fileReadMode('\r'), '\n'); |
| 88 expect(FileSource.fileReadMode('a\r'), 'a\n'); |
| 89 expect(FileSource.fileReadMode('\ra'), '\na'); |
| 90 |
| 91 FileSource.fileReadMode = (String s) => s; |
| 92 } |
| 93 |
| 94 void test_getEncoding() { |
| 95 SourceFactory factory = |
| 96 new SourceFactory([new ResourceUriResolver(resourceProvider)]); |
| 97 String fullPath = "/does/not/exist.dart"; |
| 98 File file = resourceProvider.getFile(fullPath); |
| 99 FileSource source = new FileSource(file); |
| 100 expect(factory.fromEncoding(source.encoding), source); |
| 101 } |
| 102 |
| 103 void test_getFullName() { |
| 104 String fullPath = "/does/not/exist.dart"; |
| 105 File file = resourceProvider.getFile(fullPath); |
| 106 FileSource source = new FileSource(file); |
| 107 expect(source.fullName, file.path); |
| 108 } |
| 109 |
| 110 void test_getShortName() { |
| 111 File file = resourceProvider.getFile("/does/not/exist.dart"); |
| 112 FileSource source = new FileSource(file); |
| 113 expect(source.shortName, "exist.dart"); |
| 114 } |
| 115 |
| 116 void test_hashCode() { |
| 117 File file1 = resourceProvider.getFile("/does/not/exist.dart"); |
| 118 File file2 = resourceProvider.getFile("/does/not/exist.dart"); |
| 119 FileSource source1 = new FileSource(file1); |
| 120 FileSource source2 = new FileSource(file2); |
| 121 expect(source2.hashCode, source1.hashCode); |
| 122 } |
| 123 |
| 124 void test_isInSystemLibrary_contagious() { |
| 125 DartSdk sdk = _createSdk(); |
| 126 UriResolver resolver = new DartUriResolver(sdk); |
| 127 SourceFactory factory = new SourceFactory([resolver]); |
| 128 // resolve dart:core |
| 129 Source result = |
| 130 resolver.resolveAbsolute(parseUriWithException("dart:async")); |
| 131 expect(result, isNotNull); |
| 132 expect(result.isInSystemLibrary, isTrue); |
| 133 // system libraries reference only other system libraries |
| 134 Source partSource = factory.resolveUri(result, "stream.dart"); |
| 135 expect(partSource, isNotNull); |
| 136 expect(partSource.isInSystemLibrary, isTrue); |
| 137 } |
| 138 |
| 139 void test_isInSystemLibrary_false() { |
| 140 File file = resourceProvider.getFile("/does/not/exist.dart"); |
| 141 FileSource source = new FileSource(file); |
| 142 expect(source, isNotNull); |
| 143 expect(source.fullName, file.path); |
| 144 expect(source.isInSystemLibrary, isFalse); |
| 145 } |
| 146 |
| 147 void test_issue14500() { |
| 148 // see https://code.google.com/p/dart/issues/detail?id=14500 |
| 149 FileSource source = |
| 150 new FileSource(resourceProvider.getFile("/some/packages/foo:bar.dart")); |
| 151 expect(source, isNotNull); |
| 152 expect(source.exists(), isFalse); |
| 153 } |
| 154 |
| 155 void test_resolveRelative_file_fileName() { |
| 156 if (OSUtilities.isWindows()) { |
| 157 // On Windows, the URI that is produced includes a drive letter, |
| 158 // which I believe is not consistent across all machines that might run |
| 159 // this test. |
| 160 return; |
| 161 } |
| 162 File file = resourceProvider.getFile("/a/b/test.dart"); |
| 163 FileSource source = new FileSource(file); |
| 164 expect(source, isNotNull); |
| 165 Uri relative = |
| 166 resolveRelativeUri(source.uri, parseUriWithException("lib.dart")); |
| 167 expect(relative, isNotNull); |
| 168 expect(relative.toString(), "file:///a/b/lib.dart"); |
| 169 } |
| 170 |
| 171 void test_resolveRelative_file_filePath() { |
| 172 if (OSUtilities.isWindows()) { |
| 173 // On Windows, the URI that is produced includes a drive letter, |
| 174 // which I believe is not consistent across all machines that might run |
| 175 // this test. |
| 176 return; |
| 177 } |
| 178 File file = resourceProvider.getFile("/a/b/test.dart"); |
| 179 FileSource source = new FileSource(file); |
| 180 expect(source, isNotNull); |
| 181 Uri relative = |
| 182 resolveRelativeUri(source.uri, parseUriWithException("c/lib.dart")); |
| 183 expect(relative, isNotNull); |
| 184 expect(relative.toString(), "file:///a/b/c/lib.dart"); |
| 185 } |
| 186 |
| 187 void test_resolveRelative_file_filePathWithParent() { |
| 188 if (OSUtilities.isWindows()) { |
| 189 // On Windows, the URI that is produced includes a drive letter, which I |
| 190 // believe is not consistent across all machines that might run this test. |
| 191 return; |
| 192 } |
| 193 File file = resourceProvider.getFile("/a/b/test.dart"); |
| 194 FileSource source = new FileSource(file); |
| 195 expect(source, isNotNull); |
| 196 Uri relative = |
| 197 resolveRelativeUri(source.uri, parseUriWithException("../c/lib.dart")); |
| 198 expect(relative, isNotNull); |
| 199 expect(relative.toString(), "file:///a/c/lib.dart"); |
| 200 } |
| 201 |
| 202 void test_system() { |
| 203 File file = resourceProvider.getFile("/does/not/exist.dart"); |
| 204 FileSource source = |
| 205 new FileSource(file, parseUriWithException("dart:core")); |
| 206 expect(source, isNotNull); |
| 207 expect(source.fullName, file.path); |
| 208 expect(source.isInSystemLibrary, isTrue); |
| 209 } |
| 210 |
| 211 DartSdk _createSdk() { |
| 212 return new MockSdk(resourceProvider: resourceProvider); |
| 213 } |
| 214 } |
| OLD | NEW |