using MmdPdf.Services; using Xunit; namespace MmdPdf.Tests; public sealed class ProtocolRegistrarTests { [Fact] public void ParsesEncodedHttpsPdfUrl() { Assert.True(ProtocolRegistrar.TryGetTargetUrl( "mmdpdf://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("mmdpdf://open?url=http%3A%2F%2Fexample.com%2Ffile.pdf")] [InlineData("mmdpdf://open?url=file%3A%2F%2Fc%3A%2Fsecret.pdf")] [InlineData("mmdpdf://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 _)); }