Index: packages/smoke/test/static_in_pieces_test.dart |
diff --git a/packages/smoke/test/static_in_pieces_test.dart b/packages/smoke/test/static_in_pieces_test.dart |
new file mode 100644 |
index 0000000000000000000000000000000000000000..a18fbd20120df45db081d51fe0e114f42d6d3594 |
--- /dev/null |
+++ b/packages/smoke/test/static_in_pieces_test.dart |
@@ -0,0 +1,111 @@ |
+// 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. |
+ |
+/// Tests that a static configuration can be loaded in pieces, even with |
+/// deferred imports. |
+library smoke.test.static_in_pieces_test; |
+ |
+import 'package:unittest/unittest.dart'; |
+import 'package:smoke/smoke.dart' show Declaration, PROPERTY, METHOD; |
+import 'package:smoke/static.dart' show useGeneratedCode, StaticConfiguration; |
+import 'piece1.dart' as p1; |
+import 'piece2.dart' deferred as p2; |
+import 'common.dart' as smoke_0; |
+import 'common.dart' as common show main; |
+ |
+abstract class _M0 {} // C & A |
+ |
+final configuration = new StaticConfiguration( |
+ checkedMode: false, |
+ getters: { |
+ #i: (o) => o.i, |
+ #inc0: (o) => o.inc0, |
+ #inc1: (o) => o.inc1, |
+ #inc2: (o) => o.inc2, |
+ #toString: (o) => o.toString, |
+}, |
+ setters: { |
+ #i: (o, v) { |
+ o.i = v; |
+ }, |
+}, |
+ parents: { |
+ smoke_0.AnnotB: smoke_0.Annot, |
+ smoke_0.D: _M0, |
+ smoke_0.E2: smoke_0.E, |
+ smoke_0.F2: smoke_0.F, |
+ _M0: smoke_0.C, |
+}, |
+ declarations: { |
+ smoke_0.A: { |
+ #i: const Declaration(#i, int), |
+ #inc0: const Declaration(#inc0, Function, kind: METHOD), |
+ #inc1: const Declaration(#inc1, Function, kind: METHOD), |
+ #inc2: const Declaration(#inc2, Function, kind: METHOD), |
+ #j: const Declaration(#j, int), |
+ #j2: const Declaration(#j2, int, kind: PROPERTY), |
+ }, |
+ smoke_0.B: { |
+ #f: const Declaration(#f, int, isFinal: true), |
+ #w: const Declaration(#w, int, kind: PROPERTY), |
+ }, |
+ smoke_0.C: { |
+ #b: const Declaration(#b, smoke_0.B), |
+ #inc: const Declaration(#inc, Function, kind: METHOD), |
+ #x: const Declaration(#x, int), |
+ #y: const Declaration(#y, String), |
+ }, |
+ smoke_0.D: { |
+ #i2: const Declaration(#i2, int, kind: PROPERTY, isFinal: true), |
+ #x2: const Declaration(#x2, int, kind: PROPERTY, isFinal: true), |
+ }, |
+ smoke_0.E: { |
+ #noSuchMethod: const Declaration(#noSuchMethod, Function, kind: METHOD), |
+ #y: const Declaration(#y, int, kind: PROPERTY, isFinal: true), |
+ }, |
+ smoke_0.E2: {}, |
+ smoke_0.F: { |
+ #staticMethod: const Declaration(#staticMethod, Function, |
+ kind: METHOD, isStatic: true), |
+ }, |
+ smoke_0.F2: {}, |
+ smoke_0.G: { |
+ #b: const Declaration(#b, int, annotations: const [smoke_0.a1]), |
+ #d: const Declaration(#d, int, annotations: const [smoke_0.a2]), |
+ }, |
+ smoke_0.L: { |
+ #incM: const Declaration(#incM, Function, kind: METHOD), |
+ #m: const Declaration(#m, int, kind: PROPERTY, isFinal: true), |
+ }, |
+ smoke_0.L2: { |
+ #incM: const Declaration(#incM, Function, kind: METHOD), |
+ #m: const Declaration(#m, int), |
+ #n: const Declaration(#n, int), |
+ }, |
+ _M0: { |
+ #i: const Declaration(#i, int), |
+ #inc: const Declaration(#inc, Function, kind: METHOD), |
+ #inc0: const Declaration(#inc0, Function, kind: METHOD), |
+ #j: const Declaration(#j, int), |
+ #j2: const Declaration(#j2, int, kind: PROPERTY), |
+ }, |
+}, |
+ staticMethods: {}, |
+ names: {}); |
+ |
+main() { |
+ useGeneratedCode(configuration); |
+ |
+ expect(configuration.getters[#j], isNull); |
+ |
+ configuration.addAll(p1.configuration); |
+ expect(configuration.getters[#j], isNotNull); |
+ |
+ p2.loadLibrary().then((_) { |
+ expect(configuration.names[#i], isNull); |
+ configuration.addAll(p2.configuration); |
+ expect(configuration.names[#i], 'i'); |
+ common.main(); |
+ }); |
+} |