|  | // Copyright (c) 2012, 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"; | 
|  |  | 
|  | class Conster { | 
|  | const Conster(this.value); | 
|  |  | 
|  | final value; | 
|  |  | 
|  | toString() { | 
|  | return value.toString(); | 
|  | } | 
|  | } | 
|  |  | 
|  | main() { | 
|  | testEmpty(); | 
|  | testInterpolation(); | 
|  | testMultiline(); | 
|  | } | 
|  |  | 
|  | testEmpty() { | 
|  | Expect.equals("", (const Conster("" "" "")).toString()); | 
|  | Expect.equals("", (const Conster("" '' "")).toString()); | 
|  | Expect.equals("", (const Conster("" "" r"")).toString()); | 
|  |  | 
|  | Expect.equals("a", (const Conster("a" "")).toString()); | 
|  | Expect.equals("a", (const Conster("a" '')).toString()); | 
|  | Expect.equals("a", (const Conster("a" r'')).toString()); | 
|  |  | 
|  | Expect.equals("b", (const Conster('b' "")).toString()); | 
|  | Expect.equals("b", (const Conster('b' '')).toString()); | 
|  | Expect.equals("b", (const Conster('b' r'')).toString()); | 
|  |  | 
|  | Expect.equals("c", (const Conster(r'c' "")).toString()); | 
|  | Expect.equals("c", (const Conster(r'c' '')).toString()); | 
|  | Expect.equals("c", (const Conster(r'c' r'')).toString()); | 
|  |  | 
|  | Expect.equals("a", (const Conster("" "a")).toString()); | 
|  | Expect.equals("a", (const Conster("" 'a')).toString()); | 
|  | Expect.equals("a", (const Conster("" r'a')).toString()); | 
|  |  | 
|  | Expect.equals("b", (const Conster('' "b")).toString()); | 
|  | Expect.equals("b", (const Conster('' 'b')).toString()); | 
|  | Expect.equals("b", (const Conster('' r'b')).toString()); | 
|  |  | 
|  | Expect.equals("c", (const Conster(r'' "c")).toString()); | 
|  | Expect.equals("c", (const Conster(r'' 'c')).toString()); | 
|  | Expect.equals("c", (const Conster(r'' r'c')).toString()); | 
|  | } | 
|  |  | 
|  | const s = "a"; | 
|  |  | 
|  | testInterpolation() { | 
|  | Expect.equals(r"ab", (const Conster("$s" "b")).toString()); | 
|  | Expect.equals(r"ab", (const Conster('$s' "b")).toString()); | 
|  | Expect.equals(r"$sb", (const Conster(r'$s' "b")).toString()); | 
|  |  | 
|  | Expect.equals(r"-a-b", (const Conster("-$s-" "b")).toString()); | 
|  | Expect.equals(r"-a-b", (const Conster('-$s-' "b")).toString()); | 
|  | Expect.equals(r"-$s-b", (const Conster(r'-$s-' "b")).toString()); | 
|  |  | 
|  | Expect.equals(r"ba", (const Conster('b' "$s")).toString()); | 
|  | Expect.equals(r"ba", (const Conster('b' '$s')).toString()); | 
|  | Expect.equals(r"b$s", (const Conster('b' r'$s')).toString()); | 
|  |  | 
|  | Expect.equals(r"b-a-", (const Conster('b' "-$s-")).toString()); | 
|  | Expect.equals(r"b-a-", (const Conster('b' '-$s-')).toString()); | 
|  | Expect.equals(r"b-$s-", (const Conster('b' r'-$s-')).toString()); | 
|  | } | 
|  |  | 
|  | testMultiline() { | 
|  | Expect.equals( | 
|  | "abe", | 
|  | (const Conster("a" | 
|  | "b" | 
|  | "e")) | 
|  | .toString()); | 
|  | Expect.equals( | 
|  | "a b e", | 
|  | (const Conster("a " | 
|  | "b " | 
|  | "e")) | 
|  | .toString()); | 
|  | Expect.equals( | 
|  | "a b e", | 
|  | (const Conster("a" | 
|  | " b" | 
|  | " e")) | 
|  | .toString()); | 
|  |  | 
|  | Expect.equals( | 
|  | "abe", | 
|  | (const Conster(""" | 
|  | a""" | 
|  | "b" | 
|  | "e")) | 
|  | .toString()); | 
|  | Expect.equals( | 
|  | "a b e", | 
|  | (const Conster(""" | 
|  | a""" | 
|  | " b" | 
|  | " e")) | 
|  | .toString()); | 
|  |  | 
|  | Expect.equals( | 
|  | "abe", | 
|  | (const Conster(""" | 
|  | a""" | 
|  | """ | 
|  | b""" | 
|  | """ | 
|  | e""")) | 
|  | .toString()); | 
|  | } |