Filesystem: Prevent tree showing other filetypes than the supported ones (#20567)
* Added check to only find .css files in FileSystemTreeServiceBase.cs * Marking GetFiles as virtual and overriding it in StyleSheetTreeService.cs to only find .css files * Redone tests to fit new format * Fix tests to use file extensions * Adding file extensions to all other relevant tests * Adding file filter to remaining trees * Adding tests to ensure invalid filetypes wont show * Encapulation and resolved minor warnings in tests. --------- Co-authored-by: Andy Butland <abutland73@gmail.com>
This commit is contained in:
@@ -7,6 +7,8 @@ namespace Umbraco.Cms.Tests.Integration.ManagementApi.Services.Trees;
|
||||
|
||||
public class StyleSheetTreeServiceTests : FileSystemTreeServiceTestsBase
|
||||
{
|
||||
protected override string FileExtension { get; set; } = ".css";
|
||||
|
||||
protected override string FileSystemPath => GlobalSettings.UmbracoCssPath;
|
||||
|
||||
protected override IFileSystem? GetStylesheetsFileSystem() => TestFileSystem;
|
||||
@@ -16,12 +18,12 @@ public class StyleSheetTreeServiceTests : FileSystemTreeServiceTestsBase
|
||||
{
|
||||
var service = new StyleSheetTreeService(FileSystems);
|
||||
|
||||
FileSystemTreeItemPresentationModel[] treeModel = service.GetSiblingsViewModels("file5", 1, 1, out long before, out var after);
|
||||
int index = Array.FindIndex(treeModel, item => item.Name == "file5");
|
||||
FileSystemTreeItemPresentationModel[] treeModel = service.GetSiblingsViewModels($"file5{FileExtension}", 1, 1, out long before, out var after);
|
||||
int index = Array.FindIndex(treeModel, item => item.Name == $"file5{FileExtension}");
|
||||
|
||||
Assert.AreEqual(treeModel[index].Name, "file5");
|
||||
Assert.AreEqual(treeModel[index - 1].Name, "file4");
|
||||
Assert.AreEqual(treeModel[index + 1].Name, "file6");
|
||||
Assert.AreEqual(treeModel[index].Name, $"file5{FileExtension}");
|
||||
Assert.AreEqual(treeModel[index - 1].Name, $"file4{FileExtension}");
|
||||
Assert.AreEqual(treeModel[index + 1].Name, $"file6{FileExtension}");
|
||||
Assert.That(treeModel.Length == 3);
|
||||
Assert.AreEqual(after, 3);
|
||||
Assert.AreEqual(before, 4);
|
||||
@@ -32,7 +34,7 @@ public class StyleSheetTreeServiceTests : FileSystemTreeServiceTestsBase
|
||||
{
|
||||
var service = new StyleSheetTreeService(FileSystems);
|
||||
|
||||
var path = Path.Join("tests", "file5");
|
||||
var path = Path.Join("tests", $"file5{FileExtension}");
|
||||
FileSystemTreeItemPresentationModel[] treeModel = service.GetAncestorModels(path, true);
|
||||
|
||||
Assert.IsNotEmpty(treeModel);
|
||||
@@ -45,9 +47,25 @@ public class StyleSheetTreeServiceTests : FileSystemTreeServiceTestsBase
|
||||
{
|
||||
var service = new StyleSheetTreeService(FileSystems);
|
||||
|
||||
FileSystemTreeItemPresentationModel[] treeModels = service.GetPathViewModels(string.Empty, 0, Int32.MaxValue, out var totalItems);
|
||||
FileSystemTreeItemPresentationModel[] treeModels = service.GetPathViewModels(string.Empty, 0, int.MaxValue, out var totalItems);
|
||||
|
||||
Assert.IsNotEmpty(treeModels);
|
||||
Assert.AreEqual(treeModels.Length, totalItems);
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void Will_Hide_Unsupported_File_Extensions()
|
||||
{
|
||||
var service = new StyleSheetTreeService(FileSystems);
|
||||
for (int i = 0; i < 2; i++)
|
||||
{
|
||||
using var stream = CreateStream(Path.Join("tests"));
|
||||
TestFileSystem.AddFile($"file{i}.invalid", stream);
|
||||
}
|
||||
|
||||
FileSystemTreeItemPresentationModel[] treeModels = service.GetPathViewModels(string.Empty, 0, int.MaxValue, out var totalItems);
|
||||
|
||||
Assert.IsEmpty(treeModels.Where(file => file.Name.Contains(".invalid")));
|
||||
Assert.AreEqual(treeModels.Length, totalItems);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user