spiegel-keyman/windows/src/test/test-comapi-refcounting/testcomapi.pas
Marc Durdin b65b982584 Keyman Desktop and Keyman Developer open source 10.0 alpha seed (#121)
* Keyman for Windows 10.0 Open Source

* Squashed 'windows/src/ext/jedi/jedi/' content from commit f444ad2

git-subtree-dir: windows/src/ext/jedi/jedi
git-subtree-split: f444ad2da4693851e523f1ea6bd541f701904c24

* Squashed 'windows/src/ext/jedi/jcl/' content from commit d63d3c9fd

git-subtree-dir: windows/src/ext/jedi/jcl
git-subtree-split: d63d3c9fd9ff84efdd8159084ec6a60313644243

* Squashed 'windows/src/ext/jedi/jvcl/' content from commit bee19f3b4

git-subtree-dir: windows/src/ext/jedi/jvcl
git-subtree-split: bee19f3b46909fde2fa92c06cd2706f41d99f6c3

* Add required .res files

* Add required .res files

* Add docbook files (forced)

* Add required libxslt

* Add required jedi files

* Add installation files

* Tweak .gitignore for open

* CI

* Remove KMW from Developer source (#122)

* Remove KMW from Developer source (copies during build)

* Remove KMW from Developer source (copies during build)

* Remove KMW from Developer source (copies during build)

* Fixup release build and copy license, readme from kmw during build

* Remove obsolete build help documentation

* Keyman Engine 10 on Windows regression for shift states (#129)

* Improve #128 -- cleaner debug messages

* Fixes #127, shift state now resets correctly; and more work for #128

* Fixes #130 (#131)
2017-07-25 10:53:06 +07:00

94 lines
1.8 KiB
ObjectPascal

unit testcomapi;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, keymanapi_TLB, StdCtrls;
type
TProc = procedure of object;
TForm1 = class(TForm)
cmdStartTest: TButton;
memoLog: TMemo;
procedure FormCreate(Sender: TObject);
procedure cmdStartTestClick(Sender: TObject);
private
kmcom: ITavultesoftKeyman;
procedure TestKeyboards;
procedure Test(Name: string; Func: TProc);
procedure TestPackages;
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.cmdStartTestClick(Sender: TObject);
begin
Test('Keyboards', TestKeyboards);
Test('Packages', TestPackages);
end;
procedure TForm1.Test(Name: string; Func: TProc);
begin
try
Func;
except
on E:Exception do
memoLog.Lines.Add('FAIL: '+Name+' on _Release: ' + E.ClassName + ' - ' + E.Message);
end;
end;
procedure TForm1.TestKeyboards;
var
k: IKeymanKeyboardInstalled;
s, t: WideString;
begin
k := kmcom.Keyboards.Items[1];
s := k.Name;
kmcom.Keyboards.Refresh;
try
t := k.Name;
except
on E:Exception do s := E.ClassName + ' - ' + E.Message;
end;
if t <> s
then memoLog.Lines.Add('FAIL: Keyboards: '+t)
else memoLog.Lines.Add('PASS: Keyboards: '+s+'='+t);
end;
procedure TForm1.TestPackages;
var
k: IKeymanPackageInstalled;
s, t: WideString;
begin
k := kmcom.Packages.Items[1];
s := k.Name;
kmcom.Refresh;
// kmcom.Packages.Refresh;
try
t := k.Name;
except
on E:Exception do s := E.ClassName + ' - ' + E.Message;
end;
if t <> s
then memoLog.Lines.Add('FAIL: Packages: '+t)
else memoLog.Lines.Add('PASS: Packages: '+s+'='+t);
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
kmcom := CoTavultesoftKeyman.Create;
end;
end.