* Updated json tests to run properly when the default code is non-UTF8.

This commit is contained in:
Yuriy Sydorov 2021-09-11 16:34:59 +03:00
parent 7e158b6c9b
commit 9653406ac6
2 changed files with 23 additions and 14 deletions

View File

@ -1,4 +1,4 @@
{ %OPT=-S2 } { %OPT=-S2 -Fcutf8 }
{ {
This file is part of the Free Component Library This file is part of the Free Component Library

View File

@ -50,12 +50,12 @@ type
procedure CallNoHandlerStream; procedure CallNoHandlerStream;
procedure DoTestFloat(F: TJSONFloat); overload; procedure DoTestFloat(F: TJSONFloat); overload;
procedure DoTestFloat(F: TJSONFloat; S: String); overload; procedure DoTestFloat(F: TJSONFloat; S: String); overload;
procedure DoTestString(S: String; AValue: String=''); procedure DoTestString(S: TJSONStringType; AValue: TJSONStringType='');
procedure DoTrailingCommaErrorArray; procedure DoTrailingCommaErrorArray;
procedure DoTrailingCommaErrorObject; procedure DoTrailingCommaErrorObject;
Protected Protected
procedure DoTestError(S: String; Options : TJSONOptions = DefaultOpts); virtual; abstract; procedure DoTestError(S: String; Options : TJSONOptions = DefaultOpts); virtual; abstract;
Procedure TestRead(aJSON : String; AResult : Array of string); virtual; abstract; Procedure TestRead(aJSON : String; AResult : Array of TJSONStringType); virtual; abstract;
published published
procedure TestEmpty; procedure TestEmpty;
procedure TestNull; procedure TestNull;
@ -86,7 +86,7 @@ type
Procedure Teardown; override; Procedure Teardown; override;
Public Public
procedure DoTestError(S: String; Options : TJSONOptions = DefaultOpts); override; procedure DoTestError(S: String; Options : TJSONOptions = DefaultOpts); override;
Procedure TestRead(aJSON : String; AResult : Array of string); override; Procedure TestRead(aJSON : String; AResult : Array of TJSONStringType); override;
Property Reader : TMyJSONReader Read FReader; Property Reader : TMyJSONReader Read FReader;
end; end;
@ -125,7 +125,7 @@ type
Procedure Teardown; override; Procedure Teardown; override;
Public Public
procedure DoTestError(S: String; Options : TJSONOptions = DefaultOpts); override; procedure DoTestError(S: String; Options : TJSONOptions = DefaultOpts); override;
Procedure TestRead(aJSON : String; AResult : Array of string); override; Procedure TestRead(aJSON : String; AResult : Array of TJSONStringType); override;
Property Reader : TJSONConsumerReader Read FReader; Property Reader : TJSONConsumerReader Read FReader;
end; end;
@ -154,7 +154,7 @@ type
Procedure Teardown; override; Procedure Teardown; override;
Public Public
procedure DoTestError(S: String; Options : TJSONOptions = DefaultOpts); override; procedure DoTestError(S: String; Options : TJSONOptions = DefaultOpts); override;
Procedure TestRead(aJSON : String; AResult : Array of string); override; Procedure TestRead(aJSON : String; AResult : Array of TJSONStringType); override;
Property Reader : TJSONEventReader Read FReader; Property Reader : TJSONEventReader Read FReader;
end; end;
@ -241,8 +241,11 @@ begin
end; end;
procedure TMyJSONReader.StringValue(const AValue: TJSONStringType); procedure TMyJSONReader.StringValue(const AValue: TJSONStringType);
var
s: TJSONStringType;
begin begin
List.Add('string:'+AValue) s:='string:'+AValue;
List.Add(s);
end; end;
destructor TMyJSONReader.Destroy; destructor TMyJSONReader.Destroy;
@ -492,11 +495,11 @@ begin
end; end;
end; end;
procedure TBaseTestReader.DoTestString(S: String; AValue : String = ''); procedure TBaseTestReader.DoTestString(S: TJSONStringType; AValue : TJSONStringType = '');
begin begin
if AValue='' then if AValue='' then
AValue:=S; AValue:=S;
FOptions:=[joUTF8];
TestRead('"'+S+'"',['string:'+AValue]); TestRead('"'+S+'"',['string:'+AValue]);
end; end;
@ -522,7 +525,7 @@ begin
inherited Teardown; inherited Teardown;
end; end;
procedure TTestReader.TestRead(aJSON: String; AResult: array of string); procedure TTestReader.TestRead(aJSON: String; AResult: array of TJSONStringType);
Var Var
I : Integer; I : Integer;
@ -633,8 +636,11 @@ begin
end; end;
procedure TJSONConsumer.StringValue(const AValue: TJSONStringType); procedure TJSONConsumer.StringValue(const AValue: TJSONStringType);
var
s: TJSONStringType;
begin begin
List.Add('string:'+AValue) s:='string:'+AValue;
List.Add(s);
end; end;
constructor TJSONConsumer.Create(AList: TStrings); constructor TJSONConsumer.Create(AList: TStrings);
@ -642,7 +648,7 @@ begin
FList:=AList; FList:=AList;
end; end;
procedure TTestJSONConsumerReader.TestRead(aJSON: String; AResult: array of string); procedure TTestJSONConsumerReader.TestRead(aJSON: String; AResult: array of TJSONStringType);
Var Var
I : Integer; I : Integer;
@ -731,7 +737,7 @@ begin
Fail('Parse of JSON string "'+S+'" should fail, but succeeded'); Fail('Parse of JSON string "'+S+'" should fail, but succeeded');
end; end;
procedure TTestJSONEventReader.TestRead(aJSON: String; AResult: array of string); procedure TTestJSONEventReader.TestRead(aJSON: String; AResult: array of TJSONStringType);
Var Var
I : Integer; I : Integer;
@ -817,8 +823,11 @@ begin
end; end;
procedure TTestJSONEventReader.StringValue(Sender: TObject; const AValue: TJSONStringType); procedure TTestJSONEventReader.StringValue(Sender: TObject; const AValue: TJSONStringType);
var
s: TJSONStringType;
begin begin
FList.Add('string:'+AValue) s:='string:'+AValue;
FList.Add(s);
end; end;
procedure TTestJSONEventReader.HookupEvents(AReader: TJSONEventReader); procedure TTestJSONEventReader.HookupEvents(AReader: TJSONEventReader);