Premiere commit - Omika
This commit is contained in:
@@ -0,0 +1,38 @@
|
||||
using Omika.Core.Networking;
|
||||
|
||||
namespace Omika.Tests.Networking;
|
||||
|
||||
/// <summary>
|
||||
/// Tests de la validation stricte des endpoints HTTPS (URL licence / API Omika).
|
||||
/// </summary>
|
||||
public class EndpointValidatorTests
|
||||
{
|
||||
[Theory]
|
||||
[InlineData("http://api.example.com")] // HTTP → refus
|
||||
[InlineData("https://localhost/api")] // localhost → refus
|
||||
[InlineData("https://127.0.0.1/api")] // loopback IPv4 → refus
|
||||
[InlineData("https://127.0.0.2/api")] // plage 127.0.0.0/8 → refus
|
||||
[InlineData("https://[::1]/api")] // loopback IPv6 → refus
|
||||
[InlineData("https://user:pass@example.com")] // credentials dans l'URL → refus
|
||||
[InlineData("file:///etc/passwd")] // schéma non HTTPS → refus
|
||||
[InlineData("javascript:alert(1)")] // schéma non HTTPS → refus
|
||||
[InlineData("data:text/plain,hello")] // schéma non HTTPS → refus
|
||||
[InlineData("/api/relative")] // URI relative → refus
|
||||
[InlineData("not-a-url")] // non absolue → refus
|
||||
[InlineData("")] // vide → refus
|
||||
public void UrlNonConforme_Refusee(string? url)
|
||||
{
|
||||
Assert.False(EndpointValidator.TryValidateHttpsEndpoint(url, out _));
|
||||
}
|
||||
|
||||
[Theory]
|
||||
[InlineData("https://api.example.com")]
|
||||
[InlineData("https://omika.example.com/api")]
|
||||
[InlineData("https://licence.example.com:443")]
|
||||
public void UrlHttpsValide_Acceptee(string url)
|
||||
{
|
||||
Assert.True(EndpointValidator.TryValidateHttpsEndpoint(url, out Uri? uri));
|
||||
Assert.NotNull(uri);
|
||||
Assert.Equal(Uri.UriSchemeHttps, uri.Scheme);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user