| // 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. |
| // Dart test program testing string interpolation. |
| |
| import "package:expect/expect.dart"; |
| |
| |
| class WhatchamaCallIt { |
| WhatchamaCallIt() { } |
| |
| String foo() { |
| // Test $this and Field name is defined in subclass. |
| return "$this and $name"; |
| } |
| } |
| |
| class ThingamaBob extends WhatchamaCallIt { |
| ThingamaBob(String s) : super(), name = s { } |
| String name; |
| toString() => "Hansel"; |
| } |
| |
| class StringInterpolateTest { |
| |
| static const String A = "svin"; |
| static const String B = "hest"; |
| static const int N = 1 + 1; |
| static String Printers; |
| static String AAR_Printers; |
| |
| static testMain() { |
| Printers = "Printers: $A and $B"; |
| AAR_Printers = "AAR has $N $Printers."; |
| |
| var x = 1; |
| var s = "eins und \$x macht zwei."; |
| print(s); |
| Expect.equals(r"eins und $x macht zwei.", s); |
| |
| s = "eins und $x macht zwei."; |
| print(s); |
| Expect.equals(r"eins und 1 macht zwei.", s); |
| |
| print(AAR_Printers); |
| Expect.equals(r"AAR has 2 Printers: svin and hest.", AAR_Printers); |
| |
| var s$eins = "eins"; |
| var $1 = 1; |
| var zw = "zw"; |
| var ei = "ei"; |
| var zw$ei = "\"Martini, dry? Nai zwai.\""; |
| s = "${s$eins} und ${$1} macht $zw$ei."; |
| print(s); |
| Expect.equals(r"eins und 1 macht zwei.", s); |
| |
| var t = new ThingamaBob("Gretel"); |
| print(t.foo()); |
| Expect.equals(t.foo(), "Hansel and Gretel"); |
| } |
| } |
| |
| main() { |
| StringInterpolateTest.testMain(); |
| } |