// Copyright (c) 2014, 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. import 'package:expect/expect.dart'; import 'package:async_helper/async_helper.dart'; import "mixin_lib1.dart" deferred as lib1; import "mixin_lib2.dart" deferred as lib2; class NonDeferredMixin { foo() => "NonDeferredMixin"; } class NonDeferredMixin1 { foo() => "NonDeferredMixin1"; } class NonDeferredMixin2 { foo() => "NonDeferredMixin2"; } main() { Expect.equals("NonDeferredMixin", new NonDeferredMixin().foo()); Expect.equals("NonDeferredMixin1", new NonDeferredMixin1().foo()); Expect.equals("NonDeferredMixin2", new NonDeferredMixin2().foo()); asyncStart(); lib1.loadLibrary().then((_) { Expect.equals("lib1.Mixin", new lib1.Mixin().foo()); Expect.equals("A with NonDeferredMixin", new lib1.A().foo()); Expect.equals("B with lib1.Mixin", new lib1.B().foo()); Expect.equals("C with NonDeferredMixin1", new lib1.C().foo()); Expect.equals("D with lib1.Mixin", new lib1.D().foo()); Expect.equals("E with SharedMixin", new lib1.E().foo()); lib2.loadLibrary().then((_) { Expect.equals("lib2.A with SharedMixin", new lib2.A().foo()); asyncEnd(); }); }); }