dart-sdk/tests/language/string/adjacent_const_string_literals_test.dart
Robert Nystrom 1b2454b85e Migrate language_2/string to null safety.
Change-Id: Ib09f268c8a8edffba007cdd4962550a5e78ff808
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/151090
Reviewed-by: Erik Ernst <eernst@google.com>
Commit-Queue: Bob Nystrom <rnystrom@google.com>
Auto-Submit: Bob Nystrom <rnystrom@google.com>
2020-06-17 21:14:43 +00:00

117 lines
3.2 KiB
Dart

// 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());
}