mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-08-18 16:29:19 +02:00
* Fix some tests after recent changes, better test for special dirs
This commit is contained in:
parent
87321a0e67
commit
184d20cb06
@ -630,16 +630,37 @@ begin
|
|||||||
|
|
||||||
end;
|
end;
|
||||||
|
|
||||||
(* We assume Standard values for linux/
|
{$IFDEF UNIX}
|
||||||
XDG_DESKTOP_DIR="$HOME/Desktop"
|
//Names : array[TSpecialDir] of string
|
||||||
XDG_DOWNLOAD_DIR="$HOME/Downloads"
|
// = ('DESKTOP', 'DOCUMENTS', 'DOWNLOAD', 'MUSIC', 'PICTURES', 'PUBLICSHARE', 'TEMPLATES', 'VIDEOS');
|
||||||
XDG_TEMPLATES_DIR="$HOME/Templates"
|
|
||||||
XDG_PUBLICSHARE_DIR="$HOME/Public"
|
|
||||||
XDG_DOCUMENTS_DIR="$HOME/Documents"
|
function UnixSpecialDir(const AType: String): string;
|
||||||
XDG_MUSIC_DIR="$HOME/Music"
|
|
||||||
XDG_PICTURES_DIR="$HOME/Pictures"
|
var
|
||||||
XDG_VIDEOS_DIR="$HOME/Videos"
|
cfg,varname: string;
|
||||||
*)
|
L: TStringList;
|
||||||
|
begin
|
||||||
|
Result := '';
|
||||||
|
// XDG variable name
|
||||||
|
varName:=Format('XDG_%s_DIR',[UpperCase(AType)]);
|
||||||
|
Cfg:=GetEnvironmentVariable('XDG_CONFIG_HOME');
|
||||||
|
if (Cfg='') then
|
||||||
|
Cfg:=GetUserDir+'.config/user-dirs.dirs'
|
||||||
|
else
|
||||||
|
CFG:=CFG+'user-dirs.dirs';
|
||||||
|
if not FileExists(Cfg) then
|
||||||
|
Exit;
|
||||||
|
L:=TStringList.Create;
|
||||||
|
try
|
||||||
|
L.LoadFromFile(Cfg);
|
||||||
|
Result:=AnsiDequotedStr(L.Values[VarName],'"');
|
||||||
|
finally
|
||||||
|
FreeAndNil(L);
|
||||||
|
end;
|
||||||
|
Result:=StringReplace(Result,'$HOME', ExcludeTrailingPathDelimiter(GetUserDir), [rfIgnoreCase]);
|
||||||
|
end;
|
||||||
|
{$ENDIF}
|
||||||
|
|
||||||
procedure TTestTPath.TestGetDocumentsPath;
|
procedure TTestTPath.TestGetDocumentsPath;
|
||||||
|
|
||||||
@ -649,7 +670,7 @@ Var
|
|||||||
begin
|
begin
|
||||||
FN:=TPath.GetDocumentsPath;
|
FN:=TPath.GetDocumentsPath;
|
||||||
{$IFDEF UNIX}
|
{$IFDEF UNIX}
|
||||||
AssertEquals(GetUserDir+'Documents',FN);
|
AssertEquals(UnixSpecialDir('Documents'),FN);
|
||||||
{$ELSE}
|
{$ELSE}
|
||||||
{$IFDEF WINDOWS}
|
{$IFDEF WINDOWS}
|
||||||
AssertEquals(GetSpecialDir(CSIDL_PERSONAL),FN);
|
AssertEquals(GetSpecialDir(CSIDL_PERSONAL),FN);
|
||||||
@ -667,7 +688,7 @@ Var
|
|||||||
begin
|
begin
|
||||||
FN:=TPath.GetSharedDocumentsPath;
|
FN:=TPath.GetSharedDocumentsPath;
|
||||||
{$IFDEF UNIX}
|
{$IFDEF UNIX}
|
||||||
AssertEquals(GetUserDir+'Public',FN);
|
AssertEquals(UnixSpecialDir('PublicShare'),FN);
|
||||||
{$ELSE}
|
{$ELSE}
|
||||||
{$IFDEF WINDOWS}
|
{$IFDEF WINDOWS}
|
||||||
AssertEquals(GetSpecialDir(CSIDL_COMMON_DOCUMENTS),FN);
|
AssertEquals(GetSpecialDir(CSIDL_COMMON_DOCUMENTS),FN);
|
||||||
@ -722,7 +743,7 @@ Var
|
|||||||
begin
|
begin
|
||||||
FN:=TPath.GetPublicPath;
|
FN:=TPath.GetPublicPath;
|
||||||
{$IFDEF UNIX}
|
{$IFDEF UNIX}
|
||||||
AssertEquals(GetUserDir+'Public',FN);
|
AssertEquals(UnixSpecialDir('PublicShare'),FN);
|
||||||
{$ELSE}
|
{$ELSE}
|
||||||
{$IFDEF WINDOWS}
|
{$IFDEF WINDOWS}
|
||||||
AssertEquals(GetSpecialDir(CSIDL_COMMON_APPDATA),FN);
|
AssertEquals(GetSpecialDir(CSIDL_COMMON_APPDATA),FN);
|
||||||
@ -740,7 +761,7 @@ Var
|
|||||||
begin
|
begin
|
||||||
FN:=TPath.GetPicturesPath;
|
FN:=TPath.GetPicturesPath;
|
||||||
{$IFDEF UNIX}
|
{$IFDEF UNIX}
|
||||||
AssertEquals(GetUserDir+'Pictures',FN);
|
AssertEquals(UnixSpecialDir('Pictures'),FN);
|
||||||
{$ELSE}
|
{$ELSE}
|
||||||
{$IFDEF WINDOWS}
|
{$IFDEF WINDOWS}
|
||||||
AssertEquals(GetSpecialDir(CSIDL_MYPICTURES),FN);
|
AssertEquals(GetSpecialDir(CSIDL_MYPICTURES),FN);
|
||||||
@ -758,7 +779,7 @@ Var
|
|||||||
begin
|
begin
|
||||||
FN:=TPath.GetSharedPicturesPath;
|
FN:=TPath.GetSharedPicturesPath;
|
||||||
{$IFDEF UNIX}
|
{$IFDEF UNIX}
|
||||||
AssertEquals(GetUserDir+'Public',FN);
|
AssertEquals(UnixSpecialDir('PublicShare'),FN);
|
||||||
{$ELSE}
|
{$ELSE}
|
||||||
{$IFDEF WINDOWS}
|
{$IFDEF WINDOWS}
|
||||||
AssertEquals(GetSpecialDir(CSIDL_COMMON_PICTURES),FN);
|
AssertEquals(GetSpecialDir(CSIDL_COMMON_PICTURES),FN);
|
||||||
@ -776,7 +797,7 @@ Var
|
|||||||
begin
|
begin
|
||||||
FN:=TPath.GetPicturesPath;
|
FN:=TPath.GetPicturesPath;
|
||||||
{$IFDEF UNIX}
|
{$IFDEF UNIX}
|
||||||
AssertEquals(GetUserDir+'Pictures',FN);
|
AssertEquals(UnixSpecialDir('Pictures'),FN);
|
||||||
{$ELSE}
|
{$ELSE}
|
||||||
{$IFDEF WINDOWS}
|
{$IFDEF WINDOWS}
|
||||||
AssertEquals(GetSpecialDir(CSIDL_MYPICTURES),FN);
|
AssertEquals(GetSpecialDir(CSIDL_MYPICTURES),FN);
|
||||||
@ -793,7 +814,7 @@ Var
|
|||||||
begin
|
begin
|
||||||
FN:=TPath.GetSharedCameraPath;
|
FN:=TPath.GetSharedCameraPath;
|
||||||
{$IFDEF UNIX}
|
{$IFDEF UNIX}
|
||||||
AssertEquals(GetUserDir+'Public',FN);
|
AssertEquals(UnixSpecialDir('PublicShare'),FN);
|
||||||
{$ELSE}
|
{$ELSE}
|
||||||
{$IFDEF WINDOWS}
|
{$IFDEF WINDOWS}
|
||||||
AssertEquals(GetSpecialDir(CSIDL_COMMON_PICTURES),FN);
|
AssertEquals(GetSpecialDir(CSIDL_COMMON_PICTURES),FN);
|
||||||
@ -812,7 +833,7 @@ Var
|
|||||||
begin
|
begin
|
||||||
FN:=TPath.GetMusicPath;
|
FN:=TPath.GetMusicPath;
|
||||||
{$IFDEF UNIX}
|
{$IFDEF UNIX}
|
||||||
AssertEquals(GetUserDir+'Music',FN);
|
AssertEquals(UnixSpecialDir('Music'),FN);
|
||||||
{$ELSE}
|
{$ELSE}
|
||||||
{$IFDEF WINDOWS}
|
{$IFDEF WINDOWS}
|
||||||
AssertEquals(GetSpecialDir(CSIDL_MYMUSIC),FN);
|
AssertEquals(GetSpecialDir(CSIDL_MYMUSIC),FN);
|
||||||
@ -830,7 +851,7 @@ Var
|
|||||||
begin
|
begin
|
||||||
FN:=TPath.GetSharedMusicPath;
|
FN:=TPath.GetSharedMusicPath;
|
||||||
{$IFDEF UNIX}
|
{$IFDEF UNIX}
|
||||||
AssertEquals(GetUserDir+'Public',FN);
|
AssertEquals(UnixSpecialDir('PublicShare'),FN);
|
||||||
{$ELSE}
|
{$ELSE}
|
||||||
{$IFDEF WINDOWS}
|
{$IFDEF WINDOWS}
|
||||||
AssertEquals(GetSpecialDir(CSIDL_COMMON_MUSIC),FN);
|
AssertEquals(GetSpecialDir(CSIDL_COMMON_MUSIC),FN);
|
||||||
@ -847,7 +868,7 @@ Var
|
|||||||
begin
|
begin
|
||||||
FN:=TPath.GetMoviesPath;
|
FN:=TPath.GetMoviesPath;
|
||||||
{$IFDEF UNIX}
|
{$IFDEF UNIX}
|
||||||
AssertEquals(GetUserDir+'Videos',FN);
|
AssertEquals(UnixSpecialDir('Videos'),FN);
|
||||||
{$ELSE}
|
{$ELSE}
|
||||||
{$IFDEF WINDOWS}
|
{$IFDEF WINDOWS}
|
||||||
AssertEquals(GetSpecialDir(CSIDL_MYVIDEO),FN);
|
AssertEquals(GetSpecialDir(CSIDL_MYVIDEO),FN);
|
||||||
@ -866,7 +887,7 @@ Var
|
|||||||
begin
|
begin
|
||||||
FN:=TPath.GetSharedMoviesPath;
|
FN:=TPath.GetSharedMoviesPath;
|
||||||
{$IFDEF UNIX}
|
{$IFDEF UNIX}
|
||||||
AssertEquals(GetUserDir+'Public',FN);
|
AssertEquals(UnixSpecialDir('PublicShare'),FN);
|
||||||
{$ELSE}
|
{$ELSE}
|
||||||
{$IFDEF WINDOWS}
|
{$IFDEF WINDOWS}
|
||||||
AssertEquals(GetSpecialDir(CSIDL_COMMON_VIDEO),FN);
|
AssertEquals(GetSpecialDir(CSIDL_COMMON_VIDEO),FN);
|
||||||
@ -884,7 +905,7 @@ Var
|
|||||||
begin
|
begin
|
||||||
FN:=TPath.GetAlarmsPath;
|
FN:=TPath.GetAlarmsPath;
|
||||||
{$IFDEF UNIX}
|
{$IFDEF UNIX}
|
||||||
AssertEquals(GetUserDir+'Music',FN);
|
AssertEquals(UnixSpecialDir('Music'),FN);
|
||||||
{$ELSE}
|
{$ELSE}
|
||||||
{$IFDEF WINDOWS}
|
{$IFDEF WINDOWS}
|
||||||
AssertEquals(GetSpecialDir(CSIDL_MYMUSIC),FN);
|
AssertEquals(GetSpecialDir(CSIDL_MYMUSIC),FN);
|
||||||
@ -901,7 +922,7 @@ Var
|
|||||||
begin
|
begin
|
||||||
FN:=TPath.GetSharedAlarmsPath;
|
FN:=TPath.GetSharedAlarmsPath;
|
||||||
{$IFDEF UNIX}
|
{$IFDEF UNIX}
|
||||||
AssertEquals(GetUserDir+'Public',FN);
|
AssertEquals(UnixSpecialDir('PublicShare'),FN);
|
||||||
{$ELSE}
|
{$ELSE}
|
||||||
{$IFDEF WINDOWS}
|
{$IFDEF WINDOWS}
|
||||||
AssertEquals(GetSpecialDir(CSIDL_COMMON_MUSIC),FN);
|
AssertEquals(GetSpecialDir(CSIDL_COMMON_MUSIC),FN);
|
||||||
@ -919,7 +940,7 @@ Var
|
|||||||
begin
|
begin
|
||||||
FN:=TPath.GetDownloadsPath;
|
FN:=TPath.GetDownloadsPath;
|
||||||
{$IFDEF UNIX}
|
{$IFDEF UNIX}
|
||||||
AssertEquals(GetUserDir+'Downloads',FN);
|
AssertEquals(UnixSpecialDir('Download'),FN);
|
||||||
{$ELSE}
|
{$ELSE}
|
||||||
{$IFDEF WINDOWS}
|
{$IFDEF WINDOWS}
|
||||||
AssertEquals(GetSpecialDir(CSIDL_MYMUSIC),FN);
|
AssertEquals(GetSpecialDir(CSIDL_MYMUSIC),FN);
|
||||||
@ -937,7 +958,7 @@ Var
|
|||||||
begin
|
begin
|
||||||
FN:=TPath.GetSharedDownloadsPath;
|
FN:=TPath.GetSharedDownloadsPath;
|
||||||
{$IFDEF UNIX}
|
{$IFDEF UNIX}
|
||||||
AssertEquals(GetUserDir+'Public',FN);
|
AssertEquals(UnixSpecialDir('PublicShare'),FN);
|
||||||
{$ELSE}
|
{$ELSE}
|
||||||
{$IFDEF WINDOWS}
|
{$IFDEF WINDOWS}
|
||||||
AssertEquals(GetSpecialDir(CSIDL_COMMON_APPDATA),FN);
|
AssertEquals(GetSpecialDir(CSIDL_COMMON_APPDATA),FN);
|
||||||
@ -954,7 +975,7 @@ Var
|
|||||||
begin
|
begin
|
||||||
FN:=TPath.GetAlarmsPath;
|
FN:=TPath.GetAlarmsPath;
|
||||||
{$IFDEF UNIX}
|
{$IFDEF UNIX}
|
||||||
AssertEquals(GetUserDir+'Music',FN);
|
AssertEquals(UnixSpecialDir('Music'),FN);
|
||||||
{$ELSE}
|
{$ELSE}
|
||||||
{$IFDEF WINDOWS}
|
{$IFDEF WINDOWS}
|
||||||
AssertEquals(GetSpecialDir(CSIDL_MYMUSIC),FN);
|
AssertEquals(GetSpecialDir(CSIDL_MYMUSIC),FN);
|
||||||
@ -971,7 +992,7 @@ Var
|
|||||||
begin
|
begin
|
||||||
FN:=TPath.GetSharedRingtonesPath;
|
FN:=TPath.GetSharedRingtonesPath;
|
||||||
{$IFDEF UNIX}
|
{$IFDEF UNIX}
|
||||||
AssertEquals(GetUserDir+'Public',FN);
|
AssertEquals(UnixSpecialDir('PublicShare'),FN);
|
||||||
{$ELSE}
|
{$ELSE}
|
||||||
{$IFDEF WINDOWS}
|
{$IFDEF WINDOWS}
|
||||||
AssertEquals(GetSpecialDir(CSIDL_COMMON_MUSIC),FN);
|
AssertEquals(GetSpecialDir(CSIDL_COMMON_MUSIC),FN);
|
||||||
@ -988,7 +1009,7 @@ Var
|
|||||||
begin
|
begin
|
||||||
FN:=TPath.GetTemplatesPath;
|
FN:=TPath.GetTemplatesPath;
|
||||||
{$IFDEF UNIX}
|
{$IFDEF UNIX}
|
||||||
AssertEquals(GetUserDir+'Templates',FN);
|
AssertEquals(UnixSpecialDir('Templates'),FN);
|
||||||
{$ELSE}
|
{$ELSE}
|
||||||
{$IFDEF WINDOWS}
|
{$IFDEF WINDOWS}
|
||||||
AssertEquals(GetSpecialDir(CSIDL_PERSONAL),FN);
|
AssertEquals(GetSpecialDir(CSIDL_PERSONAL),FN);
|
||||||
@ -1089,7 +1110,7 @@ begin
|
|||||||
{$elseif defined(unix)}
|
{$elseif defined(unix)}
|
||||||
AssertEquals('\',TPath.AltDirectorySeparatorChar);
|
AssertEquals('\',TPath.AltDirectorySeparatorChar);
|
||||||
{$else}
|
{$else}
|
||||||
AssertEquals('/',TPath.AltDirectorySeparatorChar);
|
AssertEquals('\',TPath.AltDirectorySeparatorChar);
|
||||||
{$endif}
|
{$endif}
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user