Test RequiresElevationHandler for all roles

This commit is contained in:
Ben Magee 2019-12-22 22:54:46 +00:00
parent 8d06d0dbdf
commit ef75455178
No known key found for this signature in database
GPG Key ID: F03F50C6333B2D9F

View File

@ -0,0 +1,38 @@
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);
}
}
}