Fix for issue 13017 - BeginUmbracoForm doesn't work with custom umbraco routes (#13103)

* Fix issue with custom Umbraco routes not working after submitting to a Surface controller

* Added comments

* Fixed breaking changes

* Fixed test by using correct new ctor

* Fixed initializtion of UmbracoRouteValueTransformer due to ambiguous ctor

Co-authored-by: Bjarke Berg <mail@bergmania.dk>
This commit is contained in:
Justin Neville
2022-12-06 11:39:43 +00:00
committed by GitHub
parent 5e03236e70
commit d08f21d638
9 changed files with 432 additions and 50 deletions

View File

@@ -21,6 +21,7 @@ using Umbraco.Cms.Core.Services;
using Umbraco.Cms.Core.Web;
using Umbraco.Cms.Tests.UnitTests.TestHelpers;
using Umbraco.Cms.Web.Common.Controllers;
using Umbraco.Cms.Web.Common.Filters;
using Umbraco.Cms.Web.Common.Routing;
using Umbraco.Cms.Web.Website.Controllers;
using Umbraco.Cms.Web.Website.Routing;
@@ -53,20 +54,21 @@ public class UmbracoRouteValueTransformerTests
x.RewriteForPublishedContentAccessAsync(It.IsAny<HttpContext>(), It.IsAny<UmbracoRouteValues>()))
.Returns((HttpContext ctx, UmbracoRouteValues routeVals) => Task.FromResult(routeVals));
var umbracoVirtualPageRoute = new Mock<IUmbracoVirtualPageRoute>();
umbracoVirtualPageRoute.Setup(x => x.SetupVirtualPageRoute(It.IsAny<HttpContext>()));
var transformer = new UmbracoRouteValueTransformer(
new NullLogger<UmbracoRouteValueTransformer>(),
ctx,
router ?? Mock.Of<IPublishedRouter>(),
GetGlobalSettings(),
TestHelper.GetHostingEnvironment(),
state,
routeValuesFactory ?? Mock.Of<IUmbracoRouteValuesFactory>(),
filter ?? Mock.Of<IRoutableDocumentFilter>(x => x.IsDocumentRequest(It.IsAny<string>()) == true),
Mock.Of<IDataProtectionProvider>(),
Mock.Of<IControllerActionSearcher>(),
Mock.Of<IEventAggregator>(),
publicAccessRequestHandler.Object);
publicAccessRequestHandler.Object,
Mock.Of<IUmbracoVirtualPageRoute>()
);
return transformer;
}