Index: frog/tests/leg_only/string_interpolation_test.dart |
=================================================================== |
--- frog/tests/leg_only/string_interpolation_test.dart (revision 8644) |
+++ frog/tests/leg_only/string_interpolation_test.dart (working copy) |
@@ -1,126 +0,0 @@ |
-// 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. |
- |
-// Test that String interpolation works in the code generated by the leg |
-// compiler. |
- |
- |
-int ifun() => 37; |
-double dfun() => 2.71828; |
-bool bfun() => true; |
-String sfun() => "sfun"; |
-void nfun() => null; |
- |
- |
-void testEscapes() { |
- // Test that escaping the '$' prevents string interpolation. |
- String x = "NOT HERE"; |
- Expect.equals(@'a${x}', 'a\${x}'); |
- Expect.equals(@'a$x', 'a\$x'); |
- Expect.equals(@'a${x}', '''a\${x}'''); |
- Expect.equals(@'a$x', '''a\$x'''); |
- Expect.equals(@'a${x}', "a\${x}"); |
- Expect.equals(@'a$x', "a\$x"); |
- Expect.equals(@'a${x}', """a\${x}"""); |
- Expect.equals(@'a$x', """a\$x"""); |
-} |
- |
- |
-void testMultiLine() { |
- var a = "string"; |
- var b = 42; |
- var c = 3.1415; |
- var d = false; |
- var n = null; |
- |
- Expect.equals("string423.1415falsenull!", """$a$b$c$d$n!"""); |
- Expect.equals("string423.1415falsenull!", '''$a$b$c$d$n!'''); |
- Expect.equals("string423.1415falsenull!", """${a}${b}${c}${d}${n}!"""); |
- Expect.equals("string423.1415falsenull!", '''${a}${b}${c}${d}${n}!'''); |
- |
- // Quotes as literals are included correctly.. |
- Expect.equals("'42''42'", """'$b''$b'"""); |
- Expect.equals('"42""42"', '''"$b""$b"'''); |
- |
- Expect.equals('"42""42" ', """"$b""$b" """); |
- Expect.equals("'42''42' ", ''''$b''$b' '''); |
- |
- Expect.equals('""42""42" ', """""$b""$b" """); |
- Expect.equals("''42''42' ", '''''$b''$b' '''); |
- |
- // Newlines at beginning of multiline strings are not included, but only |
- // if they are in the source. |
- Expect.equals("\n", """${''} |
-"""); |
- Expect.equals("\r", """${''} |
-"""); |
- Expect.equals("\r\n", """${''} |
-"""); |
- Expect.equals("\n", """${'\n'}"""); |
- Expect.equals("\r", """${'\r'}"""); |
- Expect.equals("\r\n", """${'\r\n'}"""); |
-} |
- |
- |
-void testSimple() { |
- var a = "string"; |
- var b = 42; |
- var c = 3.1415; |
- var d = false; |
- var n = null; |
- |
- // Both kinds of quotes and both kinds of $-escapes. |
- Expect.equals("string423.1415falsenull!", "$a$b$c$d$n!"); |
- Expect.equals("string423.1415falsenull!", '$a$b$c$d$n!'); |
- Expect.equals("string423.1415falsenull!", "${a}${b}${c}${d}${n}!"); |
- Expect.equals("string423.1415falsenull!", '${a}${b}${c}${d}${n}!'); |
- |
- // Different types for first expression. |
- Expect.equals("!string423.1415falsenull", "!$a$b$c$d$n"); |
- Expect.equals("null!string423.1415false", "$n!$a$b$c$d"); |
- Expect.equals("falsenull!string423.1415", "$d$n!$a$b$c"); |
- Expect.equals("3.1415falsenull!string42", "$c$d$n!$a$b"); |
- Expect.equals("423.1415falsenull!string", "$b$c$d$n!$a"); |
- |
- // Function calls as expressions. |
- Expect.equals("sfun372.71828truenull", |
- "${sfun()}${ifun()}${dfun()}${bfun()}${nfun()}"); |
- Expect.equals("nullsfun372.71828true", |
- "${nfun()}${sfun()}${ifun()}${dfun()}${bfun()}"); |
- Expect.equals("truenullsfun372.71828", |
- "${bfun()}${nfun()}${sfun()}${ifun()}${dfun()}"); |
- Expect.equals("2.71828truenullsfun37", |
- "${dfun()}${bfun()}${nfun()}${sfun()}${ifun()}"); |
- Expect.equals("372.71828truenullsfun", |
- "${ifun()}${dfun()}${bfun()}${nfun()}${sfun()}"); |
- |
- |
- // String contents around interpolated parts. |
- Expect.equals("stringstring", "$a$a"); |
- Expect.equals("-stringstring", "-$a$a"); |
- Expect.equals("string-string", "$a-$a"); |
- Expect.equals("-string-string", "-$a-$a"); |
- Expect.equals("stringstring-", "$a$a-"); |
- Expect.equals("-stringstring-", "-$a$a-"); |
- Expect.equals("string-string-", "$a-$a-"); |
- Expect.equals("-string-string-", "-$a-$a-"); |
- |
- // Quotes as literals are included correctly.. |
- Expect.equals("'42''42'", "'$b''$b'"); |
- Expect.equals('"42""42"', '"$b""$b"'); |
- |
- // Nested string interpolation. |
- Expect.equals("string423.1415false", "${'${a}'}$b${'$c${d}'}"); |
- // Quad-nested string interpolation. |
- Expect.equals("string423.1415false", "${'${a}${"${b}${'${c}${"$d"}'}"}'}"); |
- // Lotsa-nested. |
- Expect.equals("42", "${'${"${'${"${'${"$b"}'}"}'}"}'}"); |
-} |
- |
- |
-void main() { |
- testSimple(); |
- testMultiLine(); |
- testEscapes(); |
-} |