mirror of
https://gitlab.com/freepascal.org/lazarus/lazarus.git
synced 2025-09-04 16:20:19 +02:00
Turbopower_ipro: Mark tests as "passed"/"failed", store these test results.
This commit is contained in:
parent
92ed8ecb60
commit
3478834cba
@ -753,7 +753,7 @@ const
|
||||
Arab_title =
|
||||
'Arabian text';
|
||||
Arab_descr =
|
||||
'Text should begin at right. The left-most character should be the period (.).';
|
||||
'Text should begin at right.';
|
||||
Arab_html =
|
||||
'<html lang="ar" dir="rtl">' + LE +
|
||||
'<head>' + LE +
|
||||
|
@ -46,7 +46,7 @@
|
||||
<Unit>
|
||||
<Filename Value="iprotest_unit.pas"/>
|
||||
<IsPartOfProject Value="True"/>
|
||||
<ComponentName Value="Form1"/>
|
||||
<ComponentName Value="TestForm"/>
|
||||
<HasResources Value="True"/>
|
||||
<ResourceBaseClass Value="Form"/>
|
||||
</Unit>
|
||||
|
@ -18,7 +18,7 @@ begin
|
||||
RequireDerivedFormResource:=True;
|
||||
Application.Scaled:=True;
|
||||
Application.Initialize;
|
||||
Application.CreateForm(TForm1, Form1);
|
||||
Application.CreateForm(TTestForm, TestForm);
|
||||
Application.Run;
|
||||
end.
|
||||
|
||||
|
@ -1,12 +1,13 @@
|
||||
object Form1: TForm1
|
||||
object TestForm: TTestForm
|
||||
Left = 327
|
||||
Height = 620
|
||||
Top = 127
|
||||
Width = 866
|
||||
ActiveControl = btnRender
|
||||
Caption = 'Form1'
|
||||
Caption = 'TestForm'
|
||||
ClientHeight = 620
|
||||
ClientWidth = 866
|
||||
OnCloseQuery = FormCloseQuery
|
||||
OnCreate = FormCreate
|
||||
LCLVersion = '2.3.0.0'
|
||||
object Panel1: TPanel
|
||||
@ -50,16 +51,18 @@ object Form1: TForm1
|
||||
MaxLength = 0
|
||||
TabOrder = 1
|
||||
end
|
||||
object TreeView1: TTreeView
|
||||
object TestTree: TTreeView
|
||||
Left = 0
|
||||
Height = 577
|
||||
Top = 0
|
||||
Width = 218
|
||||
Align = alClient
|
||||
Images = ImageList1
|
||||
ReadOnly = True
|
||||
TabOrder = 0
|
||||
OnDeletion = TreeView1Deletion
|
||||
OnSelectionChanged = TreeView1SelectionChanged
|
||||
OnDeletion = TestTreeDeletion
|
||||
OnGetSelectedIndex = TestTreeGetSelectedIndex
|
||||
OnSelectionChanged = TestTreeSelectionChanged
|
||||
Options = [tvoAutoItemHeight, tvoHideSelection, tvoKeepCollapsedNodes, tvoReadOnly, tvoShowButtons, tvoShowLines, tvoShowRoot, tvoToolTips, tvoThemedDraw]
|
||||
end
|
||||
end
|
||||
@ -698,6 +701,42 @@ object Form1: TForm1
|
||||
OnClick = btnLoadFromFileClick
|
||||
TabOrder = 0
|
||||
end
|
||||
object btnPassed: TBitBtn
|
||||
AnchorSideTop.Control = btnLoadFromFile
|
||||
AnchorSideTop.Side = asrCenter
|
||||
AnchorSideRight.Control = btnFailed
|
||||
Left = 689
|
||||
Height = 26
|
||||
Top = -1
|
||||
Width = 82
|
||||
Anchors = [akTop, akRight]
|
||||
AutoSize = True
|
||||
BorderSpacing.Right = 6
|
||||
Caption = 'Passed'
|
||||
HotImageIndex = 1
|
||||
Images = ImageList1
|
||||
ImageIndex = 1
|
||||
OnClick = btnTestResultClick
|
||||
TabOrder = 3
|
||||
end
|
||||
object btnFailed: TBitBtn
|
||||
AnchorSideTop.Control = btnLoadFromFile
|
||||
AnchorSideTop.Side = asrCenter
|
||||
AnchorSideRight.Control = Panel3
|
||||
AnchorSideRight.Side = asrBottom
|
||||
Left = 777
|
||||
Height = 26
|
||||
Top = -1
|
||||
Width = 77
|
||||
Anchors = [akTop, akRight]
|
||||
AutoSize = True
|
||||
Caption = 'Failed'
|
||||
HotImageIndex = 0
|
||||
Images = ImageList1
|
||||
ImageIndex = 0
|
||||
OnClick = btnTestResultClick
|
||||
TabOrder = 4
|
||||
end
|
||||
end
|
||||
object SynHTMLSyn1: TSynHTMLSyn
|
||||
DefaultFilter = 'HTML Document (*.htm,*.html)|*.htm;*.html'
|
||||
@ -705,4 +744,56 @@ object Form1: TForm1
|
||||
Left = 469
|
||||
Top = 78
|
||||
end
|
||||
object ImageList1: TImageList
|
||||
Left = 96
|
||||
Top = 128
|
||||
Bitmap = {
|
||||
4C7A020000001000000010000000330100000000000078DAFBFFFF3FC3FF4182
|
||||
5919B6E580301EF94C10C626C7C4B0358387E1FC4B5E860BAF816A72B1C86723
|
||||
E47764E3D22FC2F0EC3FBA1930BD08394CFD20CCCCB02D15A1EE22D80C6686ED
|
||||
69E86284C200A8FE15483D0FC38557200C619F7F852F6C30FD7AE105481F36FF
|
||||
D0523F25EEC71656D8C2145FFC931B7F94A61F42E99318F9514C18335433C832
|
||||
3030309255BEB473190ACFD4B8CD37416A19A96670B5F31B8BCF33B86D7EBCF0
|
||||
BFEE9ED81F5CBDA2B349B1576CAEDE2DF3E305FF41FA251618DE0699876E3E57
|
||||
AFC86C747721DB0BC22036BA5E98F97A7BE37E81FDD6C0C044ACBD603B807E01
|
||||
F9C9FC04C46FBC1324177375F29B10B2171E27403783F4209B21B9D0F831317A
|
||||
D1CC58A8B32BEA27C80C30C6E366826690A817DD2F2233D5EF90AA17D90C503A
|
||||
1D0AF90900E0D3FE8A
|
||||
}
|
||||
BitmapAdv = {
|
||||
4C69020000004C7A020000001800000018000000E50100000000000078DAFBFF
|
||||
FF3FC3FF514C126666581D04C2C4AB5FE30BC2C4A865605813C0C2B0E3052BC3
|
||||
8E57CC0CEB82A8A99E8161831748AD30C3E3FF204C480FCC6C54F51B7C89315F
|
||||
84E1195E3B90CD4653EB83DF0F6BBD5918B6BF44D5B7EB2533C3A660C26AD604
|
||||
131707B8EDA0D46CE43404F43F8A39203E363152D21ABE301661780AC5C8E14D
|
||||
9ED9E87688303C81DA01C24FA8623661F3D751C5EDF8C3873C3B6819BFF8D220
|
||||
31F9835CB349C983A4950FAB49281F882B7F8849DFD8CB3742E50F7279BB9AC4
|
||||
F299B87826A5BE2047FD281EC5C30DB3B67117B0B5F3AC63086560A6BAD91D5C
|
||||
D982D3555E2BAE76FECAD6CEBD95A18181857A6673E60BCD507B6D76BCE0BFF9
|
||||
89C2FF0A203B3A793752C31FA030019AFD06663608EBEC8CFA0B0CA7EB403F08
|
||||
50234CCC8EE723CCDE1DFD8FBD83EF26432B83384E7DED5C590C6DACE6E4B89B
|
||||
BD83F71AD0DD22F8C212E426AE5E9167B8EC400F6FB0D9BBA2FEB177F15DC76F
|
||||
36C2BFC68732FE83ED6861B5A0469830B43108B3B470BE353A940ED707B6A347
|
||||
E429CC1FE48609DC8E160633A0794F40E6A2D801F4074B0B7B3F396182E90F56
|
||||
73909BD1ED905E6CF19D5C7763D8D1C460C8D923FC0439AC903131E14DAE1DD4
|
||||
301B971DD4341B3DCED5B704921C97A4C4394B1BE7195A983D8A698F013C0DA6
|
||||
1E4C7A020000002000000020000000F70100000000000078DAED58CD4AC34010
|
||||
9E1ADA80204DC5BB525FC14450509FC68B55A9078F226DF105A4BE8268A91EB4
|
||||
17CFB5F806FE3C80E0AD092D785BB3D1404C37E9FE6B610F1F6D21D36FE69BF9
|
||||
66972084001918100070B585C11F7FED61F07217E0C60F11F0E420121F3EBF89
|
||||
63CBF08CCAF08A0A70EB03747674C40374DD387609DE23E0EFB475C47593E3BB
|
||||
2E1D7F77988CA7CD81C49D88F569F8BFFFA7B341CE215BCBA4E6BF635E30F790
|
||||
A57FAC39C8E666C94115376D4FF3FBCDBF3B267398D4C181B7082AB9A7F54285
|
||||
E6D37470C2FEA7B99D6826E4D74D9A851CFE40157FD69CD3EE07151EC899BF40
|
||||
EEECE7F98F6F578B689E9C739E5D2D8B5BE4BC90C52D3B07D2F94FBBD7B2F6A4
|
||||
E8F9CFB2534939889CFF3C3B55343E757FF405EF9FDC3B59E4FE2C23DEC0C0C0
|
||||
60A6DF619C42094EA08E3FFF82DB6A95EE8B67F39F56CBEEE9CC0176A168354B
|
||||
77CEF9CA68EDB18616DBAB63AB613FC03ED83AB9DDC1015A7FAA236F70A82587
|
||||
48F3A6DDABB4AB23EF873B86DBAF21DC8BF099235D75C7505DBF4C6E56CFC473
|
||||
4ED21CFFAE5C54C7B4F3CFEA19A9DC8C9E91AA39A36764CF1AF604D61C7B6442
|
||||
C3505BECA958C33C8F919E973ABFC7B0A0CA633475CD35AC0F9975B3CEF3F2E5
|
||||
36129D73915EA4A16AAFD1E4304B3B7516CF52E25EECEF69E54E7B333A179A7A
|
||||
EF52FFE12E6960A0025FC697C5E2
|
||||
}
|
||||
end
|
||||
end
|
||||
|
@ -6,17 +6,20 @@ interface
|
||||
|
||||
uses
|
||||
Classes, SysUtils, Forms, Controls, Graphics, Dialogs, StdCtrls, ExtCtrls,
|
||||
EditBtn, ComCtrls, SynEdit, SynHighlighterHTML, IpHtml;
|
||||
EditBtn, ComCtrls, Buttons, SynEdit, SynHighlighterHTML, IpHtml;
|
||||
|
||||
type
|
||||
|
||||
{ TForm1 }
|
||||
{ TTestForm }
|
||||
|
||||
TForm1 = class(TForm)
|
||||
TTestForm = class(TForm)
|
||||
btnPassed: TBitBtn;
|
||||
btnFailed: TBitBtn;
|
||||
btnRender: TButton;
|
||||
btnShowInBrowser: TButton;
|
||||
btnLoadFromFile: TButton;
|
||||
FileNameEdit1: TFileNameEdit;
|
||||
ImageList1: TImageList;
|
||||
IpHtmlPanel1: TIpHtmlPanel;
|
||||
Label1: TLabel;
|
||||
Memo1: TMemo;
|
||||
@ -29,15 +32,20 @@ type
|
||||
Splitter3: TSplitter;
|
||||
SynEdit1: TSynEdit;
|
||||
SynHTMLSyn1: TSynHTMLSyn;
|
||||
TreeView1: TTreeView;
|
||||
TestTree: TTreeView;
|
||||
procedure btnTestResultClick(Sender: TObject);
|
||||
procedure btnRenderClick(Sender: TObject);
|
||||
procedure btnShowInBrowserClick(Sender: TObject);
|
||||
procedure btnLoadFromFileClick(Sender: TObject);
|
||||
procedure FormCloseQuery(Sender: TObject; var CanClose: Boolean);
|
||||
procedure FormCreate(Sender: TObject);
|
||||
procedure TreeView1Deletion(Sender: TObject; Node: TTreeNode);
|
||||
procedure TreeView1SelectionChanged(Sender: TObject);
|
||||
procedure TestTreeDeletion(Sender: TObject; Node: TTreeNode);
|
||||
procedure TestTreeGetSelectedIndex(Sender: TObject; Node: TTreeNode);
|
||||
procedure TestTreeSelectionChanged(Sender: TObject);
|
||||
private
|
||||
procedure PopulateTests;
|
||||
procedure LoadResults;
|
||||
procedure SaveResults;
|
||||
|
||||
public
|
||||
procedure AddTest(ANode: TTreeNode; ATitle, ADescription, AHtml: String);
|
||||
@ -45,52 +53,83 @@ type
|
||||
end;
|
||||
|
||||
var
|
||||
Form1: TForm1;
|
||||
TestForm: TTestForm;
|
||||
|
||||
implementation
|
||||
|
||||
{$R *.lfm}
|
||||
|
||||
uses
|
||||
LCLIntf, ipro_tests;
|
||||
LCLIntf, md5, ipro_tests;
|
||||
|
||||
const // Values for node imageindex showing test results
|
||||
RESULT_UNDEFINED = -1;
|
||||
RESULT_FAILED = 0;
|
||||
RESULT_PASSED = 1;
|
||||
|
||||
RESULTS_FILE = 'test-results.txt';
|
||||
|
||||
type
|
||||
TTestCase = class
|
||||
Description: String;
|
||||
HTML: String;
|
||||
MD5: TMDDigest;
|
||||
end;
|
||||
|
||||
|
||||
{ TForm1 }
|
||||
{ TTestForm }
|
||||
|
||||
procedure TForm1.AddTest(ANode: TTreeNode; ATitle, ADescription, AHtml: String);
|
||||
procedure TTestForm.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);
|
||||
testcase.MD5 := MDString(AHtml, MD_VERSION_5);
|
||||
TestTree.Items.AddChildObject(ANode, ATitle, testcase);
|
||||
end;
|
||||
|
||||
procedure TForm1.FormCreate(Sender: TObject);
|
||||
procedure TTestForm.FormCreate(Sender: TObject);
|
||||
begin
|
||||
SynEdit1.Font.Quality := fqCleartype;
|
||||
PopulateTests;
|
||||
end;
|
||||
|
||||
procedure TForm1.TreeView1Deletion(Sender: TObject; Node: TTreeNode);
|
||||
procedure TTestForm.TestTreeDeletion(Sender: TObject; Node: TTreeNode);
|
||||
begin
|
||||
if (TObject(Node.Data) is TTestCase) then
|
||||
TTestCase(Node.Data).Free;
|
||||
end;
|
||||
|
||||
procedure TForm1.btnRenderClick(Sender: TObject);
|
||||
procedure TTestForm.TestTreeGetSelectedIndex(Sender: TObject; Node: TTreeNode);
|
||||
begin
|
||||
Node.SelectedIndex := Node.ImageIndex;
|
||||
end;
|
||||
|
||||
procedure TTestForm.btnRenderClick(Sender: TObject);
|
||||
begin
|
||||
IpHtmlPanel1.SetHtmlFromStr(SynEdit1.Lines.Text);
|
||||
end;
|
||||
|
||||
procedure TForm1.btnShowInBrowserClick(Sender: TObject);
|
||||
procedure TTestForm.btnTestResultClick(Sender: TObject);
|
||||
var
|
||||
testcase: TTestCase;
|
||||
begin
|
||||
if TestTree.Selected <> nil then
|
||||
begin
|
||||
testcase := TTestCase(TestTree.Selected.Data);
|
||||
if testcase <> nil then
|
||||
begin
|
||||
if Sender = btnPassed then
|
||||
TestTree.Selected.ImageIndex := RESULT_PASSED
|
||||
else if Sender = btnFailed then
|
||||
TestTree.Selected.ImageIndex := RESULT_FAILED;
|
||||
end;
|
||||
end;
|
||||
end;
|
||||
|
||||
procedure TTestForm.btnShowInBrowserClick(Sender: TObject);
|
||||
const
|
||||
TEST_FILE = 'test.html';
|
||||
begin
|
||||
@ -98,7 +137,7 @@ begin
|
||||
OpenURL(TEST_FILE);
|
||||
end;
|
||||
|
||||
procedure TForm1.btnLoadFromFileClick(Sender: TObject);
|
||||
procedure TTestForm.btnLoadFromFileClick(Sender: TObject);
|
||||
begin
|
||||
with TOpenDialog.Create(nil) do
|
||||
try
|
||||
@ -117,13 +156,19 @@ begin
|
||||
end;
|
||||
end;
|
||||
|
||||
procedure TForm1.TreeView1SelectionChanged(Sender: TObject);
|
||||
procedure TTestForm.FormCloseQuery(Sender: TObject; var CanClose: Boolean);
|
||||
begin
|
||||
if CanClose then
|
||||
SaveResults;
|
||||
end;
|
||||
|
||||
procedure TTestForm.TestTreeSelectionChanged(Sender: TObject);
|
||||
var
|
||||
testcase: TTestCase;
|
||||
begin
|
||||
if TreeView1.Selected = nil then
|
||||
if TestTree.Selected = nil then
|
||||
exit;
|
||||
testCase := TTestCase(TreeView1.Selected.Data);
|
||||
testCase := TTestCase(TestTree.Selected.Data);
|
||||
if testCase <> nil then
|
||||
begin
|
||||
Memo1.Lines.Text := testCase.Description;
|
||||
@ -137,39 +182,39 @@ begin
|
||||
end;
|
||||
end;
|
||||
|
||||
procedure TForm1.PopulateTests;
|
||||
procedure TTestForm.PopulateTests;
|
||||
var
|
||||
node, node1: TTreeNode;
|
||||
begin
|
||||
TreeView1.Items.BeginUpdate;
|
||||
TestTree.Items.BeginUpdate;
|
||||
try
|
||||
TreeView1.Items.Clear;
|
||||
TestTree.Items.Clear;
|
||||
|
||||
node := TreeView1.Items.AddChild(nil, 'Text background');
|
||||
node := TestTree.Items.AddChild(nil, 'Text background');
|
||||
AddTest(node, TextWithBackgroundInBODY_title, TextWithBackgroundInBODY_descr, TextWithBackgroundInBODY_html);
|
||||
AddTest(node, TextWithBackgroundInBODY_CSS_title, TextWithBackgroundInBODY_CSS_descr, TextWithBackgroundInBODY_CSS_html);
|
||||
AddTest(node, TextInColoredTableCell_title, TextInColoredTableCell_descr, TextInColoredTableCell_html);
|
||||
node.Expanded := true;
|
||||
|
||||
node := TreeView1.Items.AddChild(nil, 'Tables');
|
||||
node1 := TreeView1.Items.AddChild(node, 'Text alignment');
|
||||
node := TestTree.Items.AddChild(nil, 'Tables');
|
||||
node1 := TestTree.Items.AddChild(node, 'Text alignment');
|
||||
AddTest(node1, AlignInCell_title, AlignInCell_descr, AlignInCell_html);
|
||||
AddTest(node1, AlignInCellBold_title, AlignInCellBold_descr, AlignInCellBold_html);
|
||||
AddTest(node1, AlignInCell_CSS_title, AlignInCell_CSS_descr, AlignInCell_CSS_html);
|
||||
AddTest(node1, AlignInCellBold_CSS_title, AlignInCellBold_CSS_descr, AlignInCellBold_CSS_html);
|
||||
node1.Expanded := true;
|
||||
node1 := TreeView1.Items.AddChild(node, 'Background colors');
|
||||
node1 := TestTree.Items.AddChild(node, 'Background colors');
|
||||
AddTest(node1, TableCellBkColor_title, TableCellBkColor_descr, TableCellBkColor_html);
|
||||
AddTest(node1, TableCellBkColor_style_title, TableCellBkColor_style_descr, TableCellBkColor_style_html);
|
||||
AddTest(node1, TableRowBkColor_title, TableRowBkColor_descr, TableRowBkColor_html);
|
||||
AddTest(node1, TableRowBkColor_style_title, TableRowBkColor_style_descr, TableRowBkColor_style_html);
|
||||
AddTest(node1, TableColBkColor_style_title, TableColBkColor_style_descr, TableColBkColor_style_html);
|
||||
node1.Expanded := true;
|
||||
node1 := TreeView1.Items.AddChild(node, 'Merged cells');
|
||||
node1 := TestTree.Items.AddChild(node, 'Merged cells');
|
||||
AddTest(node1, TableColSpan_title, TableColSpan_descr, TableColSpan_html);
|
||||
AddTest(node1, TableRowSpan_title, TableRowSpan_descr, TableRowSpan_html);
|
||||
node1.Expanded := true;
|
||||
node1 := TreeView1.Items.AddChild(node, 'Column widths');
|
||||
node1 := TestTree.Items.AddChild(node, 'Column widths');
|
||||
AddTest(node1, ColWidth_auto_title, ColWidth_auto_descr, ColWidth_auto_html);
|
||||
AddTest(node1, ColWidth_fixed_title, ColWidth_fixed_descr, ColWidth_fixed_html);
|
||||
AddTest(node1, ColWidth_100perc_title, ColWidth_100perc_descr, ColWidth_100perc_html);
|
||||
@ -179,7 +224,7 @@ begin
|
||||
node1.Expanded := true;
|
||||
node.Expanded := true;
|
||||
|
||||
node := TreeView1.Items.AddChild(nil, 'Lists');
|
||||
node := TestTree.Items.AddChild(nil, 'Lists');
|
||||
AddTest(node, OL_title, OL_descr, OL_html);
|
||||
AddTest(node, UL_title, UL_descr, UL_html);
|
||||
AddTest(node, UL_style_title, UL_style_descr, UL_style_html);
|
||||
@ -187,12 +232,12 @@ begin
|
||||
AddTest(node, OUL_3lev_title, OUL_3lev_descr, OUL_3lev_html);
|
||||
node.Expanded := true;
|
||||
|
||||
node := TreeView1.Items.AddChild(nil, 'CSS');
|
||||
node := TestTree.Items.AddChild(nil, 'CSS');
|
||||
AddTest(node, HTMLCommentInCSS_title, HTMLCommentInCSS_descr, HTMLCommentInCSS_html);
|
||||
node.Expanded := true;
|
||||
|
||||
node := TreeView1.Items.AddChild(nil, 'Special tags');
|
||||
node1 := TreeView1.Items.AddChild(node, '<BR>');
|
||||
node := TestTree.Items.AddChild(nil, 'Special tags');
|
||||
node1 := TestTree.Items.AddChild(node, '<BR>');
|
||||
AddTest(node1, BRinBODY_title, BRinBODY_descr, BRinBODY_html);
|
||||
AddTest(node1, TwoBRinBODY_title, TwoBRinBODY_descr, TwoBRinBODY_html);
|
||||
AddTest(node1, BRinP_title, BRinP_descr, BRinP_html);
|
||||
@ -202,24 +247,96 @@ begin
|
||||
AddTest(node1, BRbetweenTwoP_title, BRbetweenTwoP_descr, BRbetweenTwoP_html);
|
||||
AddTest(node1, BRbetweenTwoTables_title, BRbetweenTwoTables_descr, BRbetweenTwoTables_html);
|
||||
node1.Expanded := true;
|
||||
node1 := TreeView1.Items.AddChild(node, '<PRE>');
|
||||
node1 := TestTree.Items.AddChild(node, '<PRE>');
|
||||
AddTest(node1, PRE_title, PRE_descr, PRE_html);
|
||||
node1.Expanded := true;
|
||||
node.Expanded := true;
|
||||
|
||||
node := TreeView1.Items.AddChild(nil, 'Special cases in file structure');
|
||||
node := TestTree.Items.AddChild(nil, 'Special cases in file structure');
|
||||
AddTest(node, NoHtmlTag_title, NoHtmlTag_descr, NoHtmlTag_html);
|
||||
AddTest(node, NoBodyTag_title, NoBodyTag_descr, NoBodyTag_html);
|
||||
node.Expanded := true;
|
||||
|
||||
node := TreeView1.Items.AddChild(nil, 'Localization, right-to-left');
|
||||
node := TestTree.Items.AddChild(nil, 'Localization, right-to-left');
|
||||
AddTest(node, Arab_title, Arab_descr, Arab_html);
|
||||
node.Expanded := true;
|
||||
|
||||
LoadResults;
|
||||
finally
|
||||
TreeView1.Items.EndUpdate;
|
||||
TestTree.Items.EndUpdate;
|
||||
end;
|
||||
end;
|
||||
|
||||
procedure TTestForm.LoadResults;
|
||||
var
|
||||
L: TStringList;
|
||||
|
||||
procedure LoadResult(ANode: TTreeNode);
|
||||
var
|
||||
testcase: TTestCase;
|
||||
idx: Integer;
|
||||
begin
|
||||
if ANode = nil then
|
||||
exit;
|
||||
testcase := TTestCase(ANode.Data);
|
||||
if testcase <> nil then
|
||||
begin
|
||||
if L.Find(MD5Print(testcase.MD5), idx) then
|
||||
ANode.ImageIndex := PtrInt(L.Objects[idx]);
|
||||
end else
|
||||
LoadResult(ANode.GetFirstChild);
|
||||
LoadResult(ANode.GetNextSibling);
|
||||
end;
|
||||
|
||||
var
|
||||
i, p, res: Integer;
|
||||
imgidx: PtrInt;
|
||||
fn: String;
|
||||
begin
|
||||
fn := Application.Location + RESULTS_FILE;
|
||||
if not FileExists(fn) then
|
||||
exit;
|
||||
L := TStringList.Create;
|
||||
try
|
||||
L.LoadFromFile(fn);
|
||||
for i := 0 to L.Count-1 do begin
|
||||
p := pos('|', L[i]);
|
||||
val(copy(L[i], p+1), imgidx, res);
|
||||
L.Objects[i] := TObject(imgidx);
|
||||
L.Strings[i] := Copy(L[i], 1, p-1);
|
||||
end;
|
||||
L.Sorted := true;
|
||||
|
||||
LoadResult(TestTree.Items.GetFirstNode);
|
||||
finally
|
||||
L.Free;
|
||||
end;
|
||||
end;
|
||||
|
||||
procedure TTestForm.SaveResults;
|
||||
var
|
||||
F: TextFile;
|
||||
|
||||
procedure SaveTest(ANode: TTreeNode);
|
||||
var
|
||||
testcase: TTestCase;
|
||||
begin
|
||||
if ANode = nil then
|
||||
exit;
|
||||
testcase := TTestCase(ANode.Data);
|
||||
if testcase <> nil then
|
||||
WriteLn(F, MDPrint(testcase.MD5) + '|' + IntToStr(ANode.ImageIndex))
|
||||
else
|
||||
SaveTest(ANode.GetFirstChild);
|
||||
SaveTest(ANode.GetNextSibling);
|
||||
end;
|
||||
|
||||
begin
|
||||
AssignFile(F, Application.Location + RESULTS_FILE);
|
||||
Rewrite(F);
|
||||
SaveTest(TestTree.Items.GetFirstNode);
|
||||
CloseFile(F);
|
||||
end;
|
||||
|
||||
end.
|
||||
|
||||
|
38
components/turbopower_ipro/test_cases/test-results.txt
Normal file
38
components/turbopower_ipro/test_cases/test-results.txt
Normal file
@ -0,0 +1,38 @@
|
||||
caed306af1cf468e5910cb1f3b46cd51|1
|
||||
c745e8b8e7bf5afeb32f6e40066b8f20|1
|
||||
42e1e7505296bfabf74d8ce0d276b265|1
|
||||
1a73bf758f9ffb962746faaf13b8f166|1
|
||||
faf187bf6662c4dc9010c89e52fd9c05|1
|
||||
b04ecc7eb166dd8432afebddaaa6ca7c|1
|
||||
faffbd13f323d19002d5319afddecf30|0
|
||||
c34635385386c1ff8e77236b31e4c684|1
|
||||
ab7d8098373c01ae729e8a9e3e0ed3a0|1
|
||||
76f9fb06074c7bc161b07fea5a278a16|1
|
||||
96d8065611dda197d0be1ed47adbb524|1
|
||||
f410a0a721b9a5d3e43e4134d05d55e1|0
|
||||
3a3f27a1eb496d7fa2852241883489c7|1
|
||||
3893ea2a37335b97594c2e034727ef6e|1
|
||||
db425850a781ed8fc7fa450adf36367f|1
|
||||
d5068632b7f322c1076e0e78442ae6a3|1
|
||||
c9798563026960f2332ed2fe9bc74b61|1
|
||||
0f50b75c007ba031862243f4cb9cd99b|1
|
||||
eadb0b01c9e5cb899dd67a83e9edfe1f|0
|
||||
b84b1fcd170be4b397c019e7fe21f166|0
|
||||
d042fcbe050041d0b45543b2a51d4bd1|1
|
||||
6dbc1942cb7e1e1c9a7c5a65b4604100|1
|
||||
d597ff5b6b490f55e97b54056cce90f4|0
|
||||
ec3b47cf554b90366517e2917bca4517|1
|
||||
c9de5a135d783c12056966dc69a7eac2|1
|
||||
decd85b27d5247d7927b200e16867580|0
|
||||
ab150875b0491c2aa421bfbf0afc0dbe|1
|
||||
9237189012709fd252b072deec129e09|1
|
||||
f9018cc29cc35a14d816dc4200afbe0b|1
|
||||
ad5744714d6c9021894e67fdf52b1689|1
|
||||
7e72847dc980aca45c260f6612e8ef5f|1
|
||||
c5ea29ee080832664180790c6e277154|1
|
||||
2696b28d0a93547dc3286dec1bf2869b|1
|
||||
dca07f136c5214df3052f67cc853e62a|1
|
||||
93dd425a961945639cf1c85592e26843|0
|
||||
09b8149415d34207aa8e95634d64469a|1
|
||||
cc5bf5c55da8bb627046b09b0fcfb1ce|1
|
||||
dfba0057569856f72bec2b26854d474b|1
|
Loading…
Reference in New Issue
Block a user