From c283cc498f2c2a54c3a0f83872a9ce907cf2b82a Mon Sep 17 00:00:00 2001 From: Nikolaj Geisle <70372949+Zeegaan@users.noreply.github.com> Date: Tue, 21 Jun 2022 08:45:33 +0200 Subject: [PATCH] Start work on integration tests --- .../Extensions/ReadOnlyUserGroupExtensions.cs | 4 +-- .../Models/Mapping/ContentVariantMapper.cs | 2 +- .../ReadOnlyUserGroupExtensionsTests.cs | 30 +++++++++++++++++++ 3 files changed, 33 insertions(+), 3 deletions(-) create mode 100644 tests/Umbraco.Tests.Integration/Umbraco.Core/Extensions/ReadOnlyUserGroupExtensionsTests.cs diff --git a/src/Umbraco.Core/Extensions/ReadOnlyUserGroupExtensions.cs b/src/Umbraco.Core/Extensions/ReadOnlyUserGroupExtensions.cs index 10d2317c57..fc5aa51195 100644 --- a/src/Umbraco.Core/Extensions/ReadOnlyUserGroupExtensions.cs +++ b/src/Umbraco.Core/Extensions/ReadOnlyUserGroupExtensions.cs @@ -9,10 +9,10 @@ public static class ReadOnlyUserGroupExtensions /// Checks if a readonly user group has access to a given language /// /// If allowed languages on the user group is empty, it means that we have access to all languages, and thus have access to the language - public static bool HasAccessToLanguage(this IReadOnlyUserGroup readOnlyUserGroup, Language? language) + public static bool HasAccessToLanguage(this IReadOnlyUserGroup readOnlyUserGroup, int languageId) { - if (readOnlyUserGroup.AllowedLanguages.Any() is false || (language is not null && readOnlyUserGroup.AllowedLanguages.Contains(language.Id))) + if (readOnlyUserGroup.AllowedLanguages.Any() is false || readOnlyUserGroup.AllowedLanguages.Contains(languageId)) { return true; } diff --git a/src/Umbraco.Core/Models/Mapping/ContentVariantMapper.cs b/src/Umbraco.Core/Models/Mapping/ContentVariantMapper.cs index dc10549e9c..4bab057cbe 100644 --- a/src/Umbraco.Core/Models/Mapping/ContentVariantMapper.cs +++ b/src/Umbraco.Core/Models/Mapping/ContentVariantMapper.cs @@ -235,7 +235,7 @@ public class ContentVariantMapper } } - if (group.HasAccessToLanguage(variantDisplay.Language)) + if (variantDisplay.Language is not null && group.HasAccessToLanguage(variantDisplay.Language.Id)) { hasAccess = true; break; diff --git a/tests/Umbraco.Tests.Integration/Umbraco.Core/Extensions/ReadOnlyUserGroupExtensionsTests.cs b/tests/Umbraco.Tests.Integration/Umbraco.Core/Extensions/ReadOnlyUserGroupExtensionsTests.cs new file mode 100644 index 0000000000..f2463ce409 --- /dev/null +++ b/tests/Umbraco.Tests.Integration/Umbraco.Core/Extensions/ReadOnlyUserGroupExtensionsTests.cs @@ -0,0 +1,30 @@ +using NUnit.Framework; +using Umbraco.Cms.Core.Extensions; +using Umbraco.Cms.Core.Models; +using Umbraco.Cms.Core.Models.Membership; +using Umbraco.Cms.Core.Services; +using Umbraco.Cms.Core.Strings; +using Umbraco.Cms.Tests.Common.Testing; +using Umbraco.Cms.Tests.Integration.Testing; + +namespace Umbraco.Cms.Tests.Integration.Umbraco.Core.Extensions; + +[TestFixture] +[UmbracoTest(Database = UmbracoTestOptions.Database.NewSchemaPerFixture)] +public class ReadOnlyUserGroupExtensionsTests : UmbracoIntegrationTest +{ + private ILocalizationService LocalizationService => GetRequiredService(); + + private IShortStringHelper ShortStringHelper => GetRequiredService(); + + [Test] + public void CanIfUserHasAccessToLanguage() + { + var swe = new Language("sv-SE", "Swedish"); + LocalizationService.Save(swe); + var userGrp = new UserGroup(ShortStringHelper); + userGrp.AddAllowedLanguage(swe.Id); + + Assert.IsTrue(userGrp.HasAccessToLanguage(swe.Id)); + } +}