Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(360)

Side by Side Diff: dart/tests/language/string_interpolation_and_buffer.dart

Issue 11618037: Make StringBuffer and interpolation behave the same. (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge
Patch Set: Created 8 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
(Empty)
1 // Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file
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.
4
5 // Test to ensure that StringBuffer and string interpolation behaves
6 // the same and fail fast.
7
8 class ToStringWrapper {
9 final value;
10
11 ToStringWrapper(this.value);
12
13 toString() => value;
14 }
15
16 wrap(value) => new ToStringWrapper(value);
17
18 main() {
19 bool checkedMode = false;
20 assert(checkedMode = true);
21 interpolate(object) {
22 var result;
23 if (checkedMode && object != null) {
24 try {
25 result = '${wrap(object)}';
26 } on TypeError {
27 return 'Error';
28 }
29 } else {
30 try {
31 result = '${wrap(object)}';
32 } on ArgumentError {
33 return 'Error';
34 }
35 }
36 Expect.isTrue(result is String);
37 return 'GOOD';
Lasse Reichstein Nielsen 2012/12/20 23:21:57 Use 'Success', matching 'Error'. Or 'Good'/'Bad'.
ahe 2012/12/21 11:23:38 Done.
38 }
39
40 buffer(object) {
41 var sb;
42 if (checkedMode && object != null) {
43 try {
44 sb = new StringBuffer().add(wrap(object));
45 } on TypeError {
46 return 'Error';
47 }
48 } else {
49 try {
50 sb = new StringBuffer().add(wrap(object));
51 } on ArgumentError {
52 return 'Error';
53 }
54 Expect.isTrue(sb.toString() is String);
55 }
56 return 'GOOD';
57 }
58
59 Expect.equals('Error', interpolate(null));
60 Expect.equals('GOOD', interpolate(""));
61 Expect.equals('GOOD', interpolate("string"));
62 Expect.equals('Error', interpolate([]));
63 Expect.equals('Error', interpolate([1]));
64 Expect.equals('Error', interpolate(new Object()));
65
66 Expect.equals('Error', buffer(null));
67 Expect.equals('GOOD', buffer(""));
68 Expect.equals('GOOD', buffer("string"));
69 Expect.equals('Error', buffer([]));
70 Expect.equals('Error', buffer([1]));
71 Expect.equals('Error', buffer(new Object()));
72 }
OLDNEW
« dart/sdk/lib/core/string_buffer.dart ('K') | « dart/sdk/lib/core/string_buffer.dart ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698