NetworkExtensionsTests.cs 2.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  1. using FsCheck;
  2. using FsCheck.Xunit;
  3. using Jellyfin.Networking.Extensions;
  4. using Xunit;
  5. namespace Jellyfin.Networking.Tests
  6. {
  7. public static class NetworkExtensionsTests
  8. {
  9. /// <summary>
  10. /// Checks IP address formats.
  11. /// </summary>
  12. /// <param name="address">IP Address.</param>
  13. [Theory]
  14. [InlineData("127.0.0.1")]
  15. [InlineData("127.0.0.1:123")]
  16. [InlineData("localhost")]
  17. [InlineData("localhost:1345")]
  18. [InlineData("www.google.co.uk")]
  19. [InlineData("fd23:184f:2029:0:3139:7386:67d7:d517")]
  20. [InlineData("fd23:184f:2029:0:3139:7386:67d7:d517/56")]
  21. [InlineData("[fd23:184f:2029:0:3139:7386:67d7:d517]:124")]
  22. [InlineData("fe80::7add:12ff:febb:c67b%16")]
  23. [InlineData("[fe80::7add:12ff:febb:c67b%16]:123")]
  24. [InlineData("fe80::7add:12ff:febb:c67b%16:123")]
  25. [InlineData("[fe80::7add:12ff:febb:c67b%16]")]
  26. [InlineData("192.168.1.2/255.255.255.0")]
  27. [InlineData("192.168.1.2/24")]
  28. public static void TryParse_ValidHostStrings_True(string address)
  29. => Assert.True(NetworkExtensions.TryParseHost(address, out _, true, true));
  30. [Property]
  31. public static Property TryParse_IPv4Address_True(IPv4Address address)
  32. => NetworkExtensions.TryParseHost(address.Item.ToString(), out _, true, true).ToProperty();
  33. [Property]
  34. public static Property TryParse_IPv6Address_True(IPv6Address address)
  35. => NetworkExtensions.TryParseHost(address.Item.ToString(), out _, true, true).ToProperty();
  36. /// <summary>
  37. /// All should be invalid address strings.
  38. /// </summary>
  39. /// <param name="address">Invalid address strings.</param>
  40. [Theory]
  41. [InlineData("256.128.0.0.0.1")]
  42. [InlineData("127.0.0.1#")]
  43. [InlineData("localhost!")]
  44. [InlineData("fd23:184f:2029:0:3139:7386:67d7:d517:1231")]
  45. [InlineData("[fd23:184f:2029:0:3139:7386:67d7:d517:1231]")]
  46. public static void TryParse_InvalidAddressString_False(string address)
  47. => Assert.False(NetworkExtensions.TryParseHost(address, out _, true, true));
  48. }
  49. }