| // TODO(multitest): This was automatically migrated from a multitest and may | 
 | // contain strange or dead code. | 
 |  | 
 | // @dart = 2.9 | 
 |  | 
 | // 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. | 
 |  | 
 | import "package:expect/expect.dart"; | 
 |  | 
 | // Tests for string interpolation | 
 | class StringInterpolationTest { | 
 |   StringInterpolationTest() {} | 
 |  | 
 |   static void m() {} | 
 |  | 
 |   static const int i = 1; | 
 |   static const String a = "<hi>"; | 
 |  | 
 |   int j; | 
 |   int k; | 
 |  | 
 |   static testMain(bool alwaysFalse) { | 
 |     var test = new StringInterpolationTest(); | 
 |     test.j = 3; | 
 |     test.k = 5; | 
 |  | 
 |     // simple string | 
 |     Expect.equals(" hi ", " hi "); | 
 |  | 
 |     var c1 = '1'; | 
 |     var c2 = '2'; | 
 |     var c3 = '3'; | 
 |     var c4 = '4'; | 
 |     // no chars before/after/between embedded expressions | 
 |     Expect.equals(" 1", " ${c1}"); | 
 |     Expect.equals("1 ", "${c1} "); | 
 |     Expect.equals("1", "${c1}"); | 
 |     Expect.equals("12", "${c1}${c2}"); | 
 |     Expect.equals("12 34", "${c1}${c2} ${c3}${c4}"); | 
 |  | 
 |     // embedding static fields | 
 |     Expect.equals(" hi 1 ", " hi ${i} "); | 
 |     Expect.equals(" hi <hi> ", " hi ${a} "); | 
 |  | 
 |     // embedding method parameters | 
 |     Expect.equals("param = 9", test.embedParams(9)); | 
 |  | 
 |     // embedding a class field | 
 |     Expect.equals("j = 3", test.embedSingleField()); | 
 |  | 
 |     // embedding more than one (non-constant) expression | 
 |     Expect.equals(" hi 1 <hi>", " hi ${i} ${a}"); | 
 |     Expect.equals("j = 3; k = 5", test.embedMultipleFields()); | 
 |  | 
 |     // escaping $ - doesn't start the embedded expression | 
 |     Expect.equals("\$", "escaped     \${3+2}"[12]); | 
 |     Expect.equals("{", "escaped     \${3+2}"[13]); | 
 |     Expect.equals("3", "escaped     \${3+2}"[14]); | 
 |     Expect.equals("+", "escaped     \${3+2}"[15]); | 
 |     Expect.equals("2", "escaped     \${3+2}"[16]); | 
 |     Expect.equals("}", "escaped     \${3+2}"[17]); | 
 |  | 
 |     if (alwaysFalse) { | 
 |  | 
 |     } | 
 |  | 
 |     Expect.equals("${m}", "$m"); | 
 |   } | 
 |  | 
 |   String embedParams(int z) { | 
 |     return "param = ${z}"; | 
 |   } | 
 |  | 
 |   String embedSingleField() { | 
 |     return "j = ${j}"; | 
 |   } | 
 |  | 
 |   String embedMultipleFields() { | 
 |     return "j = ${j}; k = ${k}"; | 
 |   } | 
 | } | 
 |  | 
 | main() { | 
 |   StringInterpolationTest.testMain(false); | 
 | } |