// Copyright (c) 2011, 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.

/**
 * @assertion const DeferredLibrary(String libraryName, {String uri})
 * (from #11507: Lazy library loading is a hint to deployment tools.
 *  The VM is free to ignore this metadata.)
 * @description Checks that DeferredLibrary loads in lazy way.
 * @author kaigorodov
 * @todo move from LibTest to Language
 */

import "../../../Utils/expect.dart";

import 'DeferredLibrary_A01_t01.lib.dart' deferred as lazy;

void main() {
  try {
    lazy.method(); // foo is not loaded yet.
//    Expect.fail("NoSuchMethodError expected"); -- #11507: do not insist on lazy loading
  } on NoSuchMethodError  catch(ok) {
  }
  asyncStart();
  lazy.loadLibrary().then(onFooLoaded);
}

void onFooLoaded(_) {
  String name=lazy.method();
  Expect.equals('DeferredLibrary_A01_t01.lib', name);
  asyncEnd();
}
