diff --git a/src/Umbraco.Core/StringExtensions.cs b/src/Umbraco.Core/StringExtensions.cs
index 8040e6397b..0985e0521c 100644
--- a/src/Umbraco.Core/StringExtensions.cs
+++ b/src/Umbraco.Core/StringExtensions.cs
@@ -1051,7 +1051,14 @@ namespace Umbraco.Core
/// The filtered string.
public static string ReplaceMany(this string text, IDictionary replacements)
{
- return Current.ShortStringHelper.ReplaceMany(text, replacements);
+ if (text == null) throw new ArgumentNullException(nameof(text));
+ if (replacements == null) throw new ArgumentNullException(nameof(replacements));
+
+
+ foreach (KeyValuePair item in replacements)
+ text = text.Replace(item.Key, item.Value);
+
+ return text;
}
///
@@ -1062,9 +1069,16 @@ namespace Umbraco.Core
/// The replacement character.
/// The filtered string.
public static string ReplaceMany(this string text, char[] chars, char replacement)
- {
- return Current.ShortStringHelper.ReplaceMany(text, chars, replacement);
- }
+ {
+ if (text == null) throw new ArgumentNullException(nameof(text));
+ if (chars == null) throw new ArgumentNullException(nameof(chars));
+
+
+ for (int i = 0; i < chars.Length; i++)
+ text = text.Replace(chars[i], replacement);
+
+ return text;
+ }
// FORMAT STRINGS
diff --git a/src/Umbraco.Core/Strings/DefaultShortStringHelper.cs b/src/Umbraco.Core/Strings/DefaultShortStringHelper.cs
index 42a2d3b5d4..3a9d9433f4 100644
--- a/src/Umbraco.Core/Strings/DefaultShortStringHelper.cs
+++ b/src/Umbraco.Core/Strings/DefaultShortStringHelper.cs
@@ -670,45 +670,6 @@ function validateSafeAlias(input, value, immediate, callback) {{
#endregion
- #region ReplaceMany
-
- ///
- /// Returns a new string in which all occurences of specified strings are replaced by other specified strings.
- ///
- /// The string to filter.
- /// The replacements definition.
- /// The filtered string.
- public virtual string ReplaceMany(string text, IDictionary replacements)
- {
- if (text == null) throw new ArgumentNullException(nameof(text));
- if (replacements == null) throw new ArgumentNullException(nameof(replacements));
-
-
- foreach (KeyValuePair item in replacements)
- text = text.Replace(item.Key, item.Value);
-
- return text;
- }
-
- ///
- /// Returns a new string in which all occurences of specified characters are replaced by a specified character.
- ///
- /// The string to filter.
- /// The characters to replace.
- /// The replacement character.
- /// The filtered string.
- public virtual string ReplaceMany(string text, char[] chars, char replacement)
- {
- if (text == null) throw new ArgumentNullException(nameof(text));
- if (chars == null) throw new ArgumentNullException(nameof(chars));
-
-
- for (int i = 0; i < chars.Length; i++)
- text = text.Replace(chars[i], replacement);
-
- return text;
- }
-
- #endregion
+
}
}
diff --git a/src/Umbraco.Core/Strings/IShortStringHelper.cs b/src/Umbraco.Core/Strings/IShortStringHelper.cs
index f48d43aa4f..7232b0efe7 100644
--- a/src/Umbraco.Core/Strings/IShortStringHelper.cs
+++ b/src/Umbraco.Core/Strings/IShortStringHelper.cs
@@ -77,23 +77,6 @@ namespace Umbraco.Core.Strings
/// Supports Utf8 and Ascii strings, not Unicode strings.
string SplitPascalCasing(string text, char separator);
- ///
- /// Returns a new string in which all occurences of specified strings are replaced by other specified strings.
- ///
- /// The string to filter.
- /// The replacements definition.
- /// The filtered string.
- string ReplaceMany(string text, IDictionary replacements);
-
- ///
- /// Returns a new string in which all occurences of specified characters are replaced by a specified character.
- ///
- /// The string to filter.
- /// The characters to replace.
- /// The replacement character.
- /// The filtered string.
- string ReplaceMany(string text, char[] chars, char replacement);
-
///
/// Cleans a string.
///
diff --git a/src/Umbraco.Tests/Strings/DefaultShortStringHelperTests.cs b/src/Umbraco.Tests/Strings/DefaultShortStringHelperTests.cs
index 19cac22287..543b4133f9 100644
--- a/src/Umbraco.Tests/Strings/DefaultShortStringHelperTests.cs
+++ b/src/Umbraco.Tests/Strings/DefaultShortStringHelperTests.cs
@@ -596,32 +596,7 @@ namespace Umbraco.Tests.Strings
Assert.AreEqual(expected, output);
}
- [Test] // can't do cases with an IDictionary
- public void ReplaceManyWithCharMap()
- {
- const string input = "télévisiön tzvâr ßup pof";
- const string expected = "television tzvar ssup pof";
- IDictionary replacements = new Dictionary
- {
- { "é", "e" },
- { "ö", "o" },
- { "â", "a" },
- { "ß", "ss" },
- { " ", " " },
- };
- var output = _helper.ReplaceMany(input, replacements);
- Assert.AreEqual(expected, output);
- }
-
- #region Cases
- [TestCase("val$id!ate|this|str'ing", "$!'", '-', "val-id-ate|this|str-ing")]
- [TestCase("val$id!ate|this|str'ing", "$!'", '*', "val*id*ate|this|str*ing")]
- #endregion
- public void ReplaceManyByOneChar(string input, string toReplace, char replacement, string expected)
- {
- var output = _helper.ReplaceMany(input, toReplace.ToArray(), replacement);
- Assert.AreEqual(expected, output);
- }
+
#region Cases
[TestCase("foo.txt", "foo.txt")]
diff --git a/src/Umbraco.Tests/Strings/MockShortStringHelper.cs b/src/Umbraco.Tests/Strings/MockShortStringHelper.cs
index dfdb307502..964e1d7ad2 100644
--- a/src/Umbraco.Tests/Strings/MockShortStringHelper.cs
+++ b/src/Umbraco.Tests/Strings/MockShortStringHelper.cs
@@ -59,16 +59,6 @@ namespace Umbraco.Tests.Strings
return "SPLIT-PASCAL-CASING::" + text;
}
- public string ReplaceMany(string text, IDictionary replacements)
- {
- return "REPLACE-MANY-A::" + text;
- }
-
- public string ReplaceMany(string text, char[] chars, char replacement)
- {
- return "REPLACE-MANY-B::" + text;
- }
-
public string CleanString(string text, CleanStringType stringType)
{
return "CLEAN-STRING-A::" + text;
diff --git a/src/Umbraco.Tests/Strings/StringExtensionsTests.cs b/src/Umbraco.Tests/Strings/StringExtensionsTests.cs
index be64ecbbd6..b297f27656 100644
--- a/src/Umbraco.Tests/Strings/StringExtensionsTests.cs
+++ b/src/Umbraco.Tests/Strings/StringExtensionsTests.cs
@@ -1,6 +1,8 @@
using System;
+using System.Collections.Generic;
using System.Diagnostics;
using System.Globalization;
+using System.Linq;
using NUnit.Framework;
using Umbraco.Core;
using Umbraco.Core.Composing;
@@ -232,18 +234,31 @@ namespace Umbraco.Tests.Strings
Assert.AreEqual("SPLIT-PASCAL-CASING::JUST-ANYTHING", output);
}
- [Test]
+ [Test] // can't do cases with an IDictionary
public void ReplaceManyWithCharMap()
{
- var output = "JUST-ANYTHING".ReplaceMany(null);
- Assert.AreEqual("REPLACE-MANY-A::JUST-ANYTHING", output);
+ const string input = "télévisiön tzvâr ßup pof";
+ const string expected = "television tzvar ssup pof";
+ IDictionary replacements = new Dictionary
+ {
+ { "é", "e" },
+ { "ö", "o" },
+ { "â", "a" },
+ { "ß", "ss" },
+ { " ", " " },
+ };
+ var output = input.ReplaceMany(replacements);
+ Assert.AreEqual(expected, output);
}
- [Test]
- public void ReplaceManyByOneChar()
+ #region Cases
+ [TestCase("val$id!ate|this|str'ing", "$!'", '-', "val-id-ate|this|str-ing")]
+ [TestCase("val$id!ate|this|str'ing", "$!'", '*', "val*id*ate|this|str*ing")]
+ #endregion
+ public void ReplaceManyByOneChar(string input, string toReplace, char replacement, string expected)
{
- var output = "JUST-ANYTHING".ReplaceMany(new char[] {}, '*');
- Assert.AreEqual("REPLACE-MANY-B::JUST-ANYTHING", output);
+ var output = input.ReplaceMany(toReplace.ToArray(), replacement);
+ Assert.AreEqual(expected, output);
}
}
}