blob: ae9b0f0b24eb310e2f4e91f7e00c110453431c83 [file] [log] [blame]
// 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();
}