Initial curated itworx-knowledge-hub source from 3b1751d0d9dee551aa6994eee0093704dc334817
This commit is contained in:
commit
ad8ad252a9
825 files changed
+124216
No files matched your search
@@ -0,0 +1,64 @@
|
||||
using ItWorx.KnowledgeHub.Domain.Attachments;
|
||||
|
||||
namespace ItWorx.KnowledgeHub.Domain.Tests;
|
||||
|
||||
public sealed class SafeFilenameTests
|
||||
{
|
||||
[Theory]
|
||||
[InlineData("../../../../etc/passwd", "passwd")]
|
||||
[InlineData("..\\..\\windows\\system32\\config", "config")]
|
||||
[InlineData("subdir/verslag.pdf", "verslag.pdf")]
|
||||
public void Create_strips_any_directory_component_and_keeps_only_the_leaf_name(string raw, string expected)
|
||||
{
|
||||
var filename = SafeFilename.Create(raw);
|
||||
|
||||
Assert.Equal(expected, filename.Value);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void Create_rejects_a_filename_containing_a_null_byte()
|
||||
{
|
||||
Assert.Throws<ArgumentException>(() => SafeFilename.Create("bestand\0.txt"));
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void Create_rejects_a_filename_containing_a_control_character()
|
||||
{
|
||||
Assert.Throws<ArgumentException>(() => SafeFilename.Create("bestand.txt"));
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void Create_rejects_an_empty_or_dot_only_filename()
|
||||
{
|
||||
Assert.Throws<ArgumentException>(() => SafeFilename.Create(""));
|
||||
Assert.Throws<ArgumentException>(() => SafeFilename.Create("."));
|
||||
Assert.Throws<ArgumentException>(() => SafeFilename.Create(".."));
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void Create_truncates_an_excessively_long_filename()
|
||||
{
|
||||
var raw = new string('a', 400) + ".txt";
|
||||
|
||||
var filename = SafeFilename.Create(raw);
|
||||
|
||||
Assert.True(filename.Value.Length <= SafeFilename.MaximumLength);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void AllExtensions_detects_a_double_extension()
|
||||
{
|
||||
var filename = SafeFilename.Create("factuur.pdf.exe");
|
||||
|
||||
Assert.Equal([".pdf", ".exe"], filename.AllExtensions());
|
||||
Assert.Equal(".exe", filename.LastExtension());
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void LastExtension_is_null_when_there_is_no_extension()
|
||||
{
|
||||
var filename = SafeFilename.Create("readme");
|
||||
|
||||
Assert.Null(filename.LastExtension());
|
||||
}
|
||||
}
|
||||
Reference in new issue
Block a user