blob: 4bdaa0454540b6cc406bae365a9c94d1ef4bc107 [file] [log] [blame]
// Copyright (c) 2013, the Dart project authors. Please see the AUTHORS file
// for details. All rights reserved. Use of this source code is governed by a
// BSD-style license that can be found in the LICENSE file.
library reexport_handled_test;
import "package:expect/expect.dart";
import "package:async_helper/async_helper.dart";
import 'mock_compiler.dart';
import 'package:compiler/src/elements/elements.dart'
show Element, LibraryElement;
final exportingLibraryUri = Uri.parse('exporting.dart');
const String EXPORTING_LIBRARY_SOURCE = '''
library exporting;
var foo;
''';
final reexportingLibraryUri = Uri.parse('reexporting.dart');
const String REEXPORTING_LIBRARY_SOURCE = '''
library reexporting;
export 'exporting.dart';
''';
void main() {
MockCompiler compiler;
asyncTest(() => MockCompiler.create((MockCompiler c) {
compiler = c;
compiler.registerSource(exportingLibraryUri, EXPORTING_LIBRARY_SOURCE);
compiler.registerSource(
reexportingLibraryUri, REEXPORTING_LIBRARY_SOURCE);
return compiler.libraryLoader.loadLibrary(exportingLibraryUri);
}).then((exportingLibrary) {
Expect.isTrue(exportingLibrary.exportsHandled);
var foo = exportingLibrary.findExported('foo');
Expect.isNotNull(foo);
Expect.isTrue(foo.isField);
// Load reexporting library when exports are handled on the exporting library.
return compiler.libraryLoader.loadLibrary(reexportingLibraryUri);
}).then((reexportingLibrary) {
var foo = reexportingLibrary.findExported('foo');
Expect.isNotNull(foo);
Expect.isTrue(foo.isField);
}));
}