mirror of
https://github.com/OrchardCMS/Orchard.git
synced 2025-09-24 13:33:34 +08:00
Fixing ellipsis extension method
--HG-- branch : 1.x
This commit is contained in:
@@ -31,11 +31,29 @@ namespace Orchard.Tests.Utility.Extensions {
|
|||||||
Assert.That(aCamel.CamelFriendly(), Is.StringMatching(""));
|
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]
|
[Test]
|
||||||
public void Ellipsize_LongStringTruncatedToNearestWord() {
|
public void Ellipsize_LongStringTruncatedToNearestWord() {
|
||||||
const string toEllipsize = "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Maecenas sed purus quis purus orci aliquam.";
|
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 …"));
|
Assert.That(toEllipsize.Ellipsize(45), Is.StringMatching("Lorem ipsum dolor sit amet, consectetur …"));
|
||||||
}
|
}
|
||||||
|
|
||||||
[Test]
|
[Test]
|
||||||
public void Ellipsize_ShortStringReturnedAsSame() {
|
public void Ellipsize_ShortStringReturnedAsSame() {
|
||||||
const string toEllipsize = "Lorem ipsum";
|
const string toEllipsize = "Lorem ipsum";
|
||||||
|
@@ -27,7 +27,7 @@ namespace Orchard.Utility.Extensions {
|
|||||||
if (characterCount < 0 || text.Length <= characterCount)
|
if (characterCount < 0 || text.Length <= characterCount)
|
||||||
return text;
|
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) {
|
if(wordBoundary) {
|
||||||
trimmed = Regex.Replace(trimmed + ".", @"\W*\w*$", "");
|
trimmed = Regex.Replace(trimmed + ".", @"\W*\w*$", "");
|
||||||
|
Reference in New Issue
Block a user