mirror of
https://gitlab.com/freepascal.org/lazarus/lazarus.git
synced 2025-05-01 21:43:42 +02:00
138 lines
2.8 KiB
ObjectPascal
138 lines
2.8 KiB
ObjectPascal
unit TestInsightController;
|
|
|
|
{$mode objfpc}{$H+}
|
|
|
|
interface
|
|
|
|
uses
|
|
Classes, SysUtils;
|
|
|
|
Const
|
|
DefaultPort = 6789;
|
|
DefaultAutoFetchTests = True;
|
|
DefaultBasePath = '/tests';
|
|
TestInsightConfig = 'TestInsight.xml';
|
|
|
|
|
|
Type
|
|
|
|
{ TTestInsightOptions }
|
|
|
|
TTestInsightOptions = class(TPersistent)
|
|
private
|
|
FAutoFetchTests: Boolean;
|
|
FBasePath: String;
|
|
FPort: Word;
|
|
Public
|
|
Constructor Create;
|
|
procedure Reset; virtual;
|
|
procedure LoadFromFile(FileName : String);
|
|
procedure SaveToFile(FileName: String);
|
|
Property Port : Word Read FPort Write FPort;
|
|
property BasePath : String Read FBasePath Write FBasePath;
|
|
Property AutoFetchTests : Boolean Read FAutoFetchTests Write FautoFetchTests;
|
|
end;
|
|
|
|
{ TTestInsightController }
|
|
|
|
TTestInsightController = class(TObject)
|
|
private
|
|
class var _instance : TTestInsightController;
|
|
Class constructor Init;
|
|
Class destructor Done;
|
|
private
|
|
FOptions: TTestInsightOptions;
|
|
public
|
|
Public
|
|
Constructor Create;
|
|
Destructor Destroy; override;
|
|
Class Property Instance : TTestInsightController Read _instance;
|
|
Property Options : TTestInsightOptions Read FOptions;
|
|
end;
|
|
|
|
Function gTestInsightController : TTestInsightController;
|
|
|
|
implementation
|
|
|
|
Uses BaseIDEIntf, LazConfigStorage;
|
|
|
|
Const
|
|
KeyPort = 'Port/Value';
|
|
KeyAutoFetchTests = 'AutoFetchTests/Value';
|
|
KeyBasePath = 'BasePath/Value';
|
|
|
|
function gTestInsightController: TTestInsightController;
|
|
begin
|
|
Result:=TTestInsightController.Instance
|
|
end;
|
|
|
|
{ TTestInsightOptions }
|
|
|
|
procedure TTestInsightOptions.SaveToFile(FileName: String);
|
|
var
|
|
Cfg: TConfigStorage;
|
|
begin
|
|
Cfg:=GetIDEConfigStorage(Filename,False);
|
|
try
|
|
Cfg.SetDeleteValue(KeyPort,Port,DefaultPort);
|
|
Cfg.SetDeleteValue(KeyBasePath,BasePath,DefaultBasePath);
|
|
Cfg.SetDeleteValue(KeyAutoFetchTests,AutoFetchTests,DefaultAutoFetchTests);
|
|
Cfg.WriteToDisk;
|
|
|
|
finally
|
|
Cfg.Free;
|
|
end;
|
|
end;
|
|
|
|
constructor TTestInsightOptions.Create;
|
|
begin
|
|
Reset;
|
|
end;
|
|
|
|
procedure TTestInsightOptions.Reset;
|
|
begin
|
|
Port:=DefaultPort;
|
|
BasePath:=DefaultBasePath;
|
|
AutoFetchTests:=DefaultAutoFetchTests;
|
|
end;
|
|
|
|
procedure TTestInsightOptions.LoadFromFile(FileName: String);
|
|
var
|
|
Cfg: TConfigStorage;
|
|
begin
|
|
Cfg:=GetIDEConfigStorage(Filename,True);
|
|
try
|
|
Port:=Cfg.GetValue(KeyPort,DefaultPort);
|
|
BasePath:=Cfg.GetValue(KeyBasePath,DefaultBasePath);
|
|
AutoFetchTests:=Cfg.GetValue(KeyAutoFetchTests,DefaultAutoFetchTests);
|
|
finally
|
|
Cfg.Free;
|
|
end;
|
|
end;
|
|
|
|
{ TTestInsightController }
|
|
|
|
class constructor TTestInsightController.Init;
|
|
begin
|
|
_Instance:=TTestInsightController.Create;
|
|
end;
|
|
|
|
class destructor TTestInsightController.Done;
|
|
begin
|
|
FreeAndNil(_Instance)
|
|
end;
|
|
|
|
constructor TTestInsightController.Create;
|
|
begin
|
|
FOptions:=TTestInsightOptions.Create;
|
|
end;
|
|
|
|
destructor TTestInsightController.Destroy;
|
|
begin
|
|
FreeAndNil(FOptions);
|
|
inherited Destroy;
|
|
end;
|
|
|
|
end.
|
|
|