source: tags/1.4.0/Forms/UFormTest.pas

Last change on this file was 129, checked in by chronos, 3 years ago
  • Added: TVCard as TComponent descendant.
  • Modified: TContactsFile renamed to TVCardFile and moved into separate file.
File size: 3.5 KB
Line 
1unit UFormTest;
2
3interface
4
5uses
6 Classes, SysUtils, Forms, Controls, Graphics, Dialogs, ComCtrls, StdCtrls,
7 ActnList, Menus, UTest;
8
9type
10
11 { TFormTest }
12
13 TFormTest = class(TForm)
14 ARun: TAction;
15 AShow: TAction;
16 ActionList1: TActionList;
17 ButtonRun: TButton;
18 LabelResult: TLabel;
19 ListViewTestCases: TListView;
20 MenuItem1: TMenuItem;
21 MenuItem2: TMenuItem;
22 PopupMenuTest: TPopupMenu;
23 procedure ARunExecute(Sender: TObject);
24 procedure AShowExecute(Sender: TObject);
25 procedure ButtonRunClick(Sender: TObject);
26 procedure FormClose(Sender: TObject; var CloseAction: TCloseAction);
27 procedure FormCreate(Sender: TObject);
28 procedure FormDestroy(Sender: TObject);
29 procedure FormShow(Sender: TObject);
30 procedure ListViewTestCasesData(Sender: TObject; Item: TListItem);
31 procedure ListViewTestCasesSelectItem(Sender: TObject; Item: TListItem;
32 Selected: Boolean);
33 private
34 FTestCases: TTestCases;
35 procedure ReloadList;
36 procedure SetTestCases(AValue: TTestCases);
37 procedure UpdateInterface;
38 public
39 property TestCases: TTestCases read FTestCases write SetTestCases;
40 end;
41
42var
43 FormTest: TFormTest;
44
45
46implementation
47
48{$R *.lfm}
49
50uses
51 UCore, UFormTestCase, UVCard;
52
53{ TFormTest }
54
55procedure TFormTest.ListViewTestCasesData(Sender: TObject; Item: TListItem);
56begin
57 if Item.Index < TestCases.Count then
58 with TestCases[Item.Index] do begin
59 Item.Caption := Name;
60 Item.Data := TestCases[Item.Index];
61 Item.SubItems.Add(ResultText[Result]);
62 end;
63end;
64
65procedure TFormTest.ListViewTestCasesSelectItem(Sender: TObject;
66 Item: TListItem; Selected: Boolean);
67begin
68 UpdateInterface;
69end;
70
71procedure TFormTest.ReloadList;
72begin
73 ListViewTestCases.Items.Count := TestCases.Count;
74 ListViewTestCases.Refresh;
75end;
76
77procedure TFormTest.SetTestCases(AValue: TTestCases);
78begin
79 if FTestCases = AValue then Exit;
80 FTestCases := AValue;
81 ReloadList;
82 UpdateInterface;
83end;
84
85procedure TFormTest.UpdateInterface;
86var
87 Selected: Boolean;
88 Passed: Integer;
89 Failed: Integer;
90 I: Integer;
91begin
92 Selected := Assigned(ListViewTestCases.Selected);
93 ARun.Enabled := Selected;
94 AShow.Enabled := Selected;
95
96 Passed := 0;
97 Failed := 0;
98 for I := 0 to TestCases.Count - 1 do begin
99 case TestCases[I].Result of
100 trPassed: Inc(Passed);
101 trFailed: Inc(Failed);
102 end;
103 end;
104 LabelResult.Caption := SPassed + ' ' + IntToStr(Passed) + ', ' +
105 SFailed + ' ' + IntToStr(Failed);
106end;
107
108procedure TFormTest.FormClose(Sender: TObject; var CloseAction: TCloseAction);
109begin
110 Core.PersistentForm1.Save(Self);
111end;
112
113procedure TFormTest.ButtonRunClick(Sender: TObject);
114var
115 I: Integer;
116begin
117 for I := 0 to TestCases.Count - 1 do
118 TestCases[I].Run;
119 ReloadList;
120 UpdateInterface;
121end;
122
123procedure TFormTest.AShowExecute(Sender: TObject);
124begin
125 if Assigned(ListViewTestCases.Selected) then
126 with TFormTestCase.Create(nil) do
127 try
128 MemoLog.Text := TTestCase(ListViewTestCases.Selected.Data).Log;
129 ShowModal;
130 finally
131 Free;
132 end;
133end;
134
135procedure TFormTest.ARunExecute(Sender: TObject);
136begin
137 if Assigned(ListViewTestCases.Selected) then begin
138 TTestCase(ListViewTestCases.Selected.Data).Run;
139 ReloadList;
140 UpdateInterface;
141 end;
142end;
143
144procedure TFormTest.FormCreate(Sender: TObject);
145begin
146 Core.Translator.TranslateComponentRecursive(Self);
147 Core.ThemeManager1.UseTheme(Self);
148end;
149
150procedure TFormTest.FormDestroy(Sender: TObject);
151begin
152end;
153
154procedure TFormTest.FormShow(Sender: TObject);
155begin
156 Core.PersistentForm1.Load(Self);
157 ReloadList;
158 UpdateInterface;
159end;
160
161end.
162
Note: See TracBrowser for help on using the repository browser.