mirror of
https://gitlab.com/freepascal.org/lazarus/lazarus.git
synced 2025-04-27 19:33:49 +02:00
79 lines
1.7 KiB
ObjectPascal
79 lines
1.7 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, FileProcs,
|
|
LazUTF8;
|
|
|
|
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);
|
|
var
|
|
c: Char;
|
|
AsUTF8, Back: string;
|
|
l: integer;
|
|
Encoded: boolean;
|
|
begin
|
|
for c:=#1 to High(Char) do begin
|
|
AsUTF8:=ConvertEncodingToUTF8(c,CodePageName,Encoded);
|
|
if AsUTF8='' then
|
|
AssertEquals('CodePage '+CodePageName+' to UTF8 creates empty string for character #'+IntToStr(ord(c)),true,false);
|
|
Back:=ConvertEncodingFromUTF8(AsUTF8,CodePageName,Encoded);
|
|
if Back<>c then
|
|
AssertEquals('CodePage '+CodePageName+' ('+IntToStr(ord(c))+') to UTF8 ('+dbgs(UTF8CodepointToUnicode(PChar(AsUTF8),l))+') and back differ for character #'+IntToStr(ord(c)),DbgStr(c),dbgstr(Back));
|
|
end;
|
|
end;
|
|
|
|
begin
|
|
Test(EncodingCPIso1);
|
|
Test(EncodingCPIso2);
|
|
Test(EncodingCPIso15);
|
|
Test(EncodingCP437);
|
|
Test(EncodingCP850);
|
|
Test(EncodingCP852);
|
|
Test(EncodingCP866);
|
|
Test(EncodingCP874);
|
|
Test(EncodingCP1250);
|
|
Test(EncodingCP1251);
|
|
Test(EncodingCP1252);
|
|
Test(EncodingCP1253);
|
|
Test(EncodingCP1254);
|
|
Test(EncodingCP1255);
|
|
Test(EncodingCP1256);
|
|
Test(EncodingCP1257);
|
|
Test(EncodingCP1258);
|
|
Test(EncodingCPKOI8R);
|
|
Test(EncodingCPKOI8U);
|
|
Test(EncodingCPKOI8RU);
|
|
end;
|
|
|
|
initialization
|
|
AddToLazUtilsTestSuite(TTestLConvEncoding);
|
|
|
|
end.
|
|
|