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 |