public void RemoveSingleLineTest() { DummyRender render = new DummyRender(); Document doc = new Document(); doc.LayoutLines.Render = render; DummyView view = new DummyView(doc, render); doc.Clear(); doc.Append("aa\nbb\ncc\ndd"); doc.Remove(9, 1); Assert.IsTrue( view.LayoutLines[0] == "aa\n" && view.LayoutLines[1] == "bb\n" && view.LayoutLines[2] == "cc\n" && view.LayoutLines[3] == "d" ); doc.Remove(9, 1); Assert.IsTrue( view.LayoutLines[0] == "aa\n" && view.LayoutLines[1] == "bb\n" && view.LayoutLines[2] == "cc\n" && view.LayoutLines[3] == "" ); doc.Remove(0, 1); Assert.IsTrue( view.LayoutLines[0] == "a\n" && view.LayoutLines[1] == "bb\n" && view.LayoutLines[2] == "cc\n" && view.LayoutLines[3] == "" ); }
public void QueryTest() { DummyRender render = new DummyRender(); Document doc = new Document(); doc.LayoutLines.Render = render; DummyView view = new DummyView(doc, render); doc.Clear(); doc.Append("a\nb\nc"); Assert.IsTrue(view.LayoutLines.GetIndexFromLineNumber(1) == 2); Assert.IsTrue(view.LayoutLines.GetLengthFromLineNumber(1) == 2); Assert.IsTrue(view.LayoutLines.GetLineNumberFromIndex(2) == 1); TextPoint tp = view.LayoutLines.GetTextPointFromIndex(2); Assert.IsTrue(tp.row == 1 && tp.col == 0); Assert.IsTrue(view.LayoutLines.GetIndexFromTextPoint(tp) == 2); doc.Insert(2, "a"); Assert.IsTrue(view.LayoutLines.GetIndexFromLineNumber(2) == 5); Assert.IsTrue(view.LayoutLines.GetLineNumberFromIndex(5) == 2); tp = view.LayoutLines.GetTextPointFromIndex(5); Assert.IsTrue(tp.row == 2 && tp.col == 0); Assert.IsTrue(view.LayoutLines.GetIndexFromTextPoint(tp) == 5); doc.Insert(0, "a"); Assert.IsTrue(view.LayoutLines.GetIndexFromLineNumber(2) == 6); Assert.IsTrue(view.LayoutLines.GetLineNumberFromIndex(6) == 2); tp = view.LayoutLines.GetTextPointFromIndex(6); Assert.IsTrue(tp.row == 2 && tp.col == 0); Assert.IsTrue(view.LayoutLines.GetIndexFromTextPoint(tp) == 6); }
public void TryPixelScrollTest() { DummyRender render = new DummyRender(); Document doc = new Document(); doc.LayoutLines.Render = render; DummyView view = new DummyView(doc, render); view.PageBound = new Rectangle(0, 0, 100, 30); doc.Clear(); doc.Append("a\nb\nc\nd"); bool result; result = view.TryScroll(0.0, 30.0); Assert.AreEqual(result, false); result = view.TryScroll(0.0, 30.0); Assert.AreEqual(result, false); result = view.TryScroll(0.0, 30.0); Assert.AreEqual(result, true); result = view.TryScroll(0.0, 30.0); Assert.AreEqual(result, true); Assert.AreEqual(doc.Src.Row, 3); result = view.TryScroll(0.0, -30.0); Assert.AreEqual(result, false); result = view.TryScroll(0.0, -30.0); Assert.AreEqual(result, false); result = view.TryScroll(0.0, -30.0); Assert.AreEqual(result, true); result = view.TryScroll(0.0, -30.0); Assert.AreEqual(doc.Src.Row, 0); Assert.AreEqual(result, true); }
public void ReplaceAllTest() { DummyRender render = new DummyRender(); Document doc = new Document(); doc.LayoutLines.Render = render; doc.Append("this is a pen"); doc.ReplaceAll2("is", "aaa"); Assert.IsTrue(doc.ToString(0) == "thaaa aaa a pen"); }
public void ReaderTest1() { DummyRender render = new DummyRender(); Document doc = new Document(); doc.LayoutLines.Render = render; doc.Append("a"); DocumentReader reader = doc.CreateReader(); Assert.IsTrue(reader.Read() == 'a'); Assert.IsTrue(reader.Peek() == -1); }
public void ReplaceRegexAllTest() { DummyRender render = new DummyRender(); Document doc = new Document(); doc.LayoutLines.Render = render; doc.Append("this is a pen\n"); doc.Append("this is a pen\n"); doc.SetFindParam("[a-z]+", true, RegexOptions.None); doc.ReplaceAll("aaa", false); Assert.IsTrue(doc.ToString(0) == "aaa aaa aaa aaa\naaa aaa aaa aaa\n"); }
public void RemoveMultiLineTest() { DummyRender render = new DummyRender(); Document doc = new Document(); doc.LayoutLines.Render = render; DummyView view = new DummyView(doc, render); doc.Clear(); doc.Append("a\n"); doc.Append("b\n"); doc.Append("c\n"); doc.Append("d\n"); doc.Append("e\n"); doc.Append("f\n"); doc.Remove(2, 4); Assert.IsTrue( view.LayoutLines[0] == "a\n" && view.LayoutLines[1] == "d\n" && view.LayoutLines[2] == "e\n" && view.LayoutLines[3] == "f\n"); doc.Remove(4, 4); Assert.IsTrue( view.LayoutLines[0] == "a\n" && view.LayoutLines[1] == "d\n"); doc.Clear(); doc.Append("a\n"); doc.Append("b\n"); doc.Append("c\n"); doc.Append("d\n"); doc.Remove(2, 6); Assert.IsTrue(view.LayoutLines[0] == "a\n"); doc.Clear(); doc.Append("a\n"); doc.Append("b\n"); doc.Append("c\n"); doc.Append("d\n"); doc.Append("e\n"); doc.Append("f\n"); doc.Insert(4, "a"); doc.Remove(2, 5); Assert.IsTrue( view.LayoutLines[0] == "a\n" && view.LayoutLines[1] == "d\n" && view.LayoutLines[2] == "e\n" && view.LayoutLines[3] == "f\n"); }
public void GetLinesText() { DummyRender render = new DummyRender(); Document doc = new Document(); doc.LayoutLines.Render = render; doc.Append("a\nb\nc"); var result = doc.GetLines(0, doc.Length - 1).ToArray(); Assert.AreEqual("a\n", result[0]); Assert.AreEqual("b\n", result[1]); Assert.AreEqual("c", result[2]); }
public void SelectTest() { DummyRender render = new DummyRender(); Document doc = new Document(); doc.LayoutLines.Render = render; EditView view = new EditView(doc, render); Controller ctrl = new Controller(doc, view); doc.Clear(); doc.Append("a\nb\nc"); doc.Select(0, 5); Assert.IsTrue(ctrl.SelectedText == "a\r\nb\r\nc"); }
public void SelectByWordTest() { DummyRender render = new DummyRender(); Document doc = new Document(); doc.LayoutLines.Render = render; EditView view = new EditView(doc, render); Controller ctrl = new Controller(doc, view); doc.Clear(); doc.Append("this is a pen"); doc.SelectWord(0); Assert.IsTrue(ctrl.SelectedText == "this"); }
public void MarkerTest() { DummyRender render = new DummyRender(); Document doc = new Document(); doc.LayoutLines.Render = render; doc.Append("this is a pen"); doc.SetMarker(MarkerIDs.Defalut, Marker.Create(0, 4, HilightType.Sold)); var markers = doc.Markers.Get(MarkerIDs.Defalut); foreach (var m in markers) { Assert.IsTrue(m.start == 0 && m.length == 4); } doc.SetMarker(MarkerIDs.Defalut, Marker.Create(5, 2, HilightType.Sold)); doc.RemoveMarker(MarkerIDs.Defalut, 0, 4); markers = doc.Markers.Get(MarkerIDs.Defalut); foreach (var m in markers) { Assert.IsTrue(m.start == 5 && m.length == 2); } doc.Insert(5, "a"); markers = doc.Markers.Get(MarkerIDs.Defalut, 0); foreach (var m in markers) { Assert.IsTrue(m.start == 6 && m.length == 2); } doc.Insert(10, "a"); markers = doc.Markers.Get(MarkerIDs.Defalut, 0); foreach (var m in markers) { Assert.IsTrue(m.start == 6 && m.length == 2); } doc.SetMarker(MarkerIDs.URL, Marker.Create(0, 4, HilightType.Sold)); doc.Markers.Clear(MarkerIDs.Defalut); foreach (int id in doc.Markers.IDs) { markers = doc.Markers.Get(id, 0); foreach (var m in markers) { Assert.IsTrue(m.start == 0 && m.length == 4); } } }
public void FindTest2() { DummyRender render = new DummyRender(); Document doc = new Document(); doc.LayoutLines.Render = render; doc.Append("is this a pen"); doc.SetFindParam("is", false, RegexOptions.None); IEnumerator <SearchResult> it = doc.Find(3, 4); it.MoveNext(); SearchResult sr = it.Current; Assert.IsTrue(sr.Start == 5 && sr.End == 6); }
public void ConvertToCodePoint() { DummyRender render = new DummyRender(); Document doc = new Document(); doc.LayoutLines.Render = render; EditView view = new EditView(doc, render); Controller ctrl = new Controller(doc, view); doc.Clear(); doc.Append("0"); doc.Select(0, 1); ctrl.ConvertToCodePoint(); Assert.IsTrue(doc.ToString(0) == "U30 "); }
public void ReaderTest2() { DummyRender render = new DummyRender(); Document doc = new Document(); doc.LayoutLines.Render = render; doc.Append("abc"); DocumentReader reader = doc.CreateReader(); char[] buf = new char[2]; int count = reader.Read(buf, 1, 2); Assert.IsTrue(buf[0] == 'b' && buf[1] == 'c'); Assert.IsTrue(count == 2); Assert.IsTrue(reader.Peek() == -1); }
public void SelectByRectTest() { DummyRender render = new DummyRender(); Document doc = new Document(); doc.LayoutLines.Render = render; EditView view = new EditView(doc, render); Controller ctrl = new Controller(doc, view); doc.Clear(); string str = "aa\nbb\ncc"; doc.Append(str); ctrl.RectSelection = true; doc.Select(0, 7); Assert.IsTrue(ctrl.SelectedText == "a\r\nb\r\nc\r\n"); }
public void RectEditTest() { DummyRender render = new DummyRender(); Document doc = new Document(); doc.LayoutLines.Render = render; EditView view = new EditView(doc, render); Controller ctrl = new Controller(doc, view); doc.Clear(); doc.Append("a\nb\nc"); ctrl.RectSelection = true; doc.Select(0, 5); ctrl.DoInputString("x", true); Assert.IsTrue( view.LayoutLines[0] == "x\n" && view.LayoutLines[1] == "x\n" && view.LayoutLines[2] == "x"); Assert.IsTrue( view.Selections[0].start == 0 && view.Selections[1].start == 2 && view.Selections[2].start == 4); ctrl.DoInputString("x", true); Assert.IsTrue( view.Selections[0].start == 1 && view.Selections[1].start == 4 && view.Selections[2].start == 7); doc.Clear(); doc.Append("a\nb\nc"); doc.Select(0, 4); ctrl.DoInputString("x"); Assert.IsTrue( view.LayoutLines[0] == "xa\n" && view.LayoutLines[1] == "xb\n" && view.LayoutLines[2] == "xc"); ctrl.DoBackSpaceAction(); Assert.IsTrue( view.LayoutLines[0] == "a\n" && view.LayoutLines[1] == "b\n" && view.LayoutLines[2] == "c"); }
public void CaretTest() { DummyRender render = new DummyRender(); Document doc = new Document(); doc.LayoutLines.Render = render; EditView view = new EditView(doc, render); Controller ctrl = new Controller(doc, view); doc.Clear(); doc.Append("abc\nef"); ctrl.JumpCaret(1); Assert.IsTrue(ctrl.SelectionStart == 1); ctrl.JumpToLineHead(0, false); Assert.IsTrue(ctrl.SelectionStart == 0); ctrl.JumpToLineEnd(0, false); Assert.IsTrue(ctrl.SelectionStart == 3); ctrl.JumpToHead(false); Assert.IsTrue(ctrl.SelectionStart == 0); ctrl.JumpToEnd(false); Assert.IsTrue(ctrl.SelectionStart == 4); doc.Clear(); doc.Append("a c\ndef"); ctrl.JumpCaret(0); ctrl.MoveCaretHorizontical(4, false, false); Assert.IsTrue(ctrl.SelectionStart == 4); ctrl.MoveCaretHorizontical(-4, false, false); Assert.IsTrue(ctrl.SelectionStart == 0); ctrl.MoveCaretHorizontical(-1, false, false); Assert.IsTrue(ctrl.SelectionStart == 0); //ドキュメントの先端を超えることはないはず ctrl.MoveCaretHorizontical(1, false, true); Assert.IsTrue(ctrl.SelectionStart == 2); ctrl.JumpCaret(0); ctrl.MoveCaretVertical(1, false); Assert.IsTrue(ctrl.SelectionStart == 4); ctrl.MoveCaretVertical(-1, false); Assert.IsTrue(ctrl.SelectionStart == 0); ctrl.MoveCaretVertical(-1, false); Assert.IsTrue(ctrl.SelectionStart == 0); //ドキュメントの先端を超えることはないはず }
public void UpdateItems() { DummyRender render = new DummyRender(); Document doc = new Document(); doc.LayoutLines.Render = render; FoldingCollection collection = new FoldingCollection(); collection.Add(new FoldingItem(0, 10)); collection.Add(new FoldingItem(1, 5)); collection.Add(new FoldingItem(15, 20)); collection.Add(new FoldingItem(16, 17)); collection.UpdateData(doc, 11, 1, 0); FoldingItem[] result = collection.GetRange(16, 4).ToArray(); Assert.IsTrue((result[0].Start == 16 && result[0].End == 21)); Assert.IsTrue((result[1].Start == 17 && result[1].End == 18)); collection.UpdateData(doc, 11, 0, 1); result = collection.GetRange(16, 4).ToArray(); Assert.IsTrue((result[0].Start == 15 && result[0].End == 20)); Assert.IsTrue((result[1].Start == 16 && result[1].End == 17)); }
public void InsertSingleLineTest() { DummyRender render = new DummyRender(); Document doc = new Document(); doc.LayoutLines.Render = render; DummyView view = new DummyView(doc, render); doc.Clear(); doc.Append("a\nb\nc\nd"); Assert.IsTrue(view.LayoutLines[0] == "a\n" && view.LayoutLines[1] == "b\n" && view.LayoutLines[2] == "c\n" && view.LayoutLines[3] == "d"); doc.Insert(2, "x"); Assert.IsTrue(view.LayoutLines[0] == "a\n" && view.LayoutLines[1] == "xb\n" && view.LayoutLines[2] == "c\n" && view.LayoutLines[3] == "d"); doc.Insert(3, "x"); Assert.IsTrue(view.LayoutLines[0] == "a\n" && view.LayoutLines[1] == "xxb\n" && view.LayoutLines[2] == "c\n" && view.LayoutLines[3] == "d"); doc.Insert(6, "x"); Assert.IsTrue(view.LayoutLines[0] == "a\n" && view.LayoutLines[1] == "xxb\n" && view.LayoutLines[2] == "xc\n" && view.LayoutLines[3] == "d"); doc.Insert(0, "x"); Assert.IsTrue(view.LayoutLines[0] == "xa\n" && view.LayoutLines[1] == "xxb\n" && view.LayoutLines[2] == "xc\n" && view.LayoutLines[3] == "d"); }
public void LineModeEditTest() { DummyRender render = new DummyRender(); Document doc = new Document(); doc.LayoutLines.Render = render; EditView view = new EditView(doc, render); Controller ctrl = new Controller(doc, view); doc.Clear(); doc.Append("abc"); ctrl.JumpCaret(0); ctrl.DoDeleteAction(); Assert.IsTrue(doc.ToString(0) == "bc"); ctrl.JumpCaret(1); ctrl.DoBackSpaceAction(); Assert.IsTrue(doc.ToString(0) == "c"); ctrl.DoInputChar('a'); Assert.IsTrue(doc.ToString(0) == "ac"); doc.Select(0, 2); ctrl.DoInputString("xb"); Assert.IsTrue(doc.ToString(0) == "xb"); doc.InsertMode = false; ctrl.JumpCaret(0); ctrl.DoInputChar('a'); Assert.IsTrue(doc.ToString(0) == "ab"); doc.Append("\n"); ctrl.JumpCaret(2); ctrl.DoInputChar('a'); Assert.IsTrue(doc.LayoutLines[0] == "aba\n"); doc.Clear(); doc.Append("a\na"); doc.Select(0, 3); ctrl.UpIndent(); Assert.IsTrue(doc.ToString(0) == "\ta\n\ta\n"); ctrl.DownIndent(); Assert.IsTrue(doc.ToString(0) == "a\na\n"); }
public void InsertMultiLineTest() { DummyRender render = new DummyRender(); Document doc = new Document(); doc.LayoutLines.Render = render; DummyView view = new DummyView(doc, render); doc.Clear(); doc.Append("a\nb\nc\nd"); doc.Insert(2, "f\ne"); Assert.IsTrue( view.LayoutLines[0] == "a\n" && view.LayoutLines[1] == "f\n" && view.LayoutLines[2] == "eb\n" && view.LayoutLines[3] == "c\n" && view.LayoutLines[4] == "d"); doc.Insert(3, "g\nh"); Assert.IsTrue( view.LayoutLines[0] == "a\n" && view.LayoutLines[1] == "fg\n" && view.LayoutLines[2] == "h\n" && view.LayoutLines[3] == "eb\n" && view.LayoutLines[4] == "c\n" && view.LayoutLines[5] == "d"); doc.Insert(0, "x\ny"); Assert.IsTrue( view.LayoutLines[0] == "x\n" && view.LayoutLines[1] == "ya\n" && view.LayoutLines[2] == "fg\n" && view.LayoutLines[3] == "h\n" && view.LayoutLines[4] == "eb\n" && view.LayoutLines[5] == "c\n" && view.LayoutLines[6] == "d"); }
public void WatchDogTest() { RegexMarkerPattern dog = new RegexMarkerPattern(new Regex("h[a-z]+"), HilightType.Url, new Color(0, 0, 0, 255)); IEnumerable <Marker> result = new List <Marker>() { Marker.Create(0, 4, HilightType.Url, new Color(0, 0, 0, 255)), Marker.Create(5, 4, HilightType.Url, new Color(0, 0, 0, 255)) }; string str = "html haml"; DummyRender render = new DummyRender(); Document doc = new Document(); doc.LayoutLines.Render = render; DummyView view = new DummyView(doc, render); doc.MarkerPatternSet.Add(MarkerIDs.Defalut, dog); doc.Clear(); doc.Append(str); IEnumerable <Marker> actual = doc.MarkerPatternSet.GetMarkers(new CreateLayoutEventArgs(0, str.Length, str)); this.AreEqual(result, actual); }