示例#1
0
        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] == ""
                );
        }
示例#2
0
        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);
        }
示例#3
0
        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);
        }
示例#4
0
        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");
        }
示例#5
0
        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);
        }
示例#6
0
        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");
        }
示例#7
0
        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");
        }
示例#8
0
        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");
        }
示例#10
0
        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");
        }
示例#11
0
        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);
                }
            }
        }
示例#12
0
        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);
        }
示例#13
0
        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 ");
        }
示例#14
0
        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);
        }
示例#15
0
        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");
        }
示例#16
0
        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");
        }
示例#17
0
        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);    //ドキュメントの先端を超えることはないはず
        }
示例#18
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));
        }
示例#19
0
        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");
        }
示例#20
0
        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");
        }
示例#21
0
        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");
        }
示例#22
0
        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);
        }