Fixing ellipsis extension method

--HG--
branch : 1.x
This commit is contained in:
Sebastien Ros
2011-10-26 15:24:28 -07:00
parent 64166e8b5e
commit f3bdce25d5
2 changed files with 19 additions and 1 deletions

View File

@@ -31,11 +31,29 @@ namespace Orchard.Tests.Utility.Extensions {
Assert.That(aCamel.CamelFriendly(), Is.StringMatching(""));
}
[Test]
public void Ellipsize_ShouldTuncateToTheExactNumber() {
const string toEllipsize = "Lorem ipsum";
Assert.That(toEllipsize.Ellipsize(2, ""), Is.StringMatching("Lo"));
Assert.That(toEllipsize.Ellipsize(1, ""), Is.StringMatching("L"));
Assert.That(toEllipsize.Ellipsize(0, ""), Is.StringMatching(""));
}
[Test]
public void Ellipsize_TruncatedToWordBoundary() {
const string toEllipsize = "Lorem ipsum";
Assert.That(toEllipsize.Ellipsize(8, ""), Is.StringMatching("Lorem"));
Assert.That(toEllipsize.Ellipsize(6, ""), Is.StringMatching("Lorem"));
Assert.That(toEllipsize.Ellipsize(5, ""), Is.StringMatching("Lorem"));
Assert.That(toEllipsize.Ellipsize(4, ""), Is.StringMatching(""));
}
[Test]
public void Ellipsize_LongStringTruncatedToNearestWord() {
const string toEllipsize = "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Maecenas sed purus quis purus orci aliquam.";
Assert.That(toEllipsize.Ellipsize(45), Is.StringMatching("Lorem ipsum dolor sit amet, consectetur …"));
}
[Test]
public void Ellipsize_ShortStringReturnedAsSame() {
const string toEllipsize = "Lorem ipsum";

View File

@@ -27,7 +27,7 @@ namespace Orchard.Utility.Extensions {
if (characterCount < 0 || text.Length <= characterCount)
return text;
var trimmed = Regex.Replace(text.Substring(0, characterCount + 1), @"\s+\S*$", "") ;
var trimmed = Regex.Replace(text.Substring(0, characterCount), @"\s+\S*$", "") ;
if(wordBoundary) {
trimmed = Regex.Replace(trimmed + ".", @"\W*\w*$", "");