Removing old cmspages

- Create new branch dev for iteration activity
- CmsPages was a leftover from the previous iteration where we rewrote it as the Pages package.

--HG--
branch : dev
This commit is contained in:
Suha Can
2010-02-04 11:26:46 -08:00
parent d013ff0d66
commit 7dadc87129
2 changed files with 0 additions and 118 deletions

View File

@@ -1,62 +0,0 @@
using System.Collections.Generic;
using System.IO;
using NUnit.Framework;
using Orchard.CmsPages.Services.Templates;
namespace Orchard.CmsPages.Tests.Services.Templates {
[TestFixture]
public class MetadataParserTests {
[Test]
public void ParserShouldReturnEmptyListForEmptyMetadata() {
var reader = new StringReader(" \r\n ");
var parser = new MetadataParser();
IList<MetadataEntry> result = parser.Parse(reader);
Assert.That(result.Count, Is.EqualTo(0));
}
[Test]
public void ParserShouldIgnoreEmptyTags() {
var reader = new StringReader(" : test value \r\n ");
var parser = new MetadataParser();
IList<MetadataEntry> result = parser.Parse(reader);
Assert.That(result.Count, Is.EqualTo(0));
}
[Test]
public void ParserShouldReturnMetadata() {
var reader = new StringReader("Description: test");
var parser = new MetadataParser();
IList<MetadataEntry> result = parser.Parse(reader);
Assert.That(result.Count, Is.EqualTo(1));
Assert.That(result[0].Tag, Is.EqualTo("Description"));
Assert.That(result[0].Value, Is.EqualTo("test"));
}
[Test]
public void ParserShouldReturnMultiMetadata() {
var reader = new StringReader("Description: test\r\n Tag2 : this is my test");
var parser = new MetadataParser();
IList<MetadataEntry> result = parser.Parse(reader);
Assert.That(result.Count, Is.EqualTo(2));
Assert.That(result[0].Tag, Is.EqualTo("Description"));
Assert.That(result[0].Value, Is.EqualTo("test"));
Assert.That(result[1].Tag, Is.EqualTo("Tag2"));
Assert.That(result[1].Value, Is.EqualTo("this is my test"));
}
[Test]
public void ParserShouldIgnoreTagsNotPreceededByNewLine() {
var reader = new StringReader("Description: test Tag2 : this is \r\n my test \r\n ");
var parser = new MetadataParser();
IList<MetadataEntry> result = parser.Parse(reader);
Assert.That(result.Count, Is.EqualTo(1));
Assert.That(result[0].Tag, Is.EqualTo("Description"));
Assert.That(result[0].Value, Is.EqualTo("test Tag2 : this is \r\n my test"));
}
}
}

View File

@@ -1,56 +0,0 @@
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Text.RegularExpressions;
namespace Orchard.CmsPages.Services.Templates {
/// <summary>
/// Parse the content of a text reader into a list of metadata entries.
/// </summary>
public class MetadataParser {
private readonly Regex _tagRegex;
public MetadataParser() {
_tagRegex = new Regex(@"^\s*(?<tag>\w+)\s*:\s*(?<value>)", RegexOptions.Multiline);
}
public IList<MetadataEntry> Parse(TextReader reader) {
string content = reader.ReadToEnd();
var result = new List<MetadataEntry>();
// Find matches
MatchCollection matches = _tagRegex.Matches(content);
// Process each match
for (int i = 0; i < matches.Count; i++) {
Match currentMatch = matches[i];
Match nextMatch = (i < matches.Count - 1 ? matches[i + 1] : null);
//int tagIndex = currentMatch.Groups["tag"].Index;
string tag = currentMatch.Groups["tag"].Value;
int valueIndex = currentMatch.Groups["value"].Index;
string value =
nextMatch == null ?
content.Substring(valueIndex) :
content.Substring(valueIndex, nextMatch.Groups["tag"].Index - valueIndex);
// Remove optional trailing space and line separators at end of value
int count = 0;
foreach (char ch in value.Reverse()) {
if (char.IsSeparator(ch) || char.IsWhiteSpace(ch) || ch == '\r' || ch == '\n') {
count++;
}
else {
break;
}
}
value = value.Substring(0, value.Length - count);
// Add result entry
result.Add(new MetadataEntry { Tag = tag, Value = value });
}
return result;
}
}
}