mirror of
https://gitlab.com/freepascal.org/lazarus/lazarus.git
synced 2025-06-05 20:18:21 +02:00
74 lines
2.0 KiB
ObjectPascal
74 lines
2.0 KiB
ObjectPascal
{
|
|
Test all with:
|
|
./runtests --format=plain --suite=TTestLConvEncoding
|
|
|
|
Test specific with:
|
|
./runtests --format=plain --suite=Test_CP_UTF8_CP
|
|
}
|
|
unit TestLConvEncoding;
|
|
|
|
{$mode objfpc}{$H+}
|
|
|
|
interface
|
|
|
|
uses
|
|
Classes, SysUtils, fpcunit, LConvEncoding, LazLogger, testglobals, LCLProc;
|
|
|
|
type
|
|
|
|
{ TTestLConvEncoding }
|
|
|
|
TTestLConvEncoding = class(TTestCase)
|
|
public
|
|
published
|
|
procedure Test_CP_UTF8_CP;
|
|
end;
|
|
|
|
implementation
|
|
|
|
{ TTestLConvEncoding }
|
|
|
|
procedure TTestLConvEncoding.Test_CP_UTF8_CP;
|
|
|
|
procedure Test(CodePageName: string; const CP2UTF8,UTF82CP: TConvertEncodingFunction);
|
|
var
|
|
c: Char;
|
|
AsUTF8, Back: string;
|
|
l: integer;
|
|
begin
|
|
for c:=#1 to High(Char) do begin
|
|
AsUTF8:=CP2UTF8(c);
|
|
if AsUTF8='' then
|
|
AssertEquals('CodePage '+CodePageName+' to UTF8 creates empty string for character #'+IntToStr(ord(c)),true,false);
|
|
Back:=UTF82CP(AsUTF8);
|
|
if Back<>c then
|
|
AssertEquals('CodePage '+CodePageName+' ('+IntToStr(ord(c))+') to UTF8 ('+dbgs(UTF8CharacterToUnicode(PChar(AsUTF8),l))+') and back differ for character #'+IntToStr(ord(c)),DbgStr(c),dbgstr(Back));
|
|
end;
|
|
end;
|
|
|
|
begin
|
|
Test('ISO_8859_1',@ISO_8859_1ToUTF8,@UTF8ToISO_8859_1);
|
|
Test('ISO_8859_2',@ISO_8859_2ToUTF8,@UTF8ToISO_8859_2);
|
|
Test('ISO_8859_15',@ISO_8859_15ToUTF8,@UTF8ToISO_8859_15);
|
|
Test('437',@CP437ToUTF8,@UTF8ToCP437);
|
|
Test('850',@CP850ToUTF8,@UTF8ToCP850);
|
|
Test('852',@CP852ToUTF8,@UTF8ToCP852);
|
|
Test('866',@CP866ToUTF8,@UTF8ToCP866);
|
|
Test('874',@CP874ToUTF8,@UTF8ToCP874);
|
|
Test('1250',@CP1250ToUTF8,@UTF8ToCP1250);
|
|
Test('1251',@CP1251ToUTF8,@UTF8ToCP1251);
|
|
Test('1252',@CP1252ToUTF8,@UTF8ToCP1252);
|
|
Test('1253',@CP1253ToUTF8,@UTF8ToCP1253);
|
|
Test('1254',@CP1254ToUTF8,@UTF8ToCP1254);
|
|
Test('1255',@CP1255ToUTF8,@UTF8ToCP1255);
|
|
Test('1256',@CP1256ToUTF8,@UTF8ToCP1256);
|
|
Test('1257',@CP1257ToUTF8,@UTF8ToCP1257);
|
|
Test('1258',@CP1258ToUTF8,@UTF8ToCP1258);
|
|
end;
|
|
|
|
initialization
|
|
AddToLazUtilsTestSuite(TTestLConvEncoding);
|
|
|
|
end.
|
|
|