| OLD | NEW |
| 1 // Copyright (c) 2013, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2013, 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 // Test that the compiler can handle imports when package root has not been set. | 5 // Test that the compiler can handle imports when package root has not been set. |
| 6 | 6 |
| 7 library dart2js.test.package_root; | 7 library dart2js.test.missing_file; |
| 8 | 8 |
| 9 import 'package:expect/expect.dart'; | 9 import 'package:expect/expect.dart'; |
| 10 import "package:async_helper/async_helper.dart"; |
| 10 import 'memory_source_file_helper.dart'; | 11 import 'memory_source_file_helper.dart'; |
| 11 | 12 |
| 12 import '../../../sdk/lib/_internal/compiler/implementation/dart2jslib.dart' | 13 import '../../../sdk/lib/_internal/compiler/implementation/dart2jslib.dart' |
| 13 show NullSink; | 14 show NullSink; |
| 14 | 15 |
| 15 import '../../../sdk/lib/_internal/compiler/compiler.dart' | 16 import '../../../sdk/lib/_internal/compiler/compiler.dart' |
| 16 show DiagnosticHandler, Diagnostic; | 17 show DiagnosticHandler, Diagnostic; |
| 17 | 18 |
| 18 import 'dart:async'; | 19 import 'dart:async'; |
| 19 | 20 |
| 20 import '../../../sdk/lib/_internal/compiler/implementation/mirrors/mirrors.dart'
; | 21 import '../../../sdk/lib/_internal/compiler/implementation/mirrors/mirrors.dart'
; |
| 21 import '../../../sdk/lib/_internal/compiler/implementation/mirrors/dart2js_mirro
r.dart'; | 22 import '../../../sdk/lib/_internal/compiler/implementation/mirrors/dart2js_mirro
r.dart'; |
| 22 | 23 |
| 23 const MEMORY_SOURCE_FILES = const { | 24 const MEMORY_SOURCE_FILES = const { |
| 24 'main.dart': ''' | 25 'main.dart': ''' |
| 25 | 26 |
| 26 import 'package:foo/foo.dart'; | 27 import 'foo.dart'; |
| 27 | 28 |
| 28 main() {} | 29 main() {} |
| 29 ''', | 30 ''', |
| 30 }; | 31 }; |
| 31 | 32 |
| 32 void runCompiler(Uri main) { | 33 void runCompiler(Uri main, String expectedMessage) { |
| 33 Uri script = currentDirectory.resolve(nativeToUriPath(Platform.script)); | 34 Uri script = currentDirectory.resolve(nativeToUriPath(Platform.script)); |
| 34 Uri libraryRoot = script.resolve('../../../sdk/'); | 35 Uri libraryRoot = script.resolve('../../../sdk/'); |
| 35 | 36 |
| 36 MemorySourceFileProvider.MEMORY_SOURCE_FILES = MEMORY_SOURCE_FILES; | 37 var provider = new MemorySourceFileProvider(MEMORY_SOURCE_FILES); |
| 37 var provider = new MemorySourceFileProvider(); | |
| 38 var handler = new FormattingDiagnosticHandler(provider); | 38 var handler = new FormattingDiagnosticHandler(provider); |
| 39 var errors = []; | 39 var errors = []; |
| 40 | 40 |
| 41 void diagnosticHandler(Uri uri, int begin, int end, String message, | 41 void diagnosticHandler(Uri uri, int begin, int end, String message, |
| 42 Diagnostic kind) { | 42 Diagnostic kind) { |
| 43 if (kind == Diagnostic.ERROR) { | 43 if (kind == Diagnostic.ERROR) { |
| 44 errors.add(message); | 44 errors.add(message); |
| 45 } | 45 } |
| 46 handler(uri, begin, end, message, kind); | 46 handler(uri, begin, end, message, kind); |
| 47 } | 47 } |
| 48 | 48 |
| 49 | 49 |
| 50 EventSink<String> outputProvider(String name, String extension) { | 50 EventSink<String> outputProvider(String name, String extension) { |
| 51 if (name != '') throw 'Attempt to output file "$name.$extension"'; | 51 if (name != '') throw 'Attempt to output file "$name.$extension"'; |
| 52 return new NullSink('$name.$extension'); | 52 return new NullSink('$name.$extension'); |
| 53 } | 53 } |
| 54 | 54 |
| 55 Compiler compiler = new Compiler(provider.readStringFromUri, | 55 Compiler compiler = new Compiler(provider, |
| 56 outputProvider, | 56 outputProvider, |
| 57 diagnosticHandler, | 57 diagnosticHandler, |
| 58 libraryRoot, | 58 libraryRoot, |
| 59 null, | 59 null, |
| 60 []); | 60 []); |
| 61 | 61 |
| 62 compiler.run(main); | 62 asyncTest(() => compiler.run(main).then((_) { |
| 63 Expect.equals(1, errors.length); | 63 Expect.equals(1, errors.length); |
| 64 Expect.equals('Error: Cannot resolve "package:foo/foo.dart". ' | 64 Expect.equals(expectedMessage, |
| 65 'Package root has not been set.', | 65 errors[0]); |
| 66 errors[0]); | 66 })); |
| 67 } | 67 } |
| 68 | 68 |
| 69 void main() { | 69 void main() { |
| 70 runCompiler(Uri.parse('memory:main.dart')); | 70 runCompiler(Uri.parse('memory:main.dart'), |
| 71 runCompiler(Uri.parse('package:foo/foo.dart')); | 71 "Error: Can't read 'memory:foo.dart' " |
| 72 "(No such file memory:foo.dart)."); |
| 73 runCompiler(Uri.parse('memory:foo.dart'), |
| 74 "Error: Can't read 'memory:foo.dart' " |
| 75 "(No such file memory:foo.dart)."); |
| 76 runCompiler(Uri.parse('dart:foo'), |
| 77 'Error: Library not found "dart:foo".'); |
| 72 } | 78 } |
| OLD | NEW |