Ignore:
Timestamp:
Feb 2, 2022, 4:33:25 PM (2 years ago)
Author:
chronos
Message:
  • Added: A windows for showing log output for selected test case.
  • Added: Various load-save tests.
  • Modified: Improved parsing vCard format.
File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/Forms/UFormTest.pas

    r90 r91  
    77uses
    88  Classes, SysUtils, Forms, Controls, Graphics, Dialogs, ComCtrls, StdCtrls,
    9   UTest;
     9  ActnList, Menus, UTest;
    1010
    1111type
     
    1414
    1515  TFormTest = class(TForm)
     16    ARun: TAction;
     17    AShow: TAction;
     18    ActionList1: TActionList;
    1619    ButtonRun: TButton;
    1720    ListViewTestCases: TListView;
     21    MenuItem1: TMenuItem;
     22    MenuItem2: TMenuItem;
     23    PopupMenuTest: TPopupMenu;
     24    procedure ARunExecute(Sender: TObject);
     25    procedure AShowExecute(Sender: TObject);
    1826    procedure ButtonRunClick(Sender: TObject);
    1927    procedure FormClose(Sender: TObject; var CloseAction: TCloseAction);
     
    2230    procedure FormShow(Sender: TObject);
    2331    procedure ListViewTestCasesData(Sender: TObject; Item: TListItem);
     32    procedure ListViewTestCasesSelectItem(Sender: TObject; Item: TListItem;
     33      Selected: Boolean);
    2434  private
    2535    procedure ReloadList;
     36    procedure UpdateInterface;
    2637  public
    2738    TestCases: TTestCases;
     
    3748
    3849uses
    39   UCore;
     50  UCore, UFormTestCase;
    4051
    4152{ TFormTest }
     
    4657  with TestCases[Item.Index] do begin
    4758    Item.Caption := Name;
     59    Item.Data := TestCases[Item.Index];
     60    Item.SubItems.Add(ResultText[Result]);
    4861  end;
     62end;
     63
     64procedure TFormTest.ListViewTestCasesSelectItem(Sender: TObject;
     65  Item: TListItem; Selected: Boolean);
     66begin
     67  UpdateInterface;
    4968end;
    5069
     
    5372  ListViewTestCases.Items.Count := TestCases.Count;
    5473  ListViewTestCases.Refresh;
     74end;
     75
     76procedure TFormTest.UpdateInterface;
     77begin
     78  ARun.Enabled := Assigned(ListViewTestCases.Selected);
     79  AShow.Enabled := Assigned(ListViewTestCases.Selected);
    5580end;
    5681
     
    6691  for I := 0 to TestCases.Count - 1 do
    6792    TestCases[I].Run;
     93  ReloadList;
     94end;
     95
     96procedure TFormTest.AShowExecute(Sender: TObject);
     97begin
     98  if Assigned(ListViewTestCases.Selected) then
     99  with TFormTestCase.Create(nil) do
     100  try
     101    MemoLog.Text := TTestCase(ListViewTestCases.Selected.Data).Log;
     102    ShowModal;
     103  finally
     104    Free;
     105  end;
     106end;
     107
     108procedure TFormTest.ARunExecute(Sender: TObject);
     109begin
     110  if Assigned(ListViewTestCases.Selected) then begin
     111    TTestCase(ListViewTestCases.Selected.Data).Run;
     112    ReloadList;
     113  end;
    68114end;
    69115
     
    72118  TestCases := TTestCases.Create;
    73119  with TestCases do begin
    74     AddNew('Load and save');
    75     AddNew('Multi-line');
    76     AddNew('Encoding base64');
    77     AddNew('Encoding quoted-printable');
    78     AddNew('Image format');
     120    with TTestCaseLoadSave(AddNew('Load and save', TTestCaseLoadSave)) do begin
     121      Input := 'BEGIN:VCARD' + LineEnding +
     122        'VERSION:2.1' + LineEnding +
     123        'N:Surname;Name' + LineEnding +
     124        'FN:Name Surname' + LineEnding +
     125        'END:VCARD' + LineEnding;
     126      Output := Input;
     127    end;
     128    with TTestCaseLoadSave(AddNew('Multi-line', TTestCaseLoadSave)) do begin
     129      Input := 'BEGIN:VCARD' + LineEnding +
     130        'VERSION:2.1' + LineEnding +
     131        'NOTE:This is some long test which is really multi-lined\neach line\nis on' + LineEnding +
     132        ' different\nline so it is on multiple\nlines.'  + LineEnding +
     133        'END:VCARD' + LineEnding;
     134      Output := Input;
     135    end;
     136    AddNew('Encoding base64', TTestCaseLoadSave);
     137    AddNew('Encoding quoted-printable', TTestCaseLoadSave);
     138    AddNew('Image format', TTestCaseLoadSave);
     139    with TTestCaseLoadSave(AddNew('Empty', TTestCaseLoadSave)) do begin
     140      Input := '';
     141      Output := '';
     142    end;
     143    with TTestCaseLoadSave(AddNew('Begin only', TTestCaseLoadSave)) do begin
     144      Input := 'BEGIN:VCARD';
     145      Output := '';
     146    end;
     147    with TTestCaseLoadSave(AddNew('Missing end', TTestCaseLoadSave)) do begin
     148      Input := 'BEGIN:VCARD' + LineEnding +
     149        'VERSION:2.1' + LineEnding +
     150        'N:Surname;Name' + LineEnding +
     151        'FN:Name Surname' + LineEnding;
     152      Output := '';
     153    end;
    79154  end;
    80155end;
     
    89164  Core.PersistentForm1.Load(Self);
    90165  ReloadList;
     166  UpdateInterface;
    91167end;
    92168
Note: See TracChangeset for help on using the changeset viewer.