Chromium Code Reviews| Index: frog/tests/leg_only/src/CascadeTest.dart |
| diff --git a/frog/tests/leg_only/src/CascadeTest.dart b/frog/tests/leg_only/src/CascadeTest.dart |
| new file mode 100644 |
| index 0000000000000000000000000000000000000000..adefec8e5191185494b61936c81a4a61373c7b23 |
| --- /dev/null |
| +++ b/frog/tests/leg_only/src/CascadeTest.dart |
| @@ -0,0 +1,51 @@ |
| +// Copyright (c) 2012, 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. |
| + |
| +// Test cascades. |
| + |
| +class A { |
| + int x; |
| + int y; |
| + A(this.x, this.y); |
| + A setX(int x) { this.x = x; return this; } |
|
ahe
2012/04/16 08:55:23
Would be nice with a single empty line between the
Lasse Reichstein Nielsen
2012/04/16 12:41:38
Done.
|
| + void setY(int y) { this.y = y; } |
| + Function swap() { |
| + int tmp = x; |
| + x = y; |
| + y = tmp; |
| + return this.swap; |
| + } |
| + void check(int x, int y) { |
| + Expect.equals(x, this.x); |
| + Expect.equals(y, this.y); |
| + } |
| + int operator[](var i) { |
| + if (i == 0) return x; |
| + if (i == 1) return y; |
| + if (i == "swap") return this.swap; |
| + return null; |
| + } |
| + int operator[]=(int i, int value) { |
| + if (i == 0) { |
| + x = value; |
| + } else if (i == 1) { |
| + y = value; |
| + } |
| + } |
| +} |
| + |
| +main() { |
| + A a = new A(1, 2); |
| + a..check(1, 2) |
| + ..swap()..check(2, 1) |
| + ..x = 4..y = 9..check(4, 9) |
| + ..setX(10)..check(10, 9) |
| + ..y = 5..check(10, 5) |
| + ..swap()()()..check(5, 10) |
| + ..[0] = 2..check(2, 10) |
| + ..setX(10).setY(3)..check(10, 3) |
| + ..setX(7)["swap"]()..check(3, 7) |
| + ..["swap"]()()()..check(7, 3); |
|
ahe
2012/04/16 08:55:23
I think this test will pass if cascades are no-ops
Lasse Reichstein Nielsen
2012/04/16 12:41:38
Good point. Done.
|
| + a..(42); /// 01: compile-time error |
|
ahe
2012/04/16 08:55:23
Additional suggestions for tests:
a..42; /// 02:
Lasse Reichstein Nielsen
2012/04/16 12:41:38
Done.
|
| +} |