| 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 main() { | 7 main() { |
| 8 // Test replaceFirst. | 8 // Test replaceFirst. |
| 9 Expect.equals("AtoBtoCDtoE", "AfromBtoCDtoE".replaceFirst("from", "to")); | 9 Expect.equals("AtoBtoCDtoE", "AfromBtoCDtoE".replaceFirst("from", "to")); |
| 10 | 10 |
| 11 // Test with the replaced string at the begining. | 11 // Test with the replaced string at the beginning. |
| 12 Expect.equals("toABtoCDtoE", "fromABtoCDtoE".replaceFirst("from", "to")); | 12 Expect.equals("toABtoCDtoE", "fromABtoCDtoE".replaceFirst("from", "to")); |
| 13 | 13 |
| 14 // Test with the replaced string at the end. | 14 // Test with the replaced string at the end. |
| 15 Expect.equals("toABtoCDtoEto", "fromABtoCDtoEto".replaceFirst("from", "to")); | 15 Expect.equals("toABtoCDtoEto", "fromABtoCDtoEto".replaceFirst("from", "to")); |
| 16 | 16 |
| 17 // Test when there are no occurence of the string to replace. | 17 // Test when there are no occurence of the string to replace. |
| 18 Expect.equals("ABC", "ABC".replaceFirst("from", "to")); | 18 Expect.equals("ABC", "ABC".replaceFirst("from", "to")); |
| 19 | 19 |
| 20 // Test when the string to change is the empty string. | 20 // Test when the string to change is the empty string. |
| 21 Expect.equals("", "".replaceFirst("from", "to")); | 21 Expect.equals("", "".replaceFirst("from", "to")); |
| (...skipping 15 matching lines...) Expand all Loading... |
| 37 // Test changing the empty string. | 37 // Test changing the empty string. |
| 38 Expect.equals("to", "".replaceFirst("", "to")); | 38 Expect.equals("to", "".replaceFirst("", "to")); |
| 39 | 39 |
| 40 // Test replacing the empty string. | 40 // Test replacing the empty string. |
| 41 Expect.equals("toAtoBtoCto", "AtoBtoCto".replaceFirst("", "to")); | 41 Expect.equals("toAtoBtoCto", "AtoBtoCto".replaceFirst("", "to")); |
| 42 | 42 |
| 43 // Test startIndex. | 43 // Test startIndex. |
| 44 Expect.equals( | 44 Expect.equals( |
| 45 "foo-AAA-foo-bar", "foo-bar-foo-bar".replaceFirst("bar", "AAA", 4)); | 45 "foo-AAA-foo-bar", "foo-bar-foo-bar".replaceFirst("bar", "AAA", 4)); |
| 46 | 46 |
| 47 // Test startIndex skipping one case at the begining. | 47 // Test startIndex skipping one case at the beginning. |
| 48 Expect.equals( | 48 Expect.equals( |
| 49 "foo-bar-AAA-bar", "foo-bar-foo-bar".replaceFirst("foo", "AAA", 1)); | 49 "foo-bar-AAA-bar", "foo-bar-foo-bar".replaceFirst("foo", "AAA", 1)); |
| 50 | 50 |
| 51 // Test startIndex skipping one case at the begining. | 51 // Test startIndex skipping one case at the beginning. |
| 52 Expect.equals( | 52 Expect.equals( |
| 53 "foo-bar-foo-AAA", "foo-bar-foo-bar".replaceFirst("bar", "AAA", 5)); | 53 "foo-bar-foo-AAA", "foo-bar-foo-bar".replaceFirst("bar", "AAA", 5)); |
| 54 | 54 |
| 55 // Test startIndex replacing with the empty string. | 55 // Test startIndex replacing with the empty string. |
| 56 Expect.equals("foo-bar--bar", "foo-bar-foo-bar".replaceFirst("foo", "", 1)); | 56 Expect.equals("foo-bar--bar", "foo-bar-foo-bar".replaceFirst("foo", "", 1)); |
| 57 | 57 |
| 58 // Test startIndex with a RegExp with carat | 58 // Test startIndex with a RegExp with carat |
| 59 Expect.equals("foo-bar-foo-bar", | 59 Expect.equals("foo-bar-foo-bar", |
| 60 "foo-bar-foo-bar".replaceFirst(new RegExp(r"^foo"), "", 8)); | 60 "foo-bar-foo-bar".replaceFirst(new RegExp(r"^foo"), "", 8)); |
| 61 | 61 |
| (...skipping 17 matching lines...) Expand all Loading... |
| 79 () => "hello".replaceFirst("h", "X", null), (e) => e is ArgumentError); | 79 () => "hello".replaceFirst("h", "X", null), (e) => e is ArgumentError); |
| 80 | 80 |
| 81 // Test object startIndex | 81 // Test object startIndex |
| 82 Expect.throws(() => "hello".replaceFirst("h", "X", new Object())); | 82 Expect.throws(() => "hello".replaceFirst("h", "X", new Object())); |
| 83 | 83 |
| 84 // Test replaceFirstMapped. | 84 // Test replaceFirstMapped. |
| 85 | 85 |
| 86 Expect.equals( | 86 Expect.equals( |
| 87 "AtoBtoCDtoE", "AfromBtoCDtoE".replaceFirstMapped("from", (_) => "to")); | 87 "AtoBtoCDtoE", "AfromBtoCDtoE".replaceFirstMapped("from", (_) => "to")); |
| 88 | 88 |
| 89 // Test with the replaced string at the begining. | 89 // Test with the replaced string at the beginning. |
| 90 Expect.equals( | 90 Expect.equals( |
| 91 "toABtoCDtoE", "fromABtoCDtoE".replaceFirstMapped("from", (_) => "to")); | 91 "toABtoCDtoE", "fromABtoCDtoE".replaceFirstMapped("from", (_) => "to")); |
| 92 | 92 |
| 93 // Test with the replaced string at the end. | 93 // Test with the replaced string at the end. |
| 94 Expect.equals("toABtoCDtoEto", | 94 Expect.equals("toABtoCDtoEto", |
| 95 "fromABtoCDtoEto".replaceFirstMapped("from", (_) => "to")); | 95 "fromABtoCDtoEto".replaceFirstMapped("from", (_) => "to")); |
| 96 | 96 |
| 97 // Test when there are no occurence of the string to replace. | 97 // Test when there are no occurence of the string to replace. |
| 98 Expect.equals("ABC", "ABC".replaceFirstMapped("from", (_) => "to")); | 98 Expect.equals("ABC", "ABC".replaceFirstMapped("from", (_) => "to")); |
| 99 | 99 |
| (...skipping 17 matching lines...) Expand all Loading... |
| 117 // Test changing the empty string. | 117 // Test changing the empty string. |
| 118 Expect.equals("to", "".replaceFirstMapped("", (_) => "to")); | 118 Expect.equals("to", "".replaceFirstMapped("", (_) => "to")); |
| 119 | 119 |
| 120 // Test replacing the empty string. | 120 // Test replacing the empty string. |
| 121 Expect.equals("toAtoBtoCto", "AtoBtoCto".replaceFirstMapped("", (_) => "to")); | 121 Expect.equals("toAtoBtoCto", "AtoBtoCto".replaceFirstMapped("", (_) => "to")); |
| 122 | 122 |
| 123 // Test startIndex. | 123 // Test startIndex. |
| 124 Expect.equals("foo-AAA-foo-bar", | 124 Expect.equals("foo-AAA-foo-bar", |
| 125 "foo-bar-foo-bar".replaceFirstMapped("bar", (_) => "AAA", 4)); | 125 "foo-bar-foo-bar".replaceFirstMapped("bar", (_) => "AAA", 4)); |
| 126 | 126 |
| 127 // Test startIndex skipping one case at the begining. | 127 // Test startIndex skipping one case at the beginning. |
| 128 Expect.equals("foo-bar-AAA-bar", | 128 Expect.equals("foo-bar-AAA-bar", |
| 129 "foo-bar-foo-bar".replaceFirstMapped("foo", (_) => "AAA", 1)); | 129 "foo-bar-foo-bar".replaceFirstMapped("foo", (_) => "AAA", 1)); |
| 130 | 130 |
| 131 // Test startIndex skipping one case at the begining. | 131 // Test startIndex skipping one case at the beginning. |
| 132 Expect.equals("foo-bar-foo-AAA", | 132 Expect.equals("foo-bar-foo-AAA", |
| 133 "foo-bar-foo-bar".replaceFirstMapped("bar", (_) => "AAA", 5)); | 133 "foo-bar-foo-bar".replaceFirstMapped("bar", (_) => "AAA", 5)); |
| 134 | 134 |
| 135 // Test startIndex replacing with the empty string. | 135 // Test startIndex replacing with the empty string. |
| 136 Expect.equals("foo-bar--bar", | 136 Expect.equals("foo-bar--bar", |
| 137 "foo-bar-foo-bar".replaceFirstMapped("foo", (_) => "", 1)); | 137 "foo-bar-foo-bar".replaceFirstMapped("foo", (_) => "", 1)); |
| 138 | 138 |
| 139 // Test startIndex with a RegExp with carat | 139 // Test startIndex with a RegExp with carat |
| 140 Expect.equals("foo-bar-foo-bar", | 140 Expect.equals("foo-bar-foo-bar", |
| 141 "foo-bar-foo-bar".replaceFirstMapped(new RegExp(r"^foo"), (_) => "", 8)); | 141 "foo-bar-foo-bar".replaceFirstMapped(new RegExp(r"^foo"), (_) => "", 8)); |
| (...skipping 76 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 218 Expect.throws(() => string.replaceRange(0, 0, ["x"])); | 218 Expect.throws(() => string.replaceRange(0, 0, ["x"])); |
| 219 Expect.throws(() => string.replaceRange(-1, 0, "x")); | 219 Expect.throws(() => string.replaceRange(-1, 0, "x")); |
| 220 Expect.throws(() => string.replaceRange(0, string.length + 1, "x")); | 220 Expect.throws(() => string.replaceRange(0, string.length + 1, "x")); |
| 221 } | 221 } |
| 222 } | 222 } |
| 223 | 223 |
| 224 // Fails to return a String on toString, throws if converted by "$naughty". | 224 // Fails to return a String on toString, throws if converted by "$naughty". |
| 225 class Naughty { | 225 class Naughty { |
| 226 toString() => this; | 226 toString() => this; |
| 227 } | 227 } |
| OLD | NEW |