for WinForms
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

180 lines
5.6 KiB

// <file>
// <copyright see="prj:///doc/copyright.txt"/>
// <license see="prj:///doc/license.txt"/>
// <owner name="Mike Krüger" email="mike@icsharpcode.net"/>
// <version>$Revision$</version>
// </file>
using ICSharpCode.TextEditor.Document;
using NUnit.Framework;
namespace ICSharpCode.TextEditor.Tests
{
[TestFixture]
public class DocumentAggregatorTests
{
[Test]
public void TestDocumentBug1Test()
{
var document = new DocumentFactory().CreateDocument();
var top = "1234567890";
document.TextContent = top;
Assert.AreEqual(document.GetLineSegment(lineNumber: 0).Length, document.TextLength);
document.Remove(offset: 0, length: document.TextLength);
var line = document.GetLineSegment(lineNumber: 0);
Assert.AreEqual(expected: 0, actual: line.Offset);
Assert.AreEqual(expected: 0, actual: line.Length);
Assert.AreEqual(expected: 0, actual: document.TextLength);
Assert.AreEqual(expected: 1, actual: document.TotalNumberOfLines);
}
[Test]
public void TestDocumentBug2Test()
{
var document = new DocumentFactory().CreateDocument();
var top = "123\n456\n789\n0";
var testText = "Hello World!";
document.TextContent = top;
document.Insert(top.Length, testText);
var line = document.GetLineSegment(document.TotalNumberOfLines - 1);
Assert.AreEqual(top.Length - 1, line.Offset);
Assert.AreEqual(testText.Length + 1, line.Length);
}
[Test]
public void TestDocumentGenerationTest()
{
new DocumentFactory().CreateDocument();
}
[Test]
public void TestDocumentInsertTest()
{
var document = new DocumentFactory().CreateDocument();
var top = "1234567890\n";
var testText =
"12345678\n" +
"1234567\n" +
"123456\n" +
"12345\n" +
"1234\n" +
"123\n" +
"12\n" +
"1\n" +
"\n";
document.TextContent = top;
document.Insert(top.Length, testText);
Assert.AreEqual(top + testText, document.TextContent);
}
[Test]
public void TestDocumentRemoveStoreTest()
{
var document = new DocumentFactory().CreateDocument();
var top = "1234567890\n";
var testText =
"12345678\n" +
"1234567\n" +
"123456\n" +
"12345\n" +
"1234\n" +
"123\n" +
"12\n" +
"1\n" +
"\n";
document.TextContent = top + testText;
document.Remove(offset: 0, length: top.Length);
Assert.AreEqual(document.TextContent, testText);
document.Remove(offset: 0, length: document.TextLength);
var line = document.GetLineSegment(lineNumber: 0);
Assert.AreEqual(expected: 0, actual: line.Offset);
Assert.AreEqual(expected: 0, actual: line.Length);
Assert.AreEqual(expected: 0, actual: document.TextLength);
Assert.AreEqual(expected: 1, actual: document.TotalNumberOfLines);
}
[Test]
public void TestDocumentStoreTest()
{
var document = new DocumentFactory().CreateDocument();
var testText = "1234567890\n" +
"12345678\n" +
"1234567\n" +
"123456\n" +
"12345\n" +
"1234\n" +
"123\n" +
"12\n" +
"1\n" +
"\n";
document.TextContent = testText;
Assert.AreEqual(testText, document.TextContent);
Assert.AreEqual(expected: 11, actual: document.TotalNumberOfLines);
Assert.AreEqual(testText.Length, document.TextLength);
}
// [Test]
// public void TestDocumentBug3Test()
// {
// IDocument document = new DocumentFactory().CreateDocument();
//
// string testText = "123\r\n";
//
// for (int i = 0; i < 5; ++i) {
// document.Insert(document.TextLength, testText);
// }
//
// document.Caret.Offset = testText.Length * 2 + 1;
// document.Remove(testText.Length * 2, 2);
//
// Assert.AreEqual(testText.Length * 2, document.Caret.Offset);
// }
// [Test]
// public void TestDocumentBug4Test()
// {
// IDocument document = new DocumentFactory().CreateDocument();
//
// string testText = "123\r\n";
//
// for (int i = 0; i < 5; ++i) {
// document.Insert(document.TextLength, testText);
// }
//
// document.Caret.Offset = testText.Length * 2 + 1;
// document.Replace(testText.Length * 2, 2, "");
//
// Assert.AreEqual(testText.Length * 2, document.Caret.Offset);
// }
//
// [Test]
// public void TestDocumentBug5Test()
// {
// IDocument document = new DocumentFactory().CreateDocument();
//
// for (int i = 3; i <= 5; ++i) {
// document.TextContent = "abcdefgh";
// document.Caret.Offset = i;
//
// document.Replace(2, 3, "Hello");
//
// Assert.AreEqual(i, document.Caret.Offset);
// }
// }
}
}