| OLD | NEW | 
|---|
| 1 // Copyright (c) 2011, the Dart project authors.  Please see the AUTHORS file | 1 // Copyright (c) 2011, the Dart project authors.  Please see the AUTHORS file | 
| 2 // for details. All rights reserved. Use of this source code is governed by a | 2 // for details. All rights reserved. Use of this source code is governed by a | 
| 3 // BSD-style license that can be found in the LICENSE file. | 3 // BSD-style license that can be found in the LICENSE file. | 
| 4 // Dart test program testing string interpolation of expressions. | 4 // Dart test program testing string interpolation of expressions. | 
| 5 | 5 | 
| 6 import "package:expect/expect.dart"; | 6 import "package:expect/expect.dart"; | 
| 7 | 7 | 
| 8 |  | 
| 9 class StringInterpolate2Test { | 8 class StringInterpolate2Test { | 
| 10 |  | 
| 11   static var F1; | 9   static var F1; | 
| 12 | 10 | 
| 13   static void testMain() { | 11   static void testMain() { | 
| 14 |  | 
| 15     F1 = "1 + 5 = ${1+5}"; | 12     F1 = "1 + 5 = ${1+5}"; | 
| 16 | 13 | 
| 17     Expect.equals("1 + 5 = 6", F1); | 14     Expect.equals("1 + 5 = 6", F1); | 
| 18 | 15 | 
| 19     var fib = [1, 1, 2, 3, 5, 8, 13, 21]; | 16     var fib = [1, 1, 2, 3, 5, 8, 13, 21]; | 
| 20 | 17 | 
| 21     var i = 5; | 18     var i = 5; | 
| 22     var s = "${i}"; | 19     var s = "${i}"; | 
| 23     Expect.equals("5", s); | 20     Expect.equals("5", s); | 
| 24 | 21 | 
| 25     s = "fib(${i}) = ${fib[i]}"; | 22     s = "fib(${i}) = ${fib[i]}"; | 
| 26     Expect.equals("fib(5) = 8", s); | 23     Expect.equals("fib(5) = 8", s); | 
| 27 | 24 | 
| 28     i = 5; | 25     i = 5; | 
| 29     s = "$i squared is ${((x) => x*x)(i)}"; | 26     s = "$i squared is ${((x) => x*x)(i)}"; | 
| 30     Expect.equals("5 squared is 25", s); | 27     Expect.equals("5 squared is 25", s); | 
| 31 | 28 | 
| 32     Expect.equals("8", "${fib.length}"); | 29     Expect.equals("8", "${fib.length}"); | 
| 33     // test single quote | 30     // test single quote | 
| 34     Expect.equals("8", '${fib.length}'); | 31     Expect.equals("8", '${fib.length}'); | 
| 35     // test multi-line | 32     // test multi-line | 
| 36     Expect.equals("8", '${fib. | 33     Expect.equals( | 
|  | 34         "8", | 
|  | 35         '${fib. | 
| 37     length}'); | 36     length}'); | 
| 38 | 37 | 
| 39     var map = { "red": 1, "green": 2, "blue": 3 }; | 38     var map = {"red": 1, "green": 2, "blue": 3}; | 
| 40     s = "green has value ${map["green"]}"; | 39     s = "green has value ${map["green"]}"; | 
| 41     Expect.equals("green has value 2", s); | 40     Expect.equals("green has value 2", s); | 
| 42 | 41 | 
| 43     i = 0; | 42     i = 0; | 
| 44     b() => "${++i}"; | 43     b() => "${++i}"; | 
| 45     s = "aaa ${"bbb ${b()} bbb"} aaa ${b()}"; | 44     s = "aaa ${"bbb ${b()} bbb"} aaa ${b()}"; | 
| 46     Expect.equals("aaa bbb 1 bbb aaa 2", s); | 45     Expect.equals("aaa bbb 1 bbb aaa 2", s); | 
| 47 | 46 | 
| 48     // test multiple levels of nesting, including changing quotes and | 47     // test multiple levels of nesting, including changing quotes and | 
| 49     // multiline string types | 48     // multiline string types | 
| 50     s = "a ${(){ return 'b ${(){ return """ | 49     s = "a ${(){ return 'b ${(){ return """ | 
| 51 c""";}()}'; }()} d"; | 50 c""";}()}'; }()} d"; | 
| 52     Expect.equals("a b c d", s); | 51     Expect.equals("a b c d", s); | 
| 53   } | 52   } | 
| 54 } | 53 } | 
| 55 | 54 | 
| 56 main() { | 55 main() { | 
| 57   StringInterpolate2Test.testMain(); | 56   StringInterpolate2Test.testMain(); | 
| 58 } | 57 } | 
| OLD | NEW | 
|---|