vendor: import KillerPDF 1.7.5 source (GPL-3.0) as the base for MMD PDF
This commit is contained in:
@@ -0,0 +1,23 @@
|
||||
using KillerPDF.Services;
|
||||
using Xunit;
|
||||
|
||||
namespace KillerPDF.Tests;
|
||||
|
||||
public sealed class ProtocolRegistrarTests
|
||||
{
|
||||
[Fact]
|
||||
public void ParsesEncodedHttpsPdfUrl()
|
||||
{
|
||||
Assert.True(ProtocolRegistrar.TryGetTargetUrl(
|
||||
"killerpdf://open?url=https%3A%2F%2Fexample.com%2Ffile.pdf%3Fx%3D1", out var target));
|
||||
Assert.Equal("https://example.com/file.pdf?x=1", target!.AbsoluteUri);
|
||||
}
|
||||
|
||||
[Theory]
|
||||
[InlineData("killerpdf://open?url=http%3A%2F%2Fexample.com%2Ffile.pdf")]
|
||||
[InlineData("killerpdf://open?url=file%3A%2F%2Fc%3A%2Fsecret.pdf")]
|
||||
[InlineData("killerpdf://wrong?url=https%3A%2F%2Fexample.com%2Ffile.pdf")]
|
||||
[InlineData("https://example.com/file.pdf")]
|
||||
public void RejectsUnsafeOrUnrelatedLaunches(string value)
|
||||
=> Assert.False(ProtocolRegistrar.TryGetTargetUrl(value, out _));
|
||||
}
|
||||
Reference in New Issue
Block a user