1234567891011121314151617181920212223242526272829303132333435363738 |
- using System.Collections.Generic;
- using System.Security.Claims;
- using System.Threading.Tasks;
- using Jellyfin.Api.Auth.RequiresElevationPolicy;
- using Jellyfin.Api.Constants;
- using Microsoft.AspNetCore.Authorization;
- using Xunit;
- namespace Jellyfin.Api.Tests.Auth.RequiresElevationPolicy
- {
- public class RequiresElevationHandlerTests
- {
- private readonly RequiresElevationHandler _sut;
- public RequiresElevationHandlerTests()
- {
- _sut = new RequiresElevationHandler();
- }
- [Theory]
- [InlineData(UserRoles.Administrator, true)]
- [InlineData(UserRoles.User, false)]
- [InlineData(UserRoles.Guest, false)]
- public async Task ShouldHandleRolesCorrectly(string role, bool shouldSucceed)
- {
- var requirements = new List<IAuthorizationRequirement> { new RequiresElevationRequirement() };
- var claims = new[] { new Claim(ClaimTypes.Role, role) };
- var identity = new ClaimsIdentity(claims);
- var user = new ClaimsPrincipal(identity);
- var context = new AuthorizationHandlerContext(requirements, user, null);
- await _sut.HandleAsync(context);
- Assert.Equal(shouldSucceed, context.HasSucceeded);
- }
- }
- }
|