Fixing invalid BBcode filter state

This commit is contained in:
Sebastien Ros
2014-04-17 12:50:09 -07:00
parent 11d1aa0a57
commit 2432b7f326
2 changed files with 38 additions and 0 deletions

View File

@@ -34,5 +34,28 @@ namespace Orchard.Core.Tests.Common {
var processed = _filter.ProcessContent(text, null);
Assert.That(processed, Is.EqualTo("foo <a href=\"alink\">bar</a> baz"));
}
[Test]
public void ShouldIgnoreMalformedUrl() {
const string text = "foo [url]bar baz";
var processed = _filter.ProcessContent(text, null);
Assert.That(processed, Is.EqualTo("foo [url]bar baz"));
}
[Test]
public void ShouldIgnoreMalformedUrlWithTitle() {
const string text = "foo [url=alink]bar baz";
var processed = _filter.ProcessContent(text, null);
Assert.That(processed, Is.EqualTo("foo [url=alink]bar baz"));
}
[Test]
public void ShouldIgnoreMalformedImg() {
const string text = "foo [img]bar baz";
var processed = _filter.ProcessContent(text, null);
Assert.That(processed, Is.EqualTo("foo [img]bar baz"));
}
}
}

View File

@@ -32,6 +32,11 @@ namespace Orchard.Core.Common.Services {
foreach(var start in allIndexes) {
var end = text.IndexOf("[/url]", start, StringComparison.Ordinal);
if (end == -1) {
continue;
}
var url = text.Substring(start + 5 , end - start - 5);
// substitue [url] by <a>
@@ -50,6 +55,11 @@ namespace Orchard.Core.Common.Services {
foreach (var start in allIndexes) {
var urlEnd = text.IndexOf("]", start, StringComparison.Ordinal);
var end = text.IndexOf("[/url]", start, StringComparison.Ordinal);
if (end == -1) {
continue;
}
var url = text.Substring(start + 5, urlEnd - start - 5);
var title = text.Substring(urlEnd + 1, end - urlEnd - 1);
@@ -68,6 +78,11 @@ namespace Orchard.Core.Common.Services {
foreach (var start in allIndexes) {
var end = text.IndexOf("[/img]", start, StringComparison.Ordinal);
if (end == -1) {
continue;
}
var url = text.Substring(start + 5, end - start - 5);
// substitue [url] by <a>