From 83fb1ebc11b57145f4f9e558e7b9fbe30a5a8a4d Mon Sep 17 00:00:00 2001 From: Enis Necipoglu Date: Wed, 20 Sep 2023 09:51:35 +0300 Subject: [PATCH] Allow multiple level URLs in SlugNormalizer --- .../Volo/CmsKit/SlugNormalizer.cs | 9 ++++++++- .../Blogs/SlugExtensions_Tests.cs | 14 ++++++++++++++ 2 files changed, 22 insertions(+), 1 deletion(-) diff --git a/modules/cms-kit/src/Volo.CmsKit.Domain/Volo/CmsKit/SlugNormalizer.cs b/modules/cms-kit/src/Volo.CmsKit.Domain/Volo/CmsKit/SlugNormalizer.cs index d7529441b1..82b954685a 100644 --- a/modules/cms-kit/src/Volo.CmsKit.Domain/Volo/CmsKit/SlugNormalizer.cs +++ b/modules/cms-kit/src/Volo.CmsKit.Domain/Volo/CmsKit/SlugNormalizer.cs @@ -5,7 +5,14 @@ namespace Volo.CmsKit; public static class SlugNormalizer { - static readonly SlugHelper SlugHelper = new(); + static readonly SlugHelper SlugHelper = new(new SlugHelperConfiguration + { + AllowedChars = + { + '/' + } + }); + public static string Normalize(string value) { return SlugHelper.GenerateSlug(value?.Unidecode()); diff --git a/modules/cms-kit/test/Volo.CmsKit.Domain.Tests/Blogs/SlugExtensions_Tests.cs b/modules/cms-kit/test/Volo.CmsKit.Domain.Tests/Blogs/SlugExtensions_Tests.cs index 941f82c7bf..64535f80be 100644 --- a/modules/cms-kit/test/Volo.CmsKit.Domain.Tests/Blogs/SlugExtensions_Tests.cs +++ b/modules/cms-kit/test/Volo.CmsKit.Domain.Tests/Blogs/SlugExtensions_Tests.cs @@ -129,4 +129,18 @@ public class SlugExtensions_Tests // Assert actual.ShouldBe(expected); } + + [Fact] + public void NormalizeSlug_ShouldWorkProperly_WithMultipleLevel() + { + // Arrange + var name = "path/to/my/page"; + var expected = "path/to/my/page"; + + // Act + var actual = SlugNormalizer.Normalize(name); + + // Assert + actual.ShouldBe(expected); + } }