Index: tests/language/inheritance_chain_test.dart |
diff --git a/tests/language/inheritance_chain_test.dart b/tests/language/inheritance_chain_test.dart |
new file mode 100644 |
index 0000000000000000000000000000000000000000..ef601523bfc644a2c6701650a7a868dc12766ff0 |
--- /dev/null |
+++ b/tests/language/inheritance_chain_test.dart |
@@ -0,0 +1,103 @@ |
+// Copyright (c) 2015, 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 "inheritance_chain_lib.dart"; |
+ |
+class A extends B { |
+ get id => "A"; |
+ get length => 1; |
+} |
+ |
+class C extends D { |
+ get id => "C"; |
+ get length => 3; |
+} |
+ |
+class X extends W { |
+ get id => "X"; |
+ get length => -3; |
+} |
+ |
+class Z extends Y { |
+ get id => "Z"; |
+ get length => -1; |
+} |
+ |
+main() { |
+ var instances = [ |
+ new A(), |
+ new B(), |
+ new C(), |
+ new D(), |
+ new W(), |
+ new X(), |
+ new Y(), |
+ new Z(), |
+ [], |
+ ]; |
+ |
+ var o = instances[0]; |
+ Expect.equals("A", o.id); |
+ Expect.equals(1, o.length); |
+ Expect.isTrue(o is A); |
+ Expect.isTrue(o is B); |
+ Expect.isTrue(o is C); |
+ Expect.isTrue(o is D); |
+ Expect.isTrue(o is W); |
+ Expect.isTrue(o is X); |
+ Expect.isTrue(o is Y); |
+ Expect.isTrue(o is Z); |
+ o = instances[1]; |
+ Expect.equals("B", o.id); |
+ Expect.equals(2, o.length); |
+ Expect.isTrue(o is B); |
+ Expect.isTrue(o is C); |
+ Expect.isTrue(o is D); |
+ Expect.isTrue(o is W); |
+ Expect.isTrue(o is X); |
+ Expect.isTrue(o is Y); |
+ Expect.isTrue(o is Z); |
+ o = instances[2]; |
+ Expect.equals("C", o.id); |
+ Expect.equals(3, o.length); |
+ Expect.isTrue(o is C); |
+ Expect.isTrue(o is D); |
+ Expect.isTrue(o is W); |
+ Expect.isTrue(o is X); |
+ Expect.isTrue(o is Y); |
+ Expect.isTrue(o is Z); |
+ o = instances[3]; |
+ Expect.equals("D", o.id); |
+ Expect.equals(4, o.length); |
+ Expect.isTrue(o is D); |
+ Expect.isTrue(o is W); |
+ Expect.isTrue(o is X); |
+ Expect.isTrue(o is Y); |
+ Expect.isTrue(o is Z); |
+ o = instances[4]; |
+ Expect.equals("W", o.id); |
+ Expect.equals(-4, o.length); |
+ Expect.isTrue(o is W); |
+ o = instances[5]; |
+ Expect.equals("X", o.id); |
+ Expect.equals(-3, o.length); |
+ Expect.isTrue(o is X); |
+ Expect.isTrue(o is W); |
+ o = instances[6]; |
+ Expect.equals("Y", o.id); |
+ Expect.equals(-2, o.length); |
+ Expect.isTrue(o is Y); |
+ Expect.isTrue(o is X); |
+ Expect.isTrue(o is W); |
+ o = instances[7]; |
+ Expect.equals("Z", o.id); |
+ Expect.equals(-1, o.length); |
+ Expect.isTrue(o is Z); |
+ Expect.isTrue(o is Y); |
+ Expect.isTrue(o is X); |
+ Expect.isTrue(o is W); |
+ o = instances[8]; |
+ Expect.equals(0, o.length); |
+} |