mirror of
https://gitlab.com/freepascal.org/lazarus/lazarus.git
synced 2025-04-13 17:59:32 +02:00
Turbopower_ipro: Add test application to check rendering of various html features.
This commit is contained in:
parent
6073152919
commit
c8481dc058
157
components/turbopower_ipro/test_cases/ipro_tests.pas
Normal file
157
components/turbopower_ipro/test_cases/ipro_tests.pas
Normal file
@ -0,0 +1,157 @@
|
||||
unit ipro_tests;
|
||||
|
||||
{$mode ObjFPC}{$H+}
|
||||
|
||||
interface
|
||||
|
||||
uses
|
||||
Classes, SysUtils;
|
||||
|
||||
const
|
||||
LE = LineEnding;
|
||||
|
||||
BRinBODY_title =
|
||||
'<BR> between two words in BODY';
|
||||
BRinBODY_html =
|
||||
'<html>' + LE +
|
||||
'<body>' + LE +
|
||||
' abc<br>def' + LE +
|
||||
'</body>' + LE +
|
||||
'</html>';
|
||||
BRinBODY_descr =
|
||||
'The two words should be in separate lines, having no additional empty line between.';
|
||||
|
||||
TwoBRinBODY_title =
|
||||
'Two <BR> tags between two words in BODY';
|
||||
TwoBRinBODY_html =
|
||||
'<html>' + LE +
|
||||
'<body>' + LE +
|
||||
' abc<br><br>def' + LE +
|
||||
'</body>' + LE +
|
||||
'</html>';
|
||||
TwoBRinBODY_descr =
|
||||
'The two words should be in separate lines with additional empty line between.';
|
||||
|
||||
BRinP_title =
|
||||
'<BR> between two words in P nodes';
|
||||
BRinP_html =
|
||||
'<html>' + LE +
|
||||
'<body>' + LE +
|
||||
' <p>abc<br>def</p>' + LE +
|
||||
'</body>' + LE +
|
||||
'</html>';
|
||||
BRinP_descr =
|
||||
'The two words should be in separate lines, having no additional empty line between.';
|
||||
|
||||
TwoBRinP_title =
|
||||
'Two <BR> tags between two words in P nodes';
|
||||
TwoBRinP_html =
|
||||
'<html>' + LE +
|
||||
'<body>' + LE +
|
||||
' <p>abc<br><br>def</p>' + LE +
|
||||
'</body>' + LE +
|
||||
'</html>';
|
||||
TwoBRinP_descr =
|
||||
'The two words should be in separate lines with an additional empty line between.';
|
||||
|
||||
BRinTableCell_title =
|
||||
'<BR> between two words in a table cell';
|
||||
BRinTableCell_html =
|
||||
'<html>' + LE +
|
||||
'<body>' + LE +
|
||||
' <table border="1" cellspacing="0">' + LE +
|
||||
' <tr><td>abc<br>def</td><td>ghi</td></tr>' + LE +
|
||||
' </table>' + LE +
|
||||
'</body>' + LE +
|
||||
'</html>';
|
||||
BRinTableCell_descr =
|
||||
'The two words in the left cell should be in separate lines, having no additional empty line between.';
|
||||
|
||||
TwoBRinTableCell_title =
|
||||
'Two <BR> tags between two words in a table cell';
|
||||
TwoBRinTableCell_html =
|
||||
'<html>' + LE +
|
||||
'<body>' + LE +
|
||||
' <table border="1" cellspacing="0">' + LE +
|
||||
' <tr><td>abc<br><br>def</td><td>ghi</td></tr>' + LE +
|
||||
' </table>' + LE +
|
||||
'</body>' + LE +
|
||||
'</html>';
|
||||
TwoBRinTableCell_descr =
|
||||
'The two words in the left cell should be in separate lines with an additional empty line between.';
|
||||
|
||||
BRbetweenTwoTables_title =
|
||||
'<BR> between two tables';
|
||||
BRbetweenTwoTables_html =
|
||||
'<html>' + LE +
|
||||
'<body>' + LE +
|
||||
' <table border="1" cellspacing="0">' + LE +
|
||||
' <tr>' + LE +
|
||||
' <td>abc</td><td>def</td><td>ghi</td>' + LE +
|
||||
' </tr>' + LE +
|
||||
' </table>' + LE +
|
||||
' <br>' + LE +
|
||||
' <table border="1" cellspacing="0">' + LE +
|
||||
' <tr>' + LE +
|
||||
' <td>ABC</td><td>DEF</td><td>GHI</td>' + LE +
|
||||
' </tr>' + LE +
|
||||
' </table>' + LE +
|
||||
'</body>' + LE +
|
||||
'</html>';
|
||||
BRbetweenTwoTables_descr =
|
||||
'There should be an empty line between the two tables.';
|
||||
|
||||
BRbetweenTwoP_title =
|
||||
'<BR> between two <p> tags';
|
||||
BRbetweenTwoP_html =
|
||||
'<html>' + LE +
|
||||
'<body>' + LE +
|
||||
' <p>abc</p>' + LE +
|
||||
' <br>' + LE +
|
||||
' <p>ABC</p>' + LE +
|
||||
'</body>' + LE +
|
||||
'</html>';
|
||||
BRbetweenTwoP_descr =
|
||||
'There should be an empty line between the two lines.';
|
||||
|
||||
TextWithBackgroundInBODY_title =
|
||||
'Text with background in BODY';
|
||||
TextWithBackgroundInBODY_html =
|
||||
'<html>' + LE +
|
||||
'<head>' + LE +
|
||||
' <style type="text/css">' + LE +
|
||||
' .class1 {' + LE +
|
||||
' color: red;' + LE +
|
||||
' background-color: yellow;' + LE +
|
||||
' }' + LE +
|
||||
' </style>' + LE +
|
||||
'</head>' + LE +
|
||||
'<body>' + LE +
|
||||
' <p class="class1">Testing backcolor</p>' + LE +
|
||||
'</body>' + LE +
|
||||
'</html>';
|
||||
TextWithBackgroundInBODY_descr =
|
||||
'This test should show red text on yellow background.';
|
||||
|
||||
TextInColoredTableCell_title =
|
||||
'Text in colored table cell';
|
||||
TextInColoredTableCell_html =
|
||||
'<html>' + LE +
|
||||
'<body>' + LE +
|
||||
' <table border="1" cellspacing="0">' + LE +
|
||||
' <tr bgcolor="yellow">' + LE +
|
||||
' <td>abc</td>' + LE +
|
||||
' <td>def</td>' + LE +
|
||||
' <td bgcolor="red">Test</td>' + LE +
|
||||
' </tr>'+ LE +
|
||||
' </table>' + LE +
|
||||
'</body>' + LE +
|
||||
'</html>';
|
||||
TextInColoredTableCell_descr =
|
||||
'The left and center cells should have yellow, the right cell uniform red background.';
|
||||
|
||||
|
||||
implementation
|
||||
|
||||
end.
|
||||
|
93
components/turbopower_ipro/test_cases/iprotest.lpi
Normal file
93
components/turbopower_ipro/test_cases/iprotest.lpi
Normal file
@ -0,0 +1,93 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<CONFIG>
|
||||
<ProjectOptions>
|
||||
<Version Value="12"/>
|
||||
<PathDelim Value="\"/>
|
||||
<General>
|
||||
<SessionStorage Value="InProjectDir"/>
|
||||
<Title Value="iprotest"/>
|
||||
<Scaled Value="True"/>
|
||||
<ResourceType Value="res"/>
|
||||
<UseXPManifest Value="True"/>
|
||||
<XPManifest>
|
||||
<DpiAware Value="True"/>
|
||||
</XPManifest>
|
||||
<Icon Value="0"/>
|
||||
</General>
|
||||
<BuildModes>
|
||||
<Item Name="Default" Default="True"/>
|
||||
</BuildModes>
|
||||
<PublishOptions>
|
||||
<Version Value="2"/>
|
||||
<UseFileFilters Value="True"/>
|
||||
</PublishOptions>
|
||||
<RunParams>
|
||||
<FormatVersion Value="2"/>
|
||||
</RunParams>
|
||||
<RequiredPackages>
|
||||
<Item>
|
||||
<PackageName Value="TurboPowerIPro"/>
|
||||
</Item>
|
||||
<Item>
|
||||
<PackageName Value="SynEditDsgn"/>
|
||||
</Item>
|
||||
<Item>
|
||||
<PackageName Value="SynEdit"/>
|
||||
</Item>
|
||||
<Item>
|
||||
<PackageName Value="LCL"/>
|
||||
</Item>
|
||||
</RequiredPackages>
|
||||
<Units>
|
||||
<Unit>
|
||||
<Filename Value="iprotest.lpr"/>
|
||||
<IsPartOfProject Value="True"/>
|
||||
</Unit>
|
||||
<Unit>
|
||||
<Filename Value="iprotest_unit.pas"/>
|
||||
<IsPartOfProject Value="True"/>
|
||||
<ComponentName Value="Form1"/>
|
||||
<HasResources Value="True"/>
|
||||
<ResourceBaseClass Value="Form"/>
|
||||
</Unit>
|
||||
<Unit>
|
||||
<Filename Value="ipro_tests.pas"/>
|
||||
<IsPartOfProject Value="True"/>
|
||||
</Unit>
|
||||
</Units>
|
||||
</ProjectOptions>
|
||||
<CompilerOptions>
|
||||
<Version Value="11"/>
|
||||
<PathDelim Value="\"/>
|
||||
<Target>
|
||||
<Filename Value="iprotest"/>
|
||||
</Target>
|
||||
<SearchPaths>
|
||||
<IncludeFiles Value="$(ProjOutDir)"/>
|
||||
<UnitOutputDirectory Value="lib\$(TargetCPU)-$(TargetOS)"/>
|
||||
</SearchPaths>
|
||||
<Linking>
|
||||
<Debugging>
|
||||
<DebugInfoType Value="dsDwarf3"/>
|
||||
</Debugging>
|
||||
<Options>
|
||||
<Win32>
|
||||
<GraphicApplication Value="True"/>
|
||||
</Win32>
|
||||
</Options>
|
||||
</Linking>
|
||||
</CompilerOptions>
|
||||
<Debugging>
|
||||
<Exceptions>
|
||||
<Item>
|
||||
<Name Value="EAbort"/>
|
||||
</Item>
|
||||
<Item>
|
||||
<Name Value="ECodetoolError"/>
|
||||
</Item>
|
||||
<Item>
|
||||
<Name Value="EFOpenError"/>
|
||||
</Item>
|
||||
</Exceptions>
|
||||
</Debugging>
|
||||
</CONFIG>
|
25
components/turbopower_ipro/test_cases/iprotest.lpr
Normal file
25
components/turbopower_ipro/test_cases/iprotest.lpr
Normal file
@ -0,0 +1,25 @@
|
||||
program iprotest;
|
||||
|
||||
{$mode objfpc}{$H+}
|
||||
|
||||
uses
|
||||
{$IFDEF UNIX}
|
||||
cthreads,
|
||||
{$ENDIF}
|
||||
{$IFDEF HASAMIGA}
|
||||
athreads,
|
||||
{$ENDIF}
|
||||
Interfaces, // this includes the LCL widgetset
|
||||
Forms, iprotest_unit, ipro_tests
|
||||
{ you can add units after this };
|
||||
|
||||
{$R *.res}
|
||||
|
||||
begin
|
||||
RequireDerivedFormResource:=True;
|
||||
Application.Scaled:=True;
|
||||
Application.Initialize;
|
||||
Application.CreateForm(TForm1, Form1);
|
||||
Application.Run;
|
||||
end.
|
||||
|
699
components/turbopower_ipro/test_cases/iprotest_unit.lfm
Normal file
699
components/turbopower_ipro/test_cases/iprotest_unit.lfm
Normal file
@ -0,0 +1,699 @@
|
||||
object Form1: TForm1
|
||||
Left = 327
|
||||
Height = 620
|
||||
Top = 127
|
||||
Width = 866
|
||||
Caption = 'Form1'
|
||||
ClientHeight = 620
|
||||
ClientWidth = 866
|
||||
OnCreate = FormCreate
|
||||
LCLVersion = '2.3.0.0'
|
||||
object Panel1: TPanel
|
||||
Left = 6
|
||||
Height = 608
|
||||
Top = 6
|
||||
Width = 218
|
||||
Align = alLeft
|
||||
BorderSpacing.Around = 6
|
||||
BevelOuter = bvNone
|
||||
ClientHeight = 608
|
||||
ClientWidth = 218
|
||||
TabOrder = 0
|
||||
object Label1: TLabel
|
||||
AnchorSideLeft.Control = Panel1
|
||||
AnchorSideTop.Control = Panel1
|
||||
Left = 0
|
||||
Height = 15
|
||||
Top = 0
|
||||
Width = 80
|
||||
Caption = 'html file name:'
|
||||
end
|
||||
object FileNameEdit1: TFileNameEdit
|
||||
AnchorSideLeft.Control = Panel1
|
||||
AnchorSideTop.Control = Label1
|
||||
AnchorSideTop.Side = asrBottom
|
||||
AnchorSideRight.Control = Panel1
|
||||
AnchorSideRight.Side = asrBottom
|
||||
Left = 0
|
||||
Height = 23
|
||||
Top = 17
|
||||
Width = 218
|
||||
FilterIndex = 0
|
||||
HideDirectories = False
|
||||
ButtonWidth = 23
|
||||
NumGlyphs = 1
|
||||
Anchors = [akTop, akLeft, akRight]
|
||||
BorderSpacing.Top = 2
|
||||
MaxLength = 0
|
||||
TabOrder = 0
|
||||
end
|
||||
object TreeView1: TTreeView
|
||||
Left = 0
|
||||
Height = 608
|
||||
Top = 0
|
||||
Width = 218
|
||||
Align = alClient
|
||||
TabOrder = 1
|
||||
OnDeletion = TreeView1Deletion
|
||||
OnSelectionChanged = TreeView1SelectionChanged
|
||||
end
|
||||
end
|
||||
object Panel2: TPanel
|
||||
Left = 238
|
||||
Height = 608
|
||||
Top = 6
|
||||
Width = 622
|
||||
Align = alClient
|
||||
BorderSpacing.Left = 3
|
||||
BorderSpacing.Top = 6
|
||||
BorderSpacing.Right = 6
|
||||
BorderSpacing.Bottom = 6
|
||||
BevelOuter = bvNone
|
||||
ClientHeight = 608
|
||||
ClientWidth = 622
|
||||
TabOrder = 1
|
||||
object Splitter2: TSplitter
|
||||
Cursor = crVSplit
|
||||
Left = 0
|
||||
Height = 5
|
||||
Top = 340
|
||||
Width = 622
|
||||
Align = alTop
|
||||
ResizeAnchor = akTop
|
||||
end
|
||||
object IpHtmlPanel1: TIpHtmlPanel
|
||||
Left = 0
|
||||
Height = 260
|
||||
Top = 348
|
||||
Width = 622
|
||||
Align = alClient
|
||||
BorderSpacing.Top = 3
|
||||
FixedTypeface = 'Courier New'
|
||||
DefaultTypeFace = 'default'
|
||||
DefaultFontSize = 12
|
||||
FlagErrors = False
|
||||
PrintSettings.MarginLeft = 0.5
|
||||
PrintSettings.MarginTop = 0.5
|
||||
PrintSettings.MarginRight = 0.5
|
||||
PrintSettings.MarginBottom = 0.5
|
||||
PrintSettings.Preview.Left = 640
|
||||
PrintSettings.Preview.Top = 270
|
||||
PrintSettings.Preview.Width = 1920
|
||||
PrintSettings.Preview.Height = 810
|
||||
TabOrder = 1
|
||||
end
|
||||
object Panel4: TPanel
|
||||
Left = 0
|
||||
Height = 340
|
||||
Top = 0
|
||||
Width = 622
|
||||
Align = alTop
|
||||
BevelOuter = bvNone
|
||||
ClientHeight = 340
|
||||
ClientWidth = 622
|
||||
TabOrder = 2
|
||||
object Memo1: TMemo
|
||||
Left = 0
|
||||
Height = 50
|
||||
Top = 0
|
||||
Width = 622
|
||||
Align = alTop
|
||||
BorderSpacing.Bottom = 3
|
||||
ScrollBars = ssAutoBoth
|
||||
TabOrder = 0
|
||||
WantReturns = False
|
||||
end
|
||||
inline SynEdit1: TSynEdit
|
||||
Left = 0
|
||||
Height = 245
|
||||
Top = 61
|
||||
Width = 622
|
||||
Align = alClient
|
||||
BorderSpacing.Top = 3
|
||||
Font.Height = -13
|
||||
Font.Name = 'Courier New'
|
||||
Font.Pitch = fpFixed
|
||||
Font.Quality = fqNonAntialiased
|
||||
ParentColor = False
|
||||
ParentFont = False
|
||||
TabOrder = 1
|
||||
Gutter.Width = 57
|
||||
Gutter.MouseActions = <>
|
||||
RightGutter.Width = 0
|
||||
RightGutter.MouseActions = <>
|
||||
Highlighter = SynHTMLSyn1
|
||||
Keystrokes = <
|
||||
item
|
||||
Command = ecUp
|
||||
ShortCut = 38
|
||||
end
|
||||
item
|
||||
Command = ecSelUp
|
||||
ShortCut = 8230
|
||||
end
|
||||
item
|
||||
Command = ecScrollUp
|
||||
ShortCut = 16422
|
||||
end
|
||||
item
|
||||
Command = ecDown
|
||||
ShortCut = 40
|
||||
end
|
||||
item
|
||||
Command = ecSelDown
|
||||
ShortCut = 8232
|
||||
end
|
||||
item
|
||||
Command = ecScrollDown
|
||||
ShortCut = 16424
|
||||
end
|
||||
item
|
||||
Command = ecLeft
|
||||
ShortCut = 37
|
||||
end
|
||||
item
|
||||
Command = ecSelLeft
|
||||
ShortCut = 8229
|
||||
end
|
||||
item
|
||||
Command = ecWordLeft
|
||||
ShortCut = 16421
|
||||
end
|
||||
item
|
||||
Command = ecSelWordLeft
|
||||
ShortCut = 24613
|
||||
end
|
||||
item
|
||||
Command = ecRight
|
||||
ShortCut = 39
|
||||
end
|
||||
item
|
||||
Command = ecSelRight
|
||||
ShortCut = 8231
|
||||
end
|
||||
item
|
||||
Command = ecWordRight
|
||||
ShortCut = 16423
|
||||
end
|
||||
item
|
||||
Command = ecSelWordRight
|
||||
ShortCut = 24615
|
||||
end
|
||||
item
|
||||
Command = ecPageDown
|
||||
ShortCut = 34
|
||||
end
|
||||
item
|
||||
Command = ecSelPageDown
|
||||
ShortCut = 8226
|
||||
end
|
||||
item
|
||||
Command = ecPageBottom
|
||||
ShortCut = 16418
|
||||
end
|
||||
item
|
||||
Command = ecSelPageBottom
|
||||
ShortCut = 24610
|
||||
end
|
||||
item
|
||||
Command = ecPageUp
|
||||
ShortCut = 33
|
||||
end
|
||||
item
|
||||
Command = ecSelPageUp
|
||||
ShortCut = 8225
|
||||
end
|
||||
item
|
||||
Command = ecPageTop
|
||||
ShortCut = 16417
|
||||
end
|
||||
item
|
||||
Command = ecSelPageTop
|
||||
ShortCut = 24609
|
||||
end
|
||||
item
|
||||
Command = ecLineStart
|
||||
ShortCut = 36
|
||||
end
|
||||
item
|
||||
Command = ecSelLineStart
|
||||
ShortCut = 8228
|
||||
end
|
||||
item
|
||||
Command = ecEditorTop
|
||||
ShortCut = 16420
|
||||
end
|
||||
item
|
||||
Command = ecSelEditorTop
|
||||
ShortCut = 24612
|
||||
end
|
||||
item
|
||||
Command = ecLineEnd
|
||||
ShortCut = 35
|
||||
end
|
||||
item
|
||||
Command = ecSelLineEnd
|
||||
ShortCut = 8227
|
||||
end
|
||||
item
|
||||
Command = ecEditorBottom
|
||||
ShortCut = 16419
|
||||
end
|
||||
item
|
||||
Command = ecSelEditorBottom
|
||||
ShortCut = 24611
|
||||
end
|
||||
item
|
||||
Command = ecToggleMode
|
||||
ShortCut = 45
|
||||
end
|
||||
item
|
||||
Command = ecCopy
|
||||
ShortCut = 16429
|
||||
end
|
||||
item
|
||||
Command = ecPaste
|
||||
ShortCut = 8237
|
||||
end
|
||||
item
|
||||
Command = ecDeleteChar
|
||||
ShortCut = 46
|
||||
end
|
||||
item
|
||||
Command = ecCut
|
||||
ShortCut = 8238
|
||||
end
|
||||
item
|
||||
Command = ecDeleteLastChar
|
||||
ShortCut = 8
|
||||
end
|
||||
item
|
||||
Command = ecDeleteLastChar
|
||||
ShortCut = 8200
|
||||
end
|
||||
item
|
||||
Command = ecDeleteLastWord
|
||||
ShortCut = 16392
|
||||
end
|
||||
item
|
||||
Command = ecUndo
|
||||
ShortCut = 32776
|
||||
end
|
||||
item
|
||||
Command = ecRedo
|
||||
ShortCut = 40968
|
||||
end
|
||||
item
|
||||
Command = ecLineBreak
|
||||
ShortCut = 13
|
||||
end
|
||||
item
|
||||
Command = ecSelectAll
|
||||
ShortCut = 16449
|
||||
end
|
||||
item
|
||||
Command = ecCopy
|
||||
ShortCut = 16451
|
||||
end
|
||||
item
|
||||
Command = ecBlockIndent
|
||||
ShortCut = 24649
|
||||
end
|
||||
item
|
||||
Command = ecLineBreak
|
||||
ShortCut = 16461
|
||||
end
|
||||
item
|
||||
Command = ecInsertLine
|
||||
ShortCut = 16462
|
||||
end
|
||||
item
|
||||
Command = ecDeleteWord
|
||||
ShortCut = 16468
|
||||
end
|
||||
item
|
||||
Command = ecBlockUnindent
|
||||
ShortCut = 24661
|
||||
end
|
||||
item
|
||||
Command = ecPaste
|
||||
ShortCut = 16470
|
||||
end
|
||||
item
|
||||
Command = ecCut
|
||||
ShortCut = 16472
|
||||
end
|
||||
item
|
||||
Command = ecDeleteLine
|
||||
ShortCut = 16473
|
||||
end
|
||||
item
|
||||
Command = ecDeleteEOL
|
||||
ShortCut = 24665
|
||||
end
|
||||
item
|
||||
Command = ecUndo
|
||||
ShortCut = 16474
|
||||
end
|
||||
item
|
||||
Command = ecRedo
|
||||
ShortCut = 24666
|
||||
end
|
||||
item
|
||||
Command = ecGotoMarker0
|
||||
ShortCut = 16432
|
||||
end
|
||||
item
|
||||
Command = ecGotoMarker1
|
||||
ShortCut = 16433
|
||||
end
|
||||
item
|
||||
Command = ecGotoMarker2
|
||||
ShortCut = 16434
|
||||
end
|
||||
item
|
||||
Command = ecGotoMarker3
|
||||
ShortCut = 16435
|
||||
end
|
||||
item
|
||||
Command = ecGotoMarker4
|
||||
ShortCut = 16436
|
||||
end
|
||||
item
|
||||
Command = ecGotoMarker5
|
||||
ShortCut = 16437
|
||||
end
|
||||
item
|
||||
Command = ecGotoMarker6
|
||||
ShortCut = 16438
|
||||
end
|
||||
item
|
||||
Command = ecGotoMarker7
|
||||
ShortCut = 16439
|
||||
end
|
||||
item
|
||||
Command = ecGotoMarker8
|
||||
ShortCut = 16440
|
||||
end
|
||||
item
|
||||
Command = ecGotoMarker9
|
||||
ShortCut = 16441
|
||||
end
|
||||
item
|
||||
Command = ecSetMarker0
|
||||
ShortCut = 24624
|
||||
end
|
||||
item
|
||||
Command = ecSetMarker1
|
||||
ShortCut = 24625
|
||||
end
|
||||
item
|
||||
Command = ecSetMarker2
|
||||
ShortCut = 24626
|
||||
end
|
||||
item
|
||||
Command = ecSetMarker3
|
||||
ShortCut = 24627
|
||||
end
|
||||
item
|
||||
Command = ecSetMarker4
|
||||
ShortCut = 24628
|
||||
end
|
||||
item
|
||||
Command = ecSetMarker5
|
||||
ShortCut = 24629
|
||||
end
|
||||
item
|
||||
Command = ecSetMarker6
|
||||
ShortCut = 24630
|
||||
end
|
||||
item
|
||||
Command = ecSetMarker7
|
||||
ShortCut = 24631
|
||||
end
|
||||
item
|
||||
Command = ecSetMarker8
|
||||
ShortCut = 24632
|
||||
end
|
||||
item
|
||||
Command = ecSetMarker9
|
||||
ShortCut = 24633
|
||||
end
|
||||
item
|
||||
Command = EcFoldLevel1
|
||||
ShortCut = 41009
|
||||
end
|
||||
item
|
||||
Command = EcFoldLevel2
|
||||
ShortCut = 41010
|
||||
end
|
||||
item
|
||||
Command = EcFoldLevel3
|
||||
ShortCut = 41011
|
||||
end
|
||||
item
|
||||
Command = EcFoldLevel4
|
||||
ShortCut = 41012
|
||||
end
|
||||
item
|
||||
Command = EcFoldLevel5
|
||||
ShortCut = 41013
|
||||
end
|
||||
item
|
||||
Command = EcFoldLevel6
|
||||
ShortCut = 41014
|
||||
end
|
||||
item
|
||||
Command = EcFoldLevel7
|
||||
ShortCut = 41015
|
||||
end
|
||||
item
|
||||
Command = EcFoldLevel8
|
||||
ShortCut = 41016
|
||||
end
|
||||
item
|
||||
Command = EcFoldLevel9
|
||||
ShortCut = 41017
|
||||
end
|
||||
item
|
||||
Command = EcFoldLevel0
|
||||
ShortCut = 41008
|
||||
end
|
||||
item
|
||||
Command = EcFoldCurrent
|
||||
ShortCut = 41005
|
||||
end
|
||||
item
|
||||
Command = EcUnFoldCurrent
|
||||
ShortCut = 41003
|
||||
end
|
||||
item
|
||||
Command = EcToggleMarkupWord
|
||||
ShortCut = 32845
|
||||
end
|
||||
item
|
||||
Command = ecNormalSelect
|
||||
ShortCut = 24654
|
||||
end
|
||||
item
|
||||
Command = ecColumnSelect
|
||||
ShortCut = 24643
|
||||
end
|
||||
item
|
||||
Command = ecLineSelect
|
||||
ShortCut = 24652
|
||||
end
|
||||
item
|
||||
Command = ecTab
|
||||
ShortCut = 9
|
||||
end
|
||||
item
|
||||
Command = ecShiftTab
|
||||
ShortCut = 8201
|
||||
end
|
||||
item
|
||||
Command = ecMatchBracket
|
||||
ShortCut = 24642
|
||||
end
|
||||
item
|
||||
Command = ecColSelUp
|
||||
ShortCut = 40998
|
||||
end
|
||||
item
|
||||
Command = ecColSelDown
|
||||
ShortCut = 41000
|
||||
end
|
||||
item
|
||||
Command = ecColSelLeft
|
||||
ShortCut = 40997
|
||||
end
|
||||
item
|
||||
Command = ecColSelRight
|
||||
ShortCut = 40999
|
||||
end
|
||||
item
|
||||
Command = ecColSelPageDown
|
||||
ShortCut = 40994
|
||||
end
|
||||
item
|
||||
Command = ecColSelPageBottom
|
||||
ShortCut = 57378
|
||||
end
|
||||
item
|
||||
Command = ecColSelPageUp
|
||||
ShortCut = 40993
|
||||
end
|
||||
item
|
||||
Command = ecColSelPageTop
|
||||
ShortCut = 57377
|
||||
end
|
||||
item
|
||||
Command = ecColSelLineStart
|
||||
ShortCut = 40996
|
||||
end
|
||||
item
|
||||
Command = ecColSelLineEnd
|
||||
ShortCut = 40995
|
||||
end
|
||||
item
|
||||
Command = ecColSelEditorTop
|
||||
ShortCut = 57380
|
||||
end
|
||||
item
|
||||
Command = ecColSelEditorBottom
|
||||
ShortCut = 57379
|
||||
end>
|
||||
MouseActions = <>
|
||||
MouseTextActions = <>
|
||||
MouseSelActions = <>
|
||||
Lines.Strings = (
|
||||
''
|
||||
)
|
||||
VisibleSpecialChars = [vscSpace, vscTabAtLast]
|
||||
SelectedColor.BackPriority = 50
|
||||
SelectedColor.ForePriority = 50
|
||||
SelectedColor.FramePriority = 50
|
||||
SelectedColor.BoldPriority = 50
|
||||
SelectedColor.ItalicPriority = 50
|
||||
SelectedColor.UnderlinePriority = 50
|
||||
SelectedColor.StrikeOutPriority = 50
|
||||
BracketHighlightStyle = sbhsBoth
|
||||
BracketMatchColor.Background = clNone
|
||||
BracketMatchColor.Foreground = clNone
|
||||
BracketMatchColor.Style = [fsBold]
|
||||
FoldedCodeColor.Background = clNone
|
||||
FoldedCodeColor.Foreground = clGray
|
||||
FoldedCodeColor.FrameColor = clGray
|
||||
MouseLinkColor.Background = clNone
|
||||
MouseLinkColor.Foreground = clBlue
|
||||
LineHighlightColor.Background = clNone
|
||||
LineHighlightColor.Foreground = clNone
|
||||
inline SynLeftGutterPartList1: TSynGutterPartList
|
||||
object SynGutterMarks1: TSynGutterMarks
|
||||
Width = 24
|
||||
MouseActions = <>
|
||||
end
|
||||
object SynGutterLineNumber1: TSynGutterLineNumber
|
||||
Width = 17
|
||||
MouseActions = <>
|
||||
MarkupInfo.Background = clBtnFace
|
||||
MarkupInfo.Foreground = clNone
|
||||
DigitCount = 2
|
||||
ShowOnlyLineNumbersMultiplesOf = 1
|
||||
ZeroStart = False
|
||||
LeadingZeros = False
|
||||
end
|
||||
object SynGutterChanges1: TSynGutterChanges
|
||||
Width = 4
|
||||
MouseActions = <>
|
||||
ModifiedColor = 59900
|
||||
SavedColor = clGreen
|
||||
end
|
||||
object SynGutterSeparator1: TSynGutterSeparator
|
||||
Width = 2
|
||||
MouseActions = <>
|
||||
MarkupInfo.Background = clWhite
|
||||
MarkupInfo.Foreground = clGray
|
||||
end
|
||||
object SynGutterCodeFolding1: TSynGutterCodeFolding
|
||||
MouseActions = <>
|
||||
MarkupInfo.Background = clNone
|
||||
MarkupInfo.Foreground = clGray
|
||||
MouseActionsExpanded = <>
|
||||
MouseActionsCollapsed = <>
|
||||
end
|
||||
end
|
||||
end
|
||||
object Panel3: TPanel
|
||||
Left = 0
|
||||
Height = 25
|
||||
Top = 312
|
||||
Width = 622
|
||||
Align = alBottom
|
||||
AutoSize = True
|
||||
BorderSpacing.Top = 6
|
||||
BorderSpacing.Bottom = 3
|
||||
BevelOuter = bvNone
|
||||
ClientHeight = 25
|
||||
ClientWidth = 622
|
||||
TabOrder = 2
|
||||
object Button1: TButton
|
||||
AnchorSideLeft.Side = asrBottom
|
||||
AnchorSideTop.Control = Panel3
|
||||
AnchorSideRight.Control = Bevel1
|
||||
Left = 230
|
||||
Height = 25
|
||||
Top = 0
|
||||
Width = 75
|
||||
Anchors = [akTop, akRight]
|
||||
Caption = 'Render'
|
||||
OnClick = Button1Click
|
||||
TabOrder = 0
|
||||
end
|
||||
object Button2: TButton
|
||||
AnchorSideLeft.Control = Bevel1
|
||||
AnchorSideLeft.Side = asrBottom
|
||||
AnchorSideTop.Control = Panel3
|
||||
Left = 317
|
||||
Height = 25
|
||||
Top = 0
|
||||
Width = 113
|
||||
AutoSize = True
|
||||
Caption = 'Show in Browser'
|
||||
OnClick = Button2Click
|
||||
TabOrder = 1
|
||||
end
|
||||
object Bevel1: TBevel
|
||||
AnchorSideLeft.Control = Panel3
|
||||
AnchorSideLeft.Side = asrCenter
|
||||
Left = 305
|
||||
Height = 13
|
||||
Top = 3
|
||||
Width = 12
|
||||
Shape = bsSpacer
|
||||
end
|
||||
end
|
||||
object Splitter3: TSplitter
|
||||
Cursor = crVSplit
|
||||
Left = 0
|
||||
Height = 5
|
||||
Top = 53
|
||||
Width = 622
|
||||
Align = alTop
|
||||
ResizeAnchor = akTop
|
||||
end
|
||||
end
|
||||
end
|
||||
object Splitter1: TSplitter
|
||||
Left = 230
|
||||
Height = 620
|
||||
Top = 0
|
||||
Width = 5
|
||||
end
|
||||
object SynHTMLSyn1: TSynHTMLSyn
|
||||
DefaultFilter = 'HTML Document (*.htm,*.html)|*.htm;*.html'
|
||||
Enabled = False
|
||||
Left = 469
|
||||
Top = 78
|
||||
end
|
||||
end
|
149
components/turbopower_ipro/test_cases/iprotest_unit.pas
Normal file
149
components/turbopower_ipro/test_cases/iprotest_unit.pas
Normal file
@ -0,0 +1,149 @@
|
||||
unit iprotest_unit;
|
||||
|
||||
{$mode objfpc}{$H+}
|
||||
|
||||
interface
|
||||
|
||||
uses
|
||||
Classes, SysUtils, Forms, Controls, Graphics, Dialogs, StdCtrls, ExtCtrls,
|
||||
EditBtn, ComCtrls, SynEdit, SynHighlighterHTML, IpHtml;
|
||||
|
||||
type
|
||||
|
||||
{ TForm1 }
|
||||
|
||||
TForm1 = class(TForm)
|
||||
Bevel1: TBevel;
|
||||
Button1: TButton;
|
||||
Button2: TButton;
|
||||
FileNameEdit1: TFileNameEdit;
|
||||
IpHtmlPanel1: TIpHtmlPanel;
|
||||
Label1: TLabel;
|
||||
Memo1: TMemo;
|
||||
Panel1: TPanel;
|
||||
Panel2: TPanel;
|
||||
Panel3: TPanel;
|
||||
Panel4: TPanel;
|
||||
Splitter1: TSplitter;
|
||||
Splitter2: TSplitter;
|
||||
Splitter3: TSplitter;
|
||||
SynEdit1: TSynEdit;
|
||||
SynHTMLSyn1: TSynHTMLSyn;
|
||||
TreeView1: TTreeView;
|
||||
procedure Button1Click(Sender: TObject);
|
||||
procedure Button2Click(Sender: TObject);
|
||||
procedure FormCreate(Sender: TObject);
|
||||
procedure TreeView1Deletion(Sender: TObject; Node: TTreeNode);
|
||||
procedure TreeView1SelectionChanged(Sender: TObject);
|
||||
private
|
||||
procedure PopulateTests;
|
||||
|
||||
public
|
||||
procedure AddTest(ANode: TTreeNode; ATitle, ADescription, AHtml: String);
|
||||
|
||||
end;
|
||||
|
||||
var
|
||||
Form1: TForm1;
|
||||
|
||||
implementation
|
||||
|
||||
{$R *.lfm}
|
||||
|
||||
uses
|
||||
LCLIntf, ipro_tests;
|
||||
|
||||
type
|
||||
TTestCase = class
|
||||
Description: String;
|
||||
HTML: String;
|
||||
end;
|
||||
|
||||
|
||||
{ TForm1 }
|
||||
|
||||
procedure TForm1.AddTest(ANode: TTreeNode; ATitle, ADescription, AHtml: String);
|
||||
var
|
||||
testcase: TTestCase;
|
||||
begin
|
||||
testcase := TTestCase.Create;
|
||||
testcase.Description := ADescription;
|
||||
testcase.HTML := AHtml;
|
||||
TreeView1.Items.AddChildObject(ANode, ATitle, testcase);
|
||||
end;
|
||||
|
||||
procedure TForm1.FormCreate(Sender: TObject);
|
||||
begin
|
||||
SynEdit1.Font.Quality := fqCleartype;
|
||||
PopulateTests;
|
||||
end;
|
||||
|
||||
procedure TForm1.TreeView1Deletion(Sender: TObject; Node: TTreeNode);
|
||||
begin
|
||||
if (TObject(Node.Data) is TTestCase) then
|
||||
TTestCase(Node.Data).Free;
|
||||
end;
|
||||
|
||||
procedure TForm1.Button1Click(Sender: TObject);
|
||||
begin
|
||||
IpHtmlPanel1.SetHtmlFromStr(SynEdit1.Lines.Text);
|
||||
end;
|
||||
|
||||
procedure TForm1.Button2Click(Sender: TObject);
|
||||
const
|
||||
TEST_FILE = 'test.html';
|
||||
begin
|
||||
SynEdit1.Lines.SaveToFile(TEST_FILE);
|
||||
OpenURL(TEST_FILE);
|
||||
end;
|
||||
|
||||
procedure TForm1.TreeView1SelectionChanged(Sender: TObject);
|
||||
var
|
||||
testcase: TTestCase;
|
||||
begin
|
||||
if TreeView1.Selected = nil then
|
||||
exit;
|
||||
testCase := TTestCase(TreeView1.Selected.Data);
|
||||
if testCase <> nil then
|
||||
begin
|
||||
Memo1.Lines.Text := testCase.Description;
|
||||
Synedit1.Lines.Text := testCase.html;
|
||||
IpHtmlPanel1.SetHtmlFromStr(testCase.html);
|
||||
end else
|
||||
begin
|
||||
Memo1.Lines.Clear;
|
||||
SynEdit1.Lines.Clear;
|
||||
IpHtmlPanel1.SetHtml(nil);
|
||||
end;
|
||||
end;
|
||||
|
||||
procedure TForm1.PopulateTests;
|
||||
var
|
||||
node: TTreeNode;
|
||||
begin
|
||||
TreeView1.Items.BeginUpdate;
|
||||
try
|
||||
TreeView1.Items.Clear;
|
||||
|
||||
node := TreeView1.Items.AddChild(nil, '<BR>');
|
||||
AddTest(node, BRinBODY_title, BRinBODY_descr, BRinBODY_html);
|
||||
AddTest(node, TwoBRinBODY_title, TwoBRinBODY_descr, TwoBRinBODY_html);
|
||||
AddTest(node, BRinP_title, BRinP_descr, BRinP_html);
|
||||
AddTest(node, TwoBRinP_title, TwoBRinP_descr, TwoBRinP_html);
|
||||
AddTest(node, BRinTableCell_title, BRinTableCell_descr, BRinTableCell_html);
|
||||
AddTest(node, TwoBRinTableCell_title, TwoBRinTableCell_descr, TwoBRinTableCell_html);
|
||||
AddTest(node, BRbetweenTwoP_title, BRbetweenTwoP_descr, BRbetweenTwoP_html);
|
||||
AddTest(node, BRbetweenTwoTables_title, BRbetweenTwoTables_descr, BRbetweenTwoTables_html);
|
||||
node.Expanded := true;
|
||||
|
||||
node := TreeView1.Items.AddChild(nil, 'Text background');
|
||||
AddTest(node, TextWithBackgroundInBODY_title, TextWithBackgroundInBODY_descr, TextWithBackgroundInBODY_html);
|
||||
AddTest(node, TextInColoredTableCell_title, TextInColoredTableCell_descr, TextInColoredTableCell_html);
|
||||
node.Expanded := true;
|
||||
finally
|
||||
TreeView1.Items.EndUpdate;
|
||||
end;
|
||||
end;
|
||||
|
||||
end.
|
||||
|
Loading…
Reference in New Issue
Block a user