| OLD | NEW |
| 1 // Copyright (c) 2017, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2017, 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 import 'dart:async'; | 5 import 'dart:async'; |
| 6 | 6 |
| 7 import 'package:front_end/compiler_options.dart'; | 7 import 'package:front_end/compiler_options.dart'; |
| 8 import 'package:front_end/memory_file_system.dart'; | 8 import 'package:front_end/memory_file_system.dart'; |
| 9 import 'package:front_end/src/base/processed_options.dart'; | 9 import 'package:front_end/src/base/processed_options.dart'; |
| 10 import 'package:front_end/src/fasta/fasta.dart' show ByteSink; | 10 import 'package:front_end/src/fasta/fasta.dart' show ByteSink; |
| 11 import 'package:front_end/src/fasta/fasta_codes.dart'; | 11 import 'package:front_end/src/fasta/fasta_codes.dart'; |
| 12 import 'package:kernel/binary/ast_to_binary.dart' show BinaryPrinter; | 12 import 'package:kernel/binary/ast_to_binary.dart' show BinaryPrinter; |
| 13 import 'package:kernel/kernel.dart' show Program, Library, CanonicalName; | 13 import 'package:kernel/kernel.dart' show Program, Library, CanonicalName; |
| 14 import 'package:package_config/packages.dart' show Packages; | 14 import 'package:package_config/packages.dart' show Packages; |
| 15 | |
| 16 import 'package:test/test.dart'; | 15 import 'package:test/test.dart'; |
| 17 import 'package:test_reflective_loader/test_reflective_loader.dart'; | 16 import 'package:test_reflective_loader/test_reflective_loader.dart'; |
| 18 | 17 |
| 19 main() { | 18 main() { |
| 20 defineReflectiveSuite(() { | 19 defineReflectiveSuite(() { |
| 21 defineReflectiveTests(ProcessedOptionsTest); | 20 defineReflectiveTests(ProcessedOptionsTest); |
| 22 }); | 21 }); |
| 23 } | 22 } |
| 24 | 23 |
| 25 @reflectiveTest | 24 @reflectiveTest |
| (...skipping 110 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 136 .writeAsStringSync('foo:baz\n'); | 135 .writeAsStringSync('foo:baz\n'); |
| 137 var raw = new CompilerOptions() | 136 var raw = new CompilerOptions() |
| 138 ..fileSystem = fileSystem | 137 ..fileSystem = fileSystem |
| 139 ..packagesFileUri = Uri.parse('file:///explicit.packages'); | 138 ..packagesFileUri = Uri.parse('file:///explicit.packages'); |
| 140 var processed = new ProcessedOptions(raw); | 139 var processed = new ProcessedOptions(raw); |
| 141 var uriTranslator = await processed.getUriTranslator(); | 140 var uriTranslator = await processed.getUriTranslator(); |
| 142 checkPackageExpansion('foo', 'baz', uriTranslator.packages); | 141 checkPackageExpansion('foo', 'baz', uriTranslator.packages); |
| 143 } | 142 } |
| 144 | 143 |
| 145 test_getUriTranslator_implicitPackagesFile_nextToScript() async { | 144 test_getUriTranslator_implicitPackagesFile_nextToScript() async { |
| 146 // Fake the existence of the base directory. | 145 // Create the base directory. |
| 147 fileSystem | 146 fileSystem |
| 148 .entityForUri(Uri.parse('file:///base/location/')) | 147 .entityForUri(Uri.parse('file:///base/location/')) |
| 149 .writeAsStringSync(''); | 148 .createDirectory(); |
| 150 // Packages directory should be ignored (.packages file takes precedence). | 149 // Packages directory should be ignored (.packages file takes precedence). |
| 151 fileSystem | 150 fileSystem |
| 152 .entityForUri(Uri.parse('file:///base/location/packages/')) | 151 .entityForUri(Uri.parse('file:///base/location/packages/')) |
| 153 .writeAsStringSync(''); | 152 .createDirectory(); |
| 154 // This .packages file should be ignored. | 153 // This .packages file should be ignored. |
| 155 fileSystem | 154 fileSystem |
| 156 .entityForUri(Uri.parse('file:///.packages')) | 155 .entityForUri(Uri.parse('file:///.packages')) |
| 157 .writeAsStringSync('foo:bar\n'); | 156 .writeAsStringSync('foo:bar\n'); |
| 158 // This one should be used. | 157 // This one should be used. |
| 159 fileSystem | 158 fileSystem |
| 160 .entityForUri(Uri.parse('file:///base/location/.packages')) | 159 .entityForUri(Uri.parse('file:///base/location/.packages')) |
| 161 .writeAsStringSync('foo:baz\n'); | 160 .writeAsStringSync('foo:baz\n'); |
| 162 var raw = new CompilerOptions()..fileSystem = fileSystem; | 161 var raw = new CompilerOptions()..fileSystem = fileSystem; |
| 163 var processed = new ProcessedOptions( | 162 var processed = new ProcessedOptions( |
| 164 raw, false, [Uri.parse('file:///base/location/script.dart')]); | 163 raw, false, [Uri.parse('file:///base/location/script.dart')]); |
| 165 var uriTranslator = await processed.getUriTranslator(); | 164 var uriTranslator = await processed.getUriTranslator(); |
| 166 checkPackageExpansion('foo', 'base/location/baz', uriTranslator.packages); | 165 checkPackageExpansion('foo', 'base/location/baz', uriTranslator.packages); |
| 167 } | 166 } |
| 168 | 167 |
| 169 test_getUriTranslator_implicitPackagesFile_searchAbove() async { | 168 test_getUriTranslator_implicitPackagesFile_searchAbove() async { |
| 170 // Fake the existence of the base directory. | 169 // Create the base directory. |
| 171 fileSystem | 170 fileSystem |
| 172 .entityForUri(Uri.parse('file:///base/location/')) | 171 .entityForUri(Uri.parse('file:///base/location/')) |
| 173 .writeAsStringSync(''); | 172 .createDirectory(); |
| 174 // This .packages file should be ignored. | 173 // This .packages file should be ignored. |
| 175 fileSystem | 174 fileSystem |
| 176 .entityForUri(Uri.parse('file:///.packages')) | 175 .entityForUri(Uri.parse('file:///.packages')) |
| 177 .writeAsStringSync('foo:bar\n'); | 176 .writeAsStringSync('foo:bar\n'); |
| 178 // This one should be used. | 177 // This one should be used. |
| 179 fileSystem | 178 fileSystem |
| 180 .entityForUri(Uri.parse('file:///base/.packages')) | 179 .entityForUri(Uri.parse('file:///base/.packages')) |
| 181 .writeAsStringSync('foo:baz\n'); | 180 .writeAsStringSync('foo:baz\n'); |
| 182 var raw = new CompilerOptions()..fileSystem = fileSystem; | 181 var raw = new CompilerOptions()..fileSystem = fileSystem; |
| 183 var processed = new ProcessedOptions( | 182 var processed = new ProcessedOptions( |
| 184 raw, false, [Uri.parse('file:///base/location/script.dart')]); | 183 raw, false, [Uri.parse('file:///base/location/script.dart')]); |
| 185 var uriTranslator = await processed.getUriTranslator(); | 184 var uriTranslator = await processed.getUriTranslator(); |
| 186 checkPackageExpansion('foo', 'base/baz', uriTranslator.packages); | 185 checkPackageExpansion('foo', 'base/baz', uriTranslator.packages); |
| 187 } | 186 } |
| 188 | 187 |
| 189 test_getUriTranslator_implicitPackagesFile_packagesDirectory() async { | 188 test_getUriTranslator_implicitPackagesFile_packagesDirectory() async { |
| 190 // Fake the existence of the base directory. | 189 // Create the base directory. |
| 191 fileSystem | 190 fileSystem |
| 192 .entityForUri(Uri.parse('file:///base/location/')) | 191 .entityForUri(Uri.parse('file:///base/location/')) |
| 193 .writeAsStringSync(''); | 192 .createDirectory(); |
| 194 fileSystem | 193 fileSystem |
| 195 .entityForUri(Uri.parse('file:///base/location/packages/')) | 194 .entityForUri(Uri.parse('file:///base/location/packages/')) |
| 196 .writeAsStringSync(''); | 195 .createDirectory(); |
| 197 | 196 |
| 198 // Both of these .packages file should be ignored. | 197 // Both of these .packages file should be ignored. |
| 199 fileSystem | 198 fileSystem |
| 200 .entityForUri(Uri.parse('file:///.packages')) | 199 .entityForUri(Uri.parse('file:///.packages')) |
| 201 .writeAsStringSync('foo:bar\n'); | 200 .writeAsStringSync('foo:bar\n'); |
| 202 fileSystem | 201 fileSystem |
| 203 .entityForUri(Uri.parse('file:///base/.packages')) | 202 .entityForUri(Uri.parse('file:///base/.packages')) |
| 204 .writeAsStringSync('foo:baz\n'); | 203 .writeAsStringSync('foo:baz\n'); |
| 205 var raw = new CompilerOptions()..fileSystem = fileSystem; | 204 var raw = new CompilerOptions()..fileSystem = fileSystem; |
| 206 var processed = new ProcessedOptions( | 205 var processed = new ProcessedOptions( |
| 207 raw, false, [Uri.parse('file:///base/location/script.dart')]); | 206 raw, false, [Uri.parse('file:///base/location/script.dart')]); |
| 208 var uriTranslator = await processed.getUriTranslator(); | 207 var uriTranslator = await processed.getUriTranslator(); |
| 209 checkPackageExpansion( | 208 checkPackageExpansion( |
| 210 'foo', 'base/location/packages/foo', uriTranslator.packages); | 209 'foo', 'base/location/packages/foo', uriTranslator.packages); |
| 211 } | 210 } |
| 212 | 211 |
| 213 test_getUriTranslator_implicitPackagesFile_noPackages() async { | 212 test_getUriTranslator_implicitPackagesFile_noPackages() async { |
| 214 // Fake the existence of the base directory. | 213 // Create the base directory. |
| 215 fileSystem | 214 fileSystem |
| 216 .entityForUri(Uri.parse('file:///base/location/')) | 215 .entityForUri(Uri.parse('file:///base/location/')) |
| 217 .writeAsStringSync(''); | 216 .createDirectory(); |
| 218 var errors = []; | 217 var errors = []; |
| 219 // .packages file should be ignored. | 218 // .packages file should be ignored. |
| 220 var raw = new CompilerOptions() | 219 var raw = new CompilerOptions() |
| 221 ..fileSystem = fileSystem | 220 ..fileSystem = fileSystem |
| 222 ..onError = (e) => errors.add(e); | 221 ..onError = (e) => errors.add(e); |
| 223 var processed = new ProcessedOptions( | 222 var processed = new ProcessedOptions( |
| 224 raw, false, [Uri.parse('file:///base/location/script.dart')]); | 223 raw, false, [Uri.parse('file:///base/location/script.dart')]); |
| 225 var uriTranslator = await processed.getUriTranslator(); | 224 var uriTranslator = await processed.getUriTranslator(); |
| 226 expect(errors, isEmpty); | 225 expect(errors, isEmpty); |
| 227 expect(uriTranslator.packages.asMap(), isEmpty); | 226 expect(uriTranslator.packages.asMap(), isEmpty); |
| (...skipping 163 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 391 var index = messageTemplate.indexOf('#'); | 390 var index = messageTemplate.indexOf('#'); |
| 392 var prefix = messageTemplate.substring(0, index - 1); | 391 var prefix = messageTemplate.substring(0, index - 1); |
| 393 | 392 |
| 394 // Check that the prefix is not empty and that it contains more than one | 393 // Check that the prefix is not empty and that it contains more than one |
| 395 // word. | 394 // word. |
| 396 expect(prefix.length > 0, isTrue); | 395 expect(prefix.length > 0, isTrue); |
| 397 expect(prefix.contains(' '), isTrue); | 396 expect(prefix.contains(' '), isTrue); |
| 398 return prefix; | 397 return prefix; |
| 399 } | 398 } |
| 400 } | 399 } |
| OLD | NEW |