| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384 | 
							- using System;
 
- using System.Collections.Generic;
 
- using System.Globalization;
 
- using System.Net;
 
- using System.Security.Claims;
 
- using Jellyfin.Api.Constants;
 
- using Jellyfin.Data.Entities;
 
- using Jellyfin.Data.Enums;
 
- using Jellyfin.Server.Implementations.Users;
 
- using MediaBrowser.Common.Configuration;
 
- using MediaBrowser.Controller.Library;
 
- using MediaBrowser.Model.Configuration;
 
- using Microsoft.AspNetCore.Http;
 
- using Moq;
 
- using AccessSchedule = Jellyfin.Data.Entities.AccessSchedule;
 
- namespace Jellyfin.Api.Tests
 
- {
 
-     public static class TestHelpers
 
-     {
 
-         public static ClaimsPrincipal SetupUser(
 
-             Mock<IUserManager> userManagerMock,
 
-             Mock<IHttpContextAccessor> httpContextAccessorMock,
 
-             string role,
 
-             IEnumerable<AccessSchedule>? accessSchedules = null)
 
-         {
 
-             var user = new User(
 
-                 "jellyfin",
 
-                 typeof(DefaultAuthenticationProvider).FullName!,
 
-                 typeof(DefaultPasswordResetProvider).FullName!);
 
-             user.AddDefaultPermissions();
 
-             user.AddDefaultPreferences();
 
-             // Set administrator flag.
 
-             user.SetPermission(PermissionKind.IsAdministrator, role.Equals(UserRoles.Administrator, StringComparison.OrdinalIgnoreCase));
 
-             // Add access schedules if set.
 
-             if (accessSchedules != null)
 
-             {
 
-                 foreach (var accessSchedule in accessSchedules)
 
-                 {
 
-                     user.AccessSchedules.Add(accessSchedule);
 
-                 }
 
-             }
 
-             var claims = new[]
 
-             {
 
-                 new Claim(ClaimTypes.Role, role),
 
-                 new Claim(ClaimTypes.Name, "jellyfin"),
 
-                 new Claim(InternalClaimTypes.UserId, Guid.NewGuid().ToString("N", CultureInfo.InvariantCulture)),
 
-                 new Claim(InternalClaimTypes.DeviceId, Guid.Empty.ToString("N", CultureInfo.InvariantCulture)),
 
-                 new Claim(InternalClaimTypes.Device, "test"),
 
-                 new Claim(InternalClaimTypes.Client, "test"),
 
-                 new Claim(InternalClaimTypes.Version, "test"),
 
-                 new Claim(InternalClaimTypes.Token, "test"),
 
-             };
 
-             var identity = new ClaimsIdentity(claims);
 
-             userManagerMock
 
-                 .Setup(u => u.GetUserById(It.IsAny<Guid>()))
 
-                 .Returns(user);
 
-             httpContextAccessorMock
 
-                 .Setup(h => h.HttpContext!.Connection.RemoteIpAddress)
 
-                 .Returns(new IPAddress(0));
 
-             return new ClaimsPrincipal(identity);
 
-         }
 
-         public static void SetupConfigurationManager(in Mock<IConfigurationManager> configurationManagerMock, bool startupWizardCompleted)
 
-         {
 
-             var commonConfiguration = new BaseApplicationConfiguration
 
-             {
 
-                 IsStartupWizardCompleted = startupWizardCompleted
 
-             };
 
-             configurationManagerMock
 
-                 .Setup(c => c.CommonConfiguration)
 
-                 .Returns(commonConfiguration);
 
-         }
 
-     }
 
- }
 
 
  |