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

Side by Side Diff: tests/corelib/src/StringTest.dart

Issue 10244009: test rename overhaul: step 7 - corelib tests (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Created 8 years, 7 months 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) 2011, 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 // TODO(ngeoffray): test String methods with null arguments.
6 class StringTest {
7
8 static testMain() {
9 testOutOfRange();
10 testIllegalArgument();
11 testConcat();
12 testIndex();
13 testCharCodeAt();
14 testEquals();
15 testEndsWith();
16 testStartsWith();
17 testIndexOf();
18 testLastIndexOf();
19 testContains();
20 testReplaceAll();
21 testCompareTo();
22 testToList();
23 testCharCodes();
24 }
25
26 static void testOutOfRange() {
27 String a = "Hello";
28 bool exception_caught = false;
29 try {
30 var c = a[20]; // Throw exception.
31 } catch (IndexOutOfRangeException e) {
32 exception_caught = true;
33 }
34 Expect.equals(true, exception_caught);
35 }
36
37 static testIllegalArgument() {
38 String a = "Hello";
39 bool exception_caught = false;
40 try {
41 var c = a[2.2]; // Throw exception.
42 Expect.equals(true, false);
43 } catch (IllegalArgumentException e) {
44 exception_caught = true;
45 } catch (TypeError e) { // Thrown in checked mode only.
46 exception_caught = true;
47 }
48 Expect.equals(true, exception_caught);
49 }
50
51 static testIndex() {
52 String str = "string";
53 for (int i = 0; i < str.length; i++) {
54 Expect.equals(true, str[i] is String);
55 Expect.equals(1, str[i].length);
56 }
57 }
58
59 static testCharCodeAt() {
60 String str = "string";
61 for (int i = 0; i < str.length; i++) {
62 Expect.equals(true, str.charCodeAt(i) is int);
63 }
64 }
65
66 static testConcat() {
67 var a = "One";
68 var b = "Four";
69 var c = a.concat(b);
70 Expect.equals(7, c.length);
71 Expect.equals("OneFour", c);
72 }
73
74 static testEquals() {
75 Expect.equals("str", "str");
76
77 Expect.equals("str", "s".concat("t").concat("r"));
78 Expect.equals("s".concat("t").concat("r"), "str");
79
80 Expect.equals(false, "str" == "s");
81 Expect.equals(false, "str" == "r");
82 Expect.equals(false, "str" == "st");
83 Expect.equals(false, "str" == "tr");
84
85 Expect.equals(false, "s" == "str");
86 Expect.equals(false, "r" == "str");
87 Expect.equals(false, "st" == "str");
88 Expect.equals(false, "tr" == "str");
89
90 Expect.equals(false, "" == "s");
91 Expect.equals("", "");
92 }
93
94 static testEndsWith() {
95 Expect.equals(true, "str".endsWith("r"));
96 Expect.equals(true, "str".endsWith("tr"));
97 Expect.equals(true, "str".endsWith("str"));
98
99 Expect.equals(false, "str".endsWith("stri"));
100 Expect.equals(false, "str".endsWith("t"));
101 Expect.equals(false, "str".endsWith("st"));
102 Expect.equals(false, "str".endsWith("s"));
103
104 Expect.equals(true, "".endsWith(""));
105 Expect.equals(false, "".endsWith("s"));
106 }
107
108 static testStartsWith() {
109 Expect.equals(true, "str".startsWith("s"));
110 Expect.equals(true, "str".startsWith("st"));
111 Expect.equals(true, "str".startsWith("str"));
112
113 Expect.equals(false, "str".startsWith("stri"));
114 Expect.equals(false, "str".startsWith("r"));
115 Expect.equals(false, "str".startsWith("tr"));
116 Expect.equals(false, "str".startsWith("t"));
117
118 Expect.equals(true, "".startsWith(""));
119 Expect.equals(false, "".startsWith("s"));
120 }
121
122 static testIndexOf() {
123 Expect.equals(0, "str".indexOf("", 0));
124 Expect.equals(0, "".indexOf("", 0));
125 Expect.equals(-1, "".indexOf("a", 0));
126
127 Expect.equals(1, "str".indexOf("t", 0));
128 Expect.equals(1, "str".indexOf("tr", 0));
129 Expect.equals(0, "str".indexOf("str", 0));
130 Expect.equals(0, "str".indexOf("st", 0));
131 Expect.equals(0, "str".indexOf("s", 0));
132 Expect.equals(2, "str".indexOf("r", 0));
133 Expect.equals(-1, "str".indexOf("string", 0));
134
135 Expect.equals(1, "strstr".indexOf("t", 0));
136 Expect.equals(1, "strstr".indexOf("tr", 0));
137 Expect.equals(0, "strstr".indexOf("str", 0));
138 Expect.equals(0, "strstr".indexOf("st", 0));
139 Expect.equals(0, "strstr".indexOf("s", 0));
140 Expect.equals(2, "strstr".indexOf("r", 0));
141 Expect.equals(-1, "str".indexOf("string", 0));
142
143 Expect.equals(4, "strstr".indexOf("t", 2));
144 Expect.equals(4, "strstr".indexOf("tr", 2));
145 Expect.equals(3, "strstr".indexOf("str", 1));
146 Expect.equals(3, "strstr".indexOf("str", 2));
147 Expect.equals(3, "strstr".indexOf("str", 3));
148 Expect.equals(3, "strstr".indexOf("st", 1));
149 Expect.equals(3, "strstr".indexOf("s", 3));
150 Expect.equals(5, "strstr".indexOf("r", 3));
151 Expect.equals(5, "strstr".indexOf("r", 4));
152 Expect.equals(5, "strstr".indexOf("r", 5));
153
154 String str = "hello";
155 for (int i = 0; i < 10; i++) {
156 int result = str.indexOf("", i);
157 if (i > str.length) {
158 Expect.equals(str.length, result);
159 } else {
160 Expect.equals(i, result);
161 }
162 }
163 }
164
165 static testLastIndexOf() {
166 Expect.equals(2, "str".lastIndexOf("", 2));
167 Expect.equals(0, "".lastIndexOf("", 0));
168 Expect.equals(-1, "".lastIndexOf("a", 0));
169
170 Expect.equals(1, "str".lastIndexOf("t", 2));
171 Expect.equals(1, "str".lastIndexOf("tr", 2));
172 Expect.equals(0, "str".lastIndexOf("str", 2));
173 Expect.equals(0, "str".lastIndexOf("st", 2));
174 Expect.equals(0, "str".lastIndexOf("s", 2));
175 Expect.equals(2, "str".lastIndexOf("r", 2));
176 Expect.equals(-1, "str".lastIndexOf("string", 2));
177
178 Expect.equals(4, "strstr".lastIndexOf("t", 5));
179 Expect.equals(4, "strstr".lastIndexOf("tr", 5));
180 Expect.equals(3, "strstr".lastIndexOf("str", 5));
181 Expect.equals(3, "strstr".lastIndexOf("st", 5));
182 Expect.equals(3, "strstr".lastIndexOf("s", 5));
183 Expect.equals(5, "strstr".lastIndexOf("r", 5));
184 Expect.equals(-1, "str".lastIndexOf("string", 5));
185
186 Expect.equals(4, "strstr".lastIndexOf("t", 5));
187 Expect.equals(4, "strstr".lastIndexOf("tr", 5));
188 Expect.equals(3, "strstr".lastIndexOf("str", 5));
189 Expect.equals(3, "strstr".lastIndexOf("str", 5));
190 Expect.equals(3, "strstr".lastIndexOf("str", 5));
191 Expect.equals(3, "strstr".lastIndexOf("st", 5));
192 Expect.equals(3, "strstr".lastIndexOf("s", 5));
193 Expect.equals(5, "strstr".lastIndexOf("r", 5));
194 Expect.equals(2, "strstr".lastIndexOf("r", 4));
195 Expect.equals(2, "strstr".lastIndexOf("r", 3));
196
197 String str = "hello";
198 for (int i = 0; i < 10; i++) {
199 int result = str.lastIndexOf("", i);
200 if (i > str.length) {
201 Expect.equals(str.length, result);
202 } else {
203 Expect.equals(i, result);
204 }
205 }
206 }
207
208 static testContains() {
209 Expect.equals(true, "str".contains("s", 0));
210 Expect.equals(true, "str".contains("st", 0));
211 Expect.equals(true, "str".contains("str", 0));
212 Expect.equals(true, "str".contains("t", 0));
213 Expect.equals(true, "str".contains("r", 0));
214 Expect.equals(true, "str".contains("tr", 0));
215
216 Expect.equals(false, "str".contains("sr", 0));
217 Expect.equals(false, "str".contains("string", 0));
218
219 Expect.equals(true, "str".contains("", 0));
220 Expect.equals(true, "".contains("", 0));
221 Expect.equals(false, "".contains("s", 0));
222 }
223
224 static testReplaceAll() {
225 Expect.equals(
226 "AtoBtoCDtoE", "AfromBfromCDfromE".replaceAll("from", "to"));
227
228 // Test with the replaced string at the begining.
229 Expect.equals(
230 "toABtoCDtoE", "fromABfromCDfromE".replaceAll("from", "to"));
231
232 // Test with the replaced string at the end.
233 Expect.equals(
234 "toABtoCDtoEto", "fromABfromCDfromEfrom".replaceAll("from", "to"));
235
236 // Test when there are no occurence of the string to replace.
237 Expect.equals("ABC", "ABC".replaceAll("from", "to"));
238
239 // Test when the string to change is the empty string.
240 Expect.equals("", "".replaceAll("from", "to"));
241
242 // Test when the string to change is a substring of the string to
243 // replace.
244 Expect.equals("fro", "fro".replaceAll("from", "to"));
245
246 // Test when the string to change is the replaced string.
247 Expect.equals("to", "from".replaceAll("from", "to"));
248
249 // Test when the string to change is the replacement string.
250 Expect.equals("to", "to".replaceAll("from", "to"));
251
252 // Test replacing by the empty string.
253 Expect.equals("", "from".replaceAll("from", ""));
254 Expect.equals("AB", "AfromB".replaceAll("from", ""));
255
256 // Test changing the empty string.
257 Expect.equals("to", "".replaceAll("", "to"));
258
259 // Test replacing the empty string.
260 Expect.equals("toAtoBtoCto", "ABC".replaceAll("", "to"));
261 }
262
263 static testCompareTo() {
264 Expect.equals(0, "".compareTo(""));
265 Expect.equals(0, "str".compareTo("str"));
266 Expect.equals(-1, "str".compareTo("string"));
267 Expect.equals(1, "string".compareTo("str"));
268 Expect.equals(1, "string".compareTo(""));
269 Expect.equals(-1, "".compareTo("string"));
270 }
271
272 static testToList() {
273 test(str) {
274 var list = str.splitChars();
275 Expect.equals(str.length, list.length);
276 for (int i = 0; i < str.length; i++) {
277 Expect.equals(str[i], list[i]);
278 }
279 }
280 test("abc");
281 test("");
282 test(" ");
283 }
284
285 static testCharCodes() {
286 test(str) {
287 var list = str.charCodes();
288 Expect.equals(str.length, list.length);
289 for (int i = 0; i < str.length; i++) {
290 Expect.equals(str.charCodeAt(i), list[i]);
291 }
292 }
293 test("abc");
294 test("");
295 test(" ");
296 }
297 }
298
299 main() {
300 StringTest.testMain();
301 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698