blob: e7cde2208dd19bea6f431a568f5f2786f5d822a8 [file] [log] [blame]
// 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(),
);
}