SynEdit: Testcase: new, empty Edit (overwrite mode)

git-svn-id: trunk@25805 -
This commit is contained in:
martin 2010-05-31 17:52:15 +00:00
parent 86c35630a6
commit a5b3d7d219
3 changed files with 153 additions and 2 deletions

1
.gitattributes vendored
View File

@ -2086,6 +2086,7 @@ components/synedit/syntextdrawer.pp svneol=native#text/pascal
components/synedit/test/SynTest.lpi svneol=native#text/plain
components/synedit/test/SynTest.lpr svneol=native#text/pascal
components/synedit/test/testbase.pas svneol=native#text/pascal
components/synedit/test/testbasicsynedit.pas svneol=native#text/pascal
components/synedit/test/testhighlightmulti.pas svneol=native#text/pascal
components/synedit/test/testhighlightxml.pas svneol=native#text/pascal
components/synedit/test/testsynbeautifier.pas svneol=native#text/pascal

View File

@ -3,8 +3,10 @@ program SynTest;
{$mode objfpc}{$H+}
uses
Interfaces, Forms, GuiTestRunner, TestBase, TestSynSelection, TestSynBeautifier,
TestSyncroEdit, TestTrimSpace, TestHighlightXml, TestHighlightMulti;
Interfaces, Forms, GuiTestRunner, TestBase,
TestBasicSynEdit, TestSynSelection,
TestSynBeautifier, TestTrimSpace, TestSyncroEdit,
TestHighlightXml, TestHighlightMulti;
{$IFDEF WINDOWS}{ $R SynTest.rc}{$ENDIF}

View File

@ -0,0 +1,148 @@
unit TestBasicSynEdit;
(* TODO:
- TestEditEmpty:
Test with different sets of VirtualViews (with/without trimming (enabled/module present at all)
*)
{$mode objfpc}{$H+}
interface
uses
Classes, SysUtils, testregistry, LCLProc, LCLType, Forms, TestBase,
SynEdit, SynEditTextTrimmer, SynEditKeyCmds;
type
{ TTestBasicSynEdit }
TTestBasicSynEdit = class(TTestBase)
private
InsertFlag: Boolean;
TrimType: TSynEditStringTrimmingType;
TrimEnabled: Boolean;
protected
procedure ReCreateEdit; reintroduce;
published
procedure TestEditEmpty;
end;
implementation
procedure TTestBasicSynEdit.ReCreateEdit;
begin
inherited ReCreateEdit;
SynEdit.InsertMode := InsertFlag;
SynEdit.TrimSpaceType := TrimType;
if TrimEnabled then
SynEdit.Options := SynEdit.Options + [eoTrimTrailingSpaces]
else
SynEdit.Options := SynEdit.Options - [eoTrimTrailingSpaces];
end;
procedure TTestBasicSynEdit.TestEditEmpty;
procedure CheckText(aName: String; ExpText: String; ExpLines: Integer);
var
s: String;
begin
AssertEquals(BaseTestName + aName+' Count', ExpLines, SynEdit.Lines.Count);
// TestIsText (without Views => just real text)
// TestIsFullText (with Views => eg trimmed spaces)
s:='';
if ExpLines > 0 then
s := LineEnding;
TestIsText(aName+' Text', ExpText+s);
end;
procedure DoChecks;
begin
ReCreateEdit;
CheckText('Empty', '', 0);
SynEdit.CommandProcessor(ecChar, 'x', nil);
CheckText('After Insert "x"', 'x', 1);
ReCreateEdit;
SynEdit.CommandProcessor(ecChar, ' ', nil);
if TrimEnabled then begin
CheckText('After Insert <space>', '', 1);
if TrimType = settIgnoreAll then begin
TestIsFullText('After Insert <space> (FullText)', ''+LineEnding);
TestIsCaret('After Insert <space>', 2,1);
end else begin
TestIsFullText('After Insert <space> (FullText)', ' '+LineEnding);
TestIsCaret('After Insert <space>', 2,1);
end;
end else begin
CheckText('After Insert <space>', ' ', 1);
TestIsFullText('After Insert <space> (FullText)', ' '+LineEnding);
TestIsCaret('After Insert <space>', 2,1);
end;
ReCreateEdit;
CheckText('Empty', '', 0);
SynEdit.CommandProcessor(ecDeleteChar, '', nil);
CheckText('After ecDeleteChar', '', 0);
ReCreateEdit;
SynEdit.CommandProcessor(ecDeleteLastChar, '', nil);
CheckText('After ecDeleteLastChar', '', 0);
ReCreateEdit;
SynEdit.CommandProcessor(ecDeleteWord, '', nil);
CheckText('After ecDeleteWord', '', 0);
ReCreateEdit;
SynEdit.CommandProcessor(ecDeleteLastWord, '', nil);
CheckText('After ecDeleteLastWord', '', 0);
ReCreateEdit;
SynEdit.CommandProcessor(ecInsertLine, '', nil);
CheckText('After ecInsertLine', LineEnding, 2);
ReCreateEdit;
SynEdit.CommandProcessor(ecLineBreak, '', nil);
CheckText('After ecLineBreak', LineEnding, 2);
end;
begin
TrimEnabled := True;
TrimType := settEditLine;
PushBaseName('Trim=EditLine');
PushBaseName('InsertMode');
InsertFlag := True;
DoChecks;
PopPushBaseName('OverwriteMode');
InsertFlag := False;
DoChecks;
PopBaseName;
TrimType := settIgnoreAll;
PopPushBaseName('Trim=IgnoreAll');
PushBaseName('InsertMode');
InsertFlag := True;
DoChecks;
PopPushBaseName('OverwriteMode');
InsertFlag := False;
DoChecks;
PopBaseName;
TrimEnabled := False;
PopPushBaseName('Trim=Disabled');
PushBaseName('InsertMode');
InsertFlag := True;
DoChecks;
PopPushBaseName('OverwriteMode');
InsertFlag := False;
DoChecks;
PopBaseName;
end;
initialization
RegisterTest(TTestBasicSynEdit);
end.