| OLD | NEW | 
|---|
| 1 // Copyright (c) 2011, the Dart project authors.  Please see the AUTHORS file | 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 | 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. | 3 // BSD-style license that can be found in the LICENSE file. | 
| 4 | 4 | 
| 5 import "package:expect/expect.dart"; | 5 import "package:expect/expect.dart"; | 
| 6 | 6 | 
| 7 void main() { | 7 void main() { | 
| 8   testOutOfRange(); | 8   testOutOfRange(); | 
| 9   testIllegalArgument(); | 9   testIllegalArgument(); | 
| 10   testConcat(); | 10   testConcat(); | 
| (...skipping 18 matching lines...) Expand all  Loading... | 
| 29   for (var i = 0; i < 20; i++) { | 29   for (var i = 0; i < 20; i++) { | 
| 30     testStringLength(i, str); | 30     testStringLength(i, str); | 
| 31     str += " "; | 31     str += " "; | 
| 32   } | 32   } | 
| 33 } | 33 } | 
| 34 | 34 | 
| 35 void testOutOfRange() { | 35 void testOutOfRange() { | 
| 36   String a = "Hello"; | 36   String a = "Hello"; | 
| 37   bool exception_caught = false; | 37   bool exception_caught = false; | 
| 38   try { | 38   try { | 
| 39     var c = a[20];  // Throw exception. | 39     var c = a[20]; // Throw exception. | 
| 40   } on RangeError catch (e) { | 40   } on RangeError catch (e) { | 
| 41     exception_caught = true; | 41     exception_caught = true; | 
| 42   } | 42   } | 
| 43   Expect.isTrue(exception_caught); | 43   Expect.isTrue(exception_caught); | 
| 44 } | 44 } | 
| 45 | 45 | 
| 46 void testIllegalArgument() { | 46 void testIllegalArgument() { | 
| 47   String a = "Hello"; | 47   String a = "Hello"; | 
| 48   bool exception_caught = false; | 48   bool exception_caught = false; | 
| 49   try { | 49   try { | 
| 50     var c = a[2.2];  // Throw exception. | 50     var c = a[2.2]; // Throw exception. | 
| 51     Expect.fail("Accepting double as index"); | 51     Expect.fail("Accepting double as index"); | 
| 52   } on ArgumentError catch (e) { | 52   } on ArgumentError catch (e) { | 
| 53     exception_caught = true; | 53     exception_caught = true; | 
| 54   } on TypeError catch (e) {  // Thrown in checked mode only. | 54   } on TypeError catch (e) { | 
|  | 55     // Thrown in checked mode only. | 
| 55     exception_caught = true; | 56     exception_caught = true; | 
| 56   } | 57   } | 
| 57   Expect.isTrue(exception_caught); | 58   Expect.isTrue(exception_caught); | 
| 58 } | 59 } | 
| 59 | 60 | 
| 60 void testIndex() { | 61 void testIndex() { | 
| 61   String str = "string"; | 62   String str = "string"; | 
| 62   for (int i = 0; i < str.length; i++) { | 63   for (int i = 0; i < str.length; i++) { | 
| 63     Expect.isTrue(str[i] is String); | 64     Expect.isTrue(str[i] is String); | 
| 64     testStringLength(1, str[i]); | 65     testStringLength(1, str[i]); | 
| (...skipping 114 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 179   Expect.isTrue("str".startsWith(new RegExp("a?"), 3)); | 180   Expect.isTrue("str".startsWith(new RegExp("a?"), 3)); | 
| 180 | 181 | 
| 181   Expect.throws(() => "str".startsWith(regexp, -1)); | 182   Expect.throws(() => "str".startsWith(regexp, -1)); | 
| 182   Expect.throws(() => "str".startsWith(regexp, 4)); | 183   Expect.throws(() => "str".startsWith(regexp, 4)); | 
| 183 | 184 | 
| 184   regexp = new RegExp("^str"); | 185   regexp = new RegExp("^str"); | 
| 185   Expect.isTrue("strstr".startsWith(regexp)); | 186   Expect.isTrue("strstr".startsWith(regexp)); | 
| 186   Expect.isTrue("strstr".startsWith(regexp, 0)); | 187   Expect.isTrue("strstr".startsWith(regexp, 0)); | 
| 187   Expect.isFalse("strstr".startsWith(regexp, 1)); | 188   Expect.isFalse("strstr".startsWith(regexp, 1)); | 
| 188   Expect.isFalse("strstr".startsWith(regexp, 2)); | 189   Expect.isFalse("strstr".startsWith(regexp, 2)); | 
| 189   Expect.isFalse("strstr".startsWith(regexp, 3));  // Second "str" isn't at ^. | 190   Expect.isFalse("strstr".startsWith(regexp, 3)); // Second "str" isn't at ^. | 
| 190 } | 191 } | 
| 191 | 192 | 
| 192 void testIndexOf() { | 193 void testIndexOf() { | 
| 193   Expect.equals(0, "str".indexOf("", 0)); | 194   Expect.equals(0, "str".indexOf("", 0)); | 
| 194   Expect.equals(0, "".indexOf("", 0)); | 195   Expect.equals(0, "".indexOf("", 0)); | 
| 195   Expect.equals(-1, "".indexOf("a", 0)); | 196   Expect.equals(-1, "".indexOf("a", 0)); | 
| 196 | 197 | 
| 197   Expect.equals(1, "str".indexOf("t", 0)); | 198   Expect.equals(1, "str".indexOf("t", 0)); | 
| 198   Expect.equals(1, "str".indexOf("tr", 0)); | 199   Expect.equals(1, "str".indexOf("tr", 0)); | 
| 199   Expect.equals(0, "str".indexOf("str", 0)); | 200   Expect.equals(0, "str".indexOf("str", 0)); | 
| (...skipping 61 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 261   Expect.equals(2, "str".lastIndexOf("r", 2)); | 262   Expect.equals(2, "str".lastIndexOf("r", 2)); | 
| 262   Expect.equals(-1, "str".lastIndexOf("string", 2)); | 263   Expect.equals(-1, "str".lastIndexOf("string", 2)); | 
| 263 | 264 | 
| 264   Expect.equals(4, "strstr".lastIndexOf("t", 5)); | 265   Expect.equals(4, "strstr".lastIndexOf("t", 5)); | 
| 265   Expect.equals(4, "strstr".lastIndexOf("tr", 5)); | 266   Expect.equals(4, "strstr".lastIndexOf("tr", 5)); | 
| 266   Expect.equals(3, "strstr".lastIndexOf("str", 5)); | 267   Expect.equals(3, "strstr".lastIndexOf("str", 5)); | 
| 267   Expect.equals(3, "strstr".lastIndexOf("st", 5)); | 268   Expect.equals(3, "strstr".lastIndexOf("st", 5)); | 
| 268   Expect.equals(3, "strstr".lastIndexOf("s", 5)); | 269   Expect.equals(3, "strstr".lastIndexOf("s", 5)); | 
| 269   Expect.equals(5, "strstr".lastIndexOf("r", 5)); | 270   Expect.equals(5, "strstr".lastIndexOf("r", 5)); | 
| 270   Expect.throws(() { | 271   Expect.throws(() { | 
| 271       "str".lastIndexOf("string", 5); | 272     "str".lastIndexOf("string", 5); | 
| 272   }); | 273   }); | 
| 273   Expect.equals(4, "strstr".lastIndexOf("t", 5)); | 274   Expect.equals(4, "strstr".lastIndexOf("t", 5)); | 
| 274   Expect.equals(4, "strstr".lastIndexOf("tr", 5)); | 275   Expect.equals(4, "strstr".lastIndexOf("tr", 5)); | 
| 275   Expect.equals(3, "strstr".lastIndexOf("str", 5)); | 276   Expect.equals(3, "strstr".lastIndexOf("str", 5)); | 
| 276   Expect.equals(3, "strstr".lastIndexOf("str", 5)); | 277   Expect.equals(3, "strstr".lastIndexOf("str", 5)); | 
| 277   Expect.equals(3, "strstr".lastIndexOf("str", 5)); | 278   Expect.equals(3, "strstr".lastIndexOf("str", 5)); | 
| 278   Expect.equals(3, "strstr".lastIndexOf("st", 5)); | 279   Expect.equals(3, "strstr".lastIndexOf("st", 5)); | 
| 279   Expect.equals(3, "strstr".lastIndexOf("s", 5)); | 280   Expect.equals(3, "strstr".lastIndexOf("s", 5)); | 
| 280   Expect.equals(5, "strstr".lastIndexOf("r", 5)); | 281   Expect.equals(5, "strstr".lastIndexOf("r", 5)); | 
| 281   Expect.equals(2, "strstr".lastIndexOf("r", 4)); | 282   Expect.equals(2, "strstr".lastIndexOf("r", 4)); | 
| (...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 320 | 321 | 
| 321   Expect.isFalse("str".contains("sr", 0)); | 322   Expect.isFalse("str".contains("sr", 0)); | 
| 322   Expect.isFalse("str".contains("string", 0)); | 323   Expect.isFalse("str".contains("string", 0)); | 
| 323 | 324 | 
| 324   Expect.isTrue("str".contains("", 0)); | 325   Expect.isTrue("str".contains("", 0)); | 
| 325   Expect.isTrue("".contains("", 0)); | 326   Expect.isTrue("".contains("", 0)); | 
| 326   Expect.isFalse("".contains("s", 0)); | 327   Expect.isFalse("".contains("s", 0)); | 
| 327 } | 328 } | 
| 328 | 329 | 
| 329 void testReplaceAll() { | 330 void testReplaceAll() { | 
| 330   Expect.equals( | 331   Expect.equals("AtoBtoCDtoE", "AfromBfromCDfromE".replaceAll("from", "to")); | 
| 331       "AtoBtoCDtoE", "AfromBfromCDfromE".replaceAll("from", "to")); |  | 
| 332 | 332 | 
| 333   // Test with the replaced string at the begining. | 333   // Test with the replaced string at the begining. | 
| 334   Expect.equals( | 334   Expect.equals("toABtoCDtoE", "fromABfromCDfromE".replaceAll("from", "to")); | 
| 335       "toABtoCDtoE", "fromABfromCDfromE".replaceAll("from", "to")); |  | 
| 336 | 335 | 
| 337   // Test with the replaced string at the end. | 336   // Test with the replaced string at the end. | 
| 338   Expect.equals( | 337   Expect.equals( | 
| 339       "toABtoCDtoEto", "fromABfromCDfromEfrom".replaceAll("from", "to")); | 338       "toABtoCDtoEto", "fromABfromCDfromEfrom".replaceAll("from", "to")); | 
| 340 | 339 | 
| 341   // Test when there are no occurence of the string to replace. | 340   // Test when there are no occurence of the string to replace. | 
| 342   Expect.equals("ABC", "ABC".replaceAll("from", "to")); | 341   Expect.equals("ABC", "ABC".replaceAll("from", "to")); | 
| 343 | 342 | 
| 344   // Test when the string to change is the empty string. | 343   // Test when the string to change is the empty string. | 
| 345   Expect.equals("", "".replaceAll("from", "to")); | 344   Expect.equals("", "".replaceAll("from", "to")); | 
| (...skipping 29 matching lines...) Expand all  Loading... | 
| 375 } | 374 } | 
| 376 | 375 | 
| 377 void testCharCodes() { | 376 void testCharCodes() { | 
| 378   test(str) { | 377   test(str) { | 
| 379     var list = str.codeUnits; | 378     var list = str.codeUnits; | 
| 380     Expect.equals(str.length, list.length); | 379     Expect.equals(str.length, list.length); | 
| 381     for (int i = 0; i < str.length; i++) { | 380     for (int i = 0; i < str.length; i++) { | 
| 382       Expect.equals(str.codeUnitAt(i), list[i]); | 381       Expect.equals(str.codeUnitAt(i), list[i]); | 
| 383     } | 382     } | 
| 384   } | 383   } | 
|  | 384 | 
| 385   test("abc"); | 385   test("abc"); | 
| 386   test(""); | 386   test(""); | 
| 387   test(" "); | 387   test(" "); | 
| 388 } | 388 } | 
| 389 | 389 | 
| 390 void testStringLength(int length, String str) { | 390 void testStringLength(int length, String str) { | 
| 391   Expect.equals(length, str.length); | 391   Expect.equals(length, str.length); | 
| 392   (length == 0 ? Expect.isTrue : Expect.isFalse)(str.isEmpty); | 392   (length == 0 ? Expect.isTrue : Expect.isFalse)(str.isEmpty); | 
| 393   (length != 0 ? Expect.isTrue : Expect.isFalse)(str.isNotEmpty); | 393   (length != 0 ? Expect.isTrue : Expect.isFalse)(str.isNotEmpty); | 
| 394 } | 394 } | 
| (...skipping 41 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 436     } else if (repeat == 1) { | 436     } else if (repeat == 1) { | 
| 437       expect = str; | 437       expect = str; | 
| 438     } else { | 438     } else { | 
| 439       StringBuffer buf = new StringBuffer(); | 439       StringBuffer buf = new StringBuffer(); | 
| 440       for (int i = 0; i < repeat; i++) { | 440       for (int i = 0; i < repeat; i++) { | 
| 441         buf.write(str); | 441         buf.write(str); | 
| 442       } | 442       } | 
| 443       expect = buf.toString(); | 443       expect = buf.toString(); | 
| 444     } | 444     } | 
| 445     String actual = str * repeat; | 445     String actual = str * repeat; | 
| 446     Expect.equals(expect, actual, | 446     Expect.equals(expect, actual, "$str#${str.length} * $repeat"); | 
| 447                   "$str#${str.length} * $repeat"); |  | 
| 448   } | 447   } | 
|  | 448 | 
| 449   for (String str in testStrings) { | 449   for (String str in testStrings) { | 
| 450     for (int repeat in counts) { | 450     for (int repeat in counts) { | 
| 451       testRepeat(str, repeat); | 451       testRepeat(str, repeat); | 
| 452     } | 452     } | 
| 453   } | 453   } | 
| 454 } | 454 } | 
| 455 | 455 | 
| 456 void testPadLeft() { | 456 void testPadLeft() { | 
| 457   Expect.equals("    1", "1".padLeft(5, ' ')); | 457   Expect.equals("    1", "1".padLeft(5, ' ')); | 
| 458   Expect.equals("   11", "11".padLeft(5, ' ')); | 458   Expect.equals("   11", "11".padLeft(5, ' ')); | 
| (...skipping 26 matching lines...) Expand all  Loading... | 
| 485   Expect.equals('a', ''.padRight(1, 'a')); | 485   Expect.equals('a', ''.padRight(1, 'a')); | 
| 486   Expect.equals('aaaaa', ''.padRight(5, 'a')); | 486   Expect.equals('aaaaa', ''.padRight(5, 'a')); | 
| 487   Expect.equals('', ''.padRight(-2, 'a')); | 487   Expect.equals('', ''.padRight(-2, 'a')); | 
| 488 | 488 | 
| 489   Expect.equals('xyzxyzxyzxyzxyz', ''.padRight(5, 'xyz')); | 489   Expect.equals('xyzxyzxyzxyzxyz', ''.padRight(5, 'xyz')); | 
| 490   Expect.equals('axyzxyzxyzxyz', 'a'.padRight(5, 'xyz')); | 490   Expect.equals('axyzxyzxyzxyz', 'a'.padRight(5, 'xyz')); | 
| 491   Expect.equals('aaxyzxyzxyz', 'aa'.padRight(5, 'xyz')); | 491   Expect.equals('aaxyzxyzxyz', 'aa'.padRight(5, 'xyz')); | 
| 492   Expect.equals('aa\u{10002}\u{10002}\u{10002}', 'aa'.padRight(5, '\u{10002}')); | 492   Expect.equals('aa\u{10002}\u{10002}\u{10002}', 'aa'.padRight(5, '\u{10002}')); | 
| 493   Expect.equals('a', 'a'.padRight(10, '')); | 493   Expect.equals('a', 'a'.padRight(10, '')); | 
| 494 } | 494 } | 
| OLD | NEW | 
|---|