diff options
| author | Nick <20588554+nicknsy@users.noreply.github.com> | 2023-10-18 19:27:05 -0700 |
|---|---|---|
| committer | Nick <20588554+nicknsy@users.noreply.github.com> | 2023-10-18 19:27:05 -0700 |
| commit | cd662506a1f63f9b20e7f5caa9b671eb3d71ea5a (patch) | |
| tree | b58f7158e21e7ed21d77b0f0abfce23d796b3fe3 /tests/Jellyfin.Networking.Tests/NetworkExtensionsTests.cs | |
| parent | c7feea27fde8af60984c8fe41444dc245dbde395 (diff) | |
| parent | de08d38a6f2a6e773fa1000574e08322605b56d3 (diff) | |
Merge branch 'master' into trickplay
Diffstat (limited to 'tests/Jellyfin.Networking.Tests/NetworkExtensionsTests.cs')
| -rw-r--r-- | tests/Jellyfin.Networking.Tests/NetworkExtensionsTests.cs | 52 |
1 files changed, 52 insertions, 0 deletions
diff --git a/tests/Jellyfin.Networking.Tests/NetworkExtensionsTests.cs b/tests/Jellyfin.Networking.Tests/NetworkExtensionsTests.cs new file mode 100644 index 000000000..072e0a8c5 --- /dev/null +++ b/tests/Jellyfin.Networking.Tests/NetworkExtensionsTests.cs @@ -0,0 +1,52 @@ +using FsCheck; +using FsCheck.Xunit; +using Jellyfin.Networking.Extensions; +using Xunit; + +namespace Jellyfin.Networking.Tests +{ + public static class NetworkExtensionsTests + { + /// <summary> + /// Checks IP address formats. + /// </summary> + /// <param name="address">IP Address.</param> + [Theory] + [InlineData("127.0.0.1")] + [InlineData("127.0.0.1:123")] + [InlineData("localhost")] + [InlineData("localhost:1345")] + [InlineData("fd23:184f:2029:0:3139:7386:67d7:d517")] + [InlineData("fd23:184f:2029:0:3139:7386:67d7:d517/56")] + [InlineData("[fd23:184f:2029:0:3139:7386:67d7:d517]:124")] + [InlineData("fe80::7add:12ff:febb:c67b%16")] + [InlineData("[fe80::7add:12ff:febb:c67b%16]:123")] + [InlineData("fe80::7add:12ff:febb:c67b%16:123")] + [InlineData("[fe80::7add:12ff:febb:c67b%16]")] + [InlineData("192.168.1.2/255.255.255.0")] + [InlineData("192.168.1.2/24")] + public static void TryParse_ValidHostStrings_True(string address) + => Assert.True(NetworkExtensions.TryParseHost(address, out _, true, true)); + + [Property] + public static Property TryParse_IPv4Address_True(IPv4Address address) + => NetworkExtensions.TryParseHost(address.Item.ToString(), out _, true, true).ToProperty(); + + [Property] + public static Property TryParse_IPv6Address_True(IPv6Address address) + => NetworkExtensions.TryParseHost(address.Item.ToString(), out _, true, true).ToProperty(); + + /// <summary> + /// All should be invalid address strings. + /// </summary> + /// <param name="address">Invalid address strings.</param> + [Theory] + [InlineData("256.128.0.0.0.1")] + [InlineData("127.0.0.1#")] + [InlineData("localhost!")] + [InlineData("fd23:184f:2029:0:3139:7386:67d7:d517:1231")] + [InlineData("[fd23:184f:2029:0:3139:7386:67d7:d517:1231]")] + public static void TryParse_InvalidAddressString_False(string address) + => Assert.False(NetworkExtensions.TryParseHost(address, out _, true, true)); + } +} |
