mirror of
https://github.com/bitwarden/server.git
synced 2026-01-31 14:13:18 +08:00
52 lines
1.8 KiB
C#
52 lines
1.8 KiB
C#
|
|
using Bit.Core.Exceptions;
|
|||
|
|
using Bit.Core.Utilities;
|
|||
|
|
using Xunit;
|
|||
|
|
|
|||
|
|
namespace Bit.Core.Test.Utilities;
|
|||
|
|
|
|||
|
|
public class EmailValidationTests
|
|||
|
|
{
|
|||
|
|
[Theory]
|
|||
|
|
[InlineData("user@Example.COM", "example.com")]
|
|||
|
|
[InlineData("user@EXAMPLE.COM", "example.com")]
|
|||
|
|
[InlineData("user@example.com", "example.com")]
|
|||
|
|
[InlineData("user@Example.Com", "example.com")]
|
|||
|
|
[InlineData("User@DOMAIN.CO.UK", "domain.co.uk")]
|
|||
|
|
public void GetDomain_WithMixedCaseEmail_ReturnsLowercaseDomain(string email, string expectedDomain)
|
|||
|
|
{
|
|||
|
|
// Act
|
|||
|
|
var result = EmailValidation.GetDomain(email);
|
|||
|
|
|
|||
|
|
// Assert
|
|||
|
|
Assert.Equal(expectedDomain, result);
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
[Theory]
|
|||
|
|
[InlineData("hello@world.com", "world.com")] // regular email address
|
|||
|
|
[InlineData("hello@world.planet.com", "world.planet.com")] // subdomain
|
|||
|
|
[InlineData("hello+1@world.com", "world.com")] // alias
|
|||
|
|
[InlineData("hello.there@world.com", "world.com")] // period in local-part
|
|||
|
|
[InlineData("hello@wörldé.com", "wörldé.com")] // unicode domain
|
|||
|
|
[InlineData("hello@world.cömé", "world.cömé")] // unicode top-level domain
|
|||
|
|
public void GetDomain_WithValidEmail_ReturnsLowercaseDomain(string email, string expectedDomain)
|
|||
|
|
{
|
|||
|
|
// Act
|
|||
|
|
var result = EmailValidation.GetDomain(email);
|
|||
|
|
|
|||
|
|
// Assert
|
|||
|
|
Assert.Equal(expectedDomain, result);
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
[Theory]
|
|||
|
|
[InlineData("invalid-email")]
|
|||
|
|
[InlineData("@example.com")]
|
|||
|
|
[InlineData("user@")]
|
|||
|
|
[InlineData("")]
|
|||
|
|
public void GetDomain_WithInvalidEmail_ThrowsBadRequestException(string email)
|
|||
|
|
{
|
|||
|
|
// Act & Assert
|
|||
|
|
var exception = Assert.Throws<BadRequestException>(() => EmailValidation.GetDomain(email));
|
|||
|
|
Assert.Equal("Invalid email address format.", exception.Message);
|
|||
|
|
}
|
|||
|
|
}
|