Fixed: Allow leading/trailing spaces on non-Windows

(cherry picked from commit 9127a91dfc460f442498a00faed98737047098cd)
This commit is contained in:
Mark McDowall 2024-07-28 20:16:51 -07:00 committed by Bogdan
parent a074ebc951
commit e67a127a02
2 changed files with 22 additions and 9 deletions

View file

@ -337,8 +337,17 @@ public void IsPathValid_should_be_true(string path)
[TestCase(@" C:\Test\TV\")]
[TestCase(@" C:\Test\TV")]
public void IsPathValid_should_be_false(string path)
public void IsPathValid_should_be_false_on_windows(string path)
{
WindowsOnly();
path.IsPathValid(PathValidationType.CurrentOs).Should().BeFalse();
}
[TestCase(@"")]
[TestCase(@"relative/path")]
public void IsPathValid_should_be_false_on_unix(string path)
{
PosixOnly();
path.AsOsAgnostic().IsPathValid(PathValidationType.CurrentOs).Should().BeFalse();
}
}

View file

@ -155,16 +155,20 @@ public static bool IsPathValid(this string path, PathValidationType validationTy
return false;
}
var directoryInfo = new DirectoryInfo(path);
while (directoryInfo != null)
// Only check for leading or trailing spaces for path when running on Windows.
if (OsInfo.IsWindows)
{
if (directoryInfo.Name.Trim() != directoryInfo.Name)
{
return false;
}
var directoryInfo = new DirectoryInfo(path);
directoryInfo = directoryInfo.Parent;
while (directoryInfo != null)
{
if (directoryInfo.Name.Trim() != directoryInfo.Name)
{
return false;
}
directoryInfo = directoryInfo.Parent;
}
}
if (validationType == PathValidationType.AnyOs)