public void TestInsertText01() { textCore.SetCursorPosition(0, 0); //Cursor Position should be 0,0 textCore.InsertText("this is now the first line\n"); Assert.AreEqual(textCore.GetLine(0), "this is now the first line\n"); }
public void TestCopyPaste01() { textCore.SetCursorPosition(0, 0); textCore.SetOverrideModifierFlag(TextEditorCommand.Modifier.Shift); textCore.DoNavigation(Key.Right); textCore.SetOverrideModifierFlag(TextEditorCommand.Modifier.Shift); textCore.DoNavigation(Key.Right); textCore.SetOverrideModifierFlag(TextEditorCommand.Modifier.Shift); textCore.DoNavigation(Key.Right); Assert.AreEqual(textCore.GetSelectionText(), "hel"); textCore.DoCopyText(false); Assert.AreEqual(textCore.GetLine(0), "hello\n"); textCore.SetCursorPosition(0, 3); textCore.DoPasteText(); Assert.AreEqual(textCore.GetLine(3), "hel\tworld"); }
public void TestUndoEditing() { textCore.SetCursorPosition(3, 0); textCore.InsertText("testest"); Assert.AreEqual(textCore.GetLine(0), "heltestestlo\n"); textCore.UndoEditing(); Assert.AreEqual(textCore.GetLine(0), "hello\n"); textCore.UndoEditing(); Assert.AreEqual(textCore.GetLine(0), "hello\n"); Assert.AreEqual(textCore.LineCount, 4); }
public void DoControlBackspaceTest01() { textCore.SetCursorPosition(0, 2); textCore.DoControlCharacter(Key.Back); Assert.AreEqual(textCore.GetLine(1), "\t\tcruel\n"); Assert.AreEqual(textCore.LineCount, 3); }
public void TestCommentedLines() { string fileContent = "// This case tests the ability to format embedded comments\n" + "// properly. These include both multi-line and single-line\n" + "// comments syntax. \n" + " \n" + "// This line by itself should not be modified. \n" + " \n" + "a=2;// This line should be formatted (not indented). \n" + " \n" + "/* This is the beginning of a multi-line comment block \n" + " \n" + " This is a line within a multi-line comment block. \n" + " It is indented now but should not be indented further.\n" + " \n" + "This marks the end of a multi-line comment block */ \n" + " \n" + " [Imperative] // This should be un-indented. \n" + "{ \n" + " /* This is another multi-line \n" + " comment block, only that it \n" + " is indented for the scope */ \n" + " \n" + " // This should be indented. \n" + " \n" + "b=3;// Formatting should resume on this line. \n" + " c = 4 ; // And this line, too. \n" + "} \n" + " \n" + " // Spaces in comments shouldn't be normalized! \n"; Solution testSolution = Solution.CreateTemporary(); testSolution.AddNewScript(fileContent); testSolution.ActivateScript(0); TextEditorCore textCore = TextEditorCore.Instance; textCore.ChangeScript(0); textCore.ParseScriptImmediate(); SmartFormatter.Instance.AlternateEditorCore = textCore; bool formatted = textCore.FormatDocument(); Assert.AreEqual(true, formatted); SmartFormatter.Instance.AlternateEditorCore = null; Assert.AreEqual("// This case tests the ability to format embedded comments\n", textCore.GetLine(0)); Assert.AreEqual("// properly. These include both multi-line and single-line\n", textCore.GetLine(1)); Assert.AreEqual("// comments syntax. \n", textCore.GetLine(2)); Assert.AreEqual("\n", textCore.GetLine(3)); Assert.AreEqual("// This line by itself should not be modified. \n", textCore.GetLine(4)); Assert.AreEqual("\n", textCore.GetLine(5)); Assert.AreEqual("a = 2; // This line should be formatted (not indented). \n", textCore.GetLine(6)); Assert.AreEqual("\n", textCore.GetLine(7)); Assert.AreEqual("/* This is the beginning of a multi-line comment block \n", textCore.GetLine(8)); Assert.AreEqual("\n", textCore.GetLine(9)); Assert.AreEqual(" This is a line within a multi-line comment block. \n", textCore.GetLine(10)); Assert.AreEqual(" It is indented now but should not be indented further.\n", textCore.GetLine(11)); Assert.AreEqual("\n", textCore.GetLine(12)); Assert.AreEqual("This marks the end of a multi-line comment block */ \n", textCore.GetLine(13)); Assert.AreEqual("\n", textCore.GetLine(14)); Assert.AreEqual("[Imperative] // This should be un-indented. \n", textCore.GetLine(15)); Assert.AreEqual("{\n", textCore.GetLine(16)); Assert.AreEqual(" /* This is another multi-line \n", textCore.GetLine(17)); Assert.AreEqual(" comment block, only that it \n", textCore.GetLine(18)); Assert.AreEqual(" is indented for the scope */ \n", textCore.GetLine(19)); Assert.AreEqual(" \n", textCore.GetLine(20)); Assert.AreEqual(" // This should be indented. \n", textCore.GetLine(21)); Assert.AreEqual(" \n", textCore.GetLine(22)); Assert.AreEqual(" b = 3; // Formatting should resume on this line. \n", textCore.GetLine(23)); Assert.AreEqual(" c = 4; // And this line, too. \n", textCore.GetLine(24)); Assert.AreEqual("}\n", textCore.GetLine(25)); Assert.AreEqual("\n", textCore.GetLine(26)); Assert.AreEqual("// Spaces in comments shouldn't be normalized! \n", textCore.GetLine(27)); }
public void TestDeleteCurrentLine01() { textCore.SetCursorPosition(2, 2); textCore.DeleteCurrentLine(); Assert.AreEqual(textCore.GetLine(2), "\tworld".ToCharArray()); }
public void TestMoveSelectedText01() { //hruel\n //\twello\n //\n //\t\tcorld textCore.SetCursorPosition(1, 0); textCore.SetOverrideModifierFlag(TextEditorCommand.Modifier.Shift); textCore.SetCursorPosition(3, 2); textCore.MoveSelectedText(2, 3, false); Assert.AreEqual(textCore.GetLine(3), "\t\tcorld"); Assert.AreEqual(textCore.GetLine(2), "\n"); Assert.AreEqual(textCore.GetLine(1), "\twello\n"); Assert.AreEqual(textCore.GetLine(0), "hruel\n"); Assert.AreEqual(textCore.LineCount, 4); textCore.UndoEditing(); Assert.AreEqual(textCore.GetLine(3), "\tworld"); Assert.AreEqual(textCore.GetLine(2), "\t\tcruel\n"); Assert.AreEqual(textCore.GetLine(1), "\n"); Assert.AreEqual(textCore.GetLine(0), "hello\n"); Assert.AreEqual(textCore.LineCount, 4); }