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