diff --git a/src/Umbraco.Tests/Routing/ContentFinderByNiceUrlWithDomainsTests.cs b/src/Umbraco.Tests/Routing/ContentFinderByNiceUrlWithDomainsTests.cs index ea6e096fbf..0b616af276 100644 --- a/src/Umbraco.Tests/Routing/ContentFinderByNiceUrlWithDomainsTests.cs +++ b/src/Umbraco.Tests/Routing/ContentFinderByNiceUrlWithDomainsTests.cs @@ -13,7 +13,7 @@ namespace Umbraco.Tests.Routing { SetupDomainServiceMock(new[] { - new UmbracoDomain("domain1.com/") {Id = 1, LanguageId = LangDeId, RootContentId = 1001} + new UmbracoDomain("domain1.com/") {Id = 1, LanguageId = LangDeId, RootContentId = 1001, LanguageIsoCode = "de-DE"} }); } @@ -22,12 +22,12 @@ namespace Umbraco.Tests.Routing { SetupDomainServiceMock(new[] { - new UmbracoDomain("domain1.com/") {Id = 1, LanguageId = LangEngId, RootContentId = 1001}, - new UmbracoDomain("domain1.com/en") {Id = 1, LanguageId = LangEngId, RootContentId = 10011}, - new UmbracoDomain("domain1.com/fr") {Id = 1, LanguageId = LangFrId, RootContentId = 10012}, - new UmbracoDomain("http://domain3.com/") {Id = 1, LanguageId = LangEngId, RootContentId = 1003}, - new UmbracoDomain("http://domain3.com/en") {Id = 1, LanguageId = LangEngId, RootContentId = 10031}, - new UmbracoDomain("http://domain3.com/fr") {Id = 1, LanguageId = LangFrId, RootContentId = 10032} + new UmbracoDomain("domain1.com/") {Id = 1, LanguageId = LangEngId, RootContentId = 1001, LanguageIsoCode = "en-US"}, + new UmbracoDomain("domain1.com/en") {Id = 1, LanguageId = LangEngId, RootContentId = 10011, LanguageIsoCode = "en-US"}, + new UmbracoDomain("domain1.com/fr") {Id = 1, LanguageId = LangFrId, RootContentId = 10012, LanguageIsoCode = "fr-FR"}, + new UmbracoDomain("http://domain3.com/") {Id = 1, LanguageId = LangEngId, RootContentId = 1003, LanguageIsoCode = "en-US"}, + new UmbracoDomain("http://domain3.com/en") {Id = 1, LanguageId = LangEngId, RootContentId = 10031, LanguageIsoCode = "en-US"}, + new UmbracoDomain("http://domain3.com/fr") {Id = 1, LanguageId = LangFrId, RootContentId = 10032, LanguageIsoCode = "fr-FR"} }); } diff --git a/src/Umbraco.Tests/Routing/DomainsAndCulturesTests.cs b/src/Umbraco.Tests/Routing/DomainsAndCulturesTests.cs index 6af00d6127..b0f4791c84 100644 --- a/src/Umbraco.Tests/Routing/DomainsAndCulturesTests.cs +++ b/src/Umbraco.Tests/Routing/DomainsAndCulturesTests.cs @@ -30,19 +30,22 @@ namespace Umbraco.Tests.Routing { Id = 1, LanguageId = LangDeId, - RootContentId = 1001 + RootContentId = 1001, + LanguageIsoCode = "de-DE" }, new UmbracoDomain("domain1.com/en") { Id = 1, LanguageId = LangEngId, - RootContentId = 10011 + RootContentId = 10011, + LanguageIsoCode = "en-US" }, new UmbracoDomain("domain1.com/fr") { Id = 1, LanguageId = LangFrId, - RootContentId = 10012 + RootContentId = 10012, + LanguageIsoCode = "fr-FR" } }); } @@ -55,55 +58,64 @@ namespace Umbraco.Tests.Routing { Id = 1, LanguageId = LangDeId, - RootContentId = 1001 + RootContentId = 1001, + LanguageIsoCode = "de-DE" }, new UmbracoDomain("domain1.com/en") { Id = 1, LanguageId = LangEngId, - RootContentId = 10011 + RootContentId = 10011, + LanguageIsoCode = "en-US" }, new UmbracoDomain("domain1.com/fr") { Id = 1, LanguageId = LangFrId, - RootContentId = 10012 + RootContentId = 10012, + LanguageIsoCode = "fr-FR" }, new UmbracoDomain("*1001") { Id = 1, LanguageId = LangDeId, - RootContentId = 1001 + RootContentId = 1001, + LanguageIsoCode = "de-DE" }, new UmbracoDomain("*10011") { Id = 1, LanguageId = LangCzId, - RootContentId = 10011 + RootContentId = 10011, + LanguageIsoCode = "cs-CZ" }, new UmbracoDomain("*100112") { Id = 1, LanguageId = LangNlId, - RootContentId = 100112 + RootContentId = 100112, + LanguageIsoCode = "nl-NL" }, new UmbracoDomain("*1001122") { Id = 1, LanguageId = LangDkId, - RootContentId = 1001122 + RootContentId = 1001122, + LanguageIsoCode = "da-DK" }, new UmbracoDomain("*10012") { Id = 1, LanguageId = LangNlId, - RootContentId = 10012 + RootContentId = 10012, + LanguageIsoCode = "nl-NL" }, new UmbracoDomain("*10031") { Id = 1, LanguageId = LangNlId, - RootContentId =10031 + RootContentId =10031, + LanguageIsoCode = "nl-NL" } }); } @@ -343,19 +355,22 @@ namespace Umbraco.Tests.Routing { Id = 1, LanguageId = LangEngId, - RootContentId = 1001 + RootContentId = 1001, + LanguageIsoCode = "en-US" }, new UmbracoDomain("domain1.fr/") { Id = 1, LanguageId = LangFrId, - RootContentId = 1001 + RootContentId = 1001, + LanguageIsoCode = "fr-FR" }, new UmbracoDomain("*100112") { Id = 1, LanguageId = LangDeId, - RootContentId = 100112 + RootContentId = 100112, + LanguageIsoCode = "de-DE" } }); diff --git a/src/Umbraco.Tests/Routing/NiceUrlsProviderWithDomainsTests.cs b/src/Umbraco.Tests/Routing/NiceUrlsProviderWithDomainsTests.cs index ffbed3e2f4..8cc975954b 100644 --- a/src/Umbraco.Tests/Routing/NiceUrlsProviderWithDomainsTests.cs +++ b/src/Umbraco.Tests/Routing/NiceUrlsProviderWithDomainsTests.cs @@ -28,7 +28,7 @@ namespace Umbraco.Tests.Routing SetupDomainServiceMock(new[] { - new UmbracoDomain("domain1.com") {Id = 1, LanguageId = LangFrId, RootContentId = 1001} + new UmbracoDomain("domain1.com") {Id = 1, LanguageId = LangFrId, RootContentId = 1001, LanguageIsoCode = "fr-FR"} }); } @@ -36,7 +36,7 @@ namespace Umbraco.Tests.Routing { SetupDomainServiceMock(new[] { - new UmbracoDomain("http://domain1.com/foo") {Id = 1, LanguageId = LangFrId, RootContentId = 1001} + new UmbracoDomain("http://domain1.com/foo") {Id = 1, LanguageId = LangFrId, RootContentId = 1001, LanguageIsoCode = "fr-FR"} }); } @@ -44,7 +44,7 @@ namespace Umbraco.Tests.Routing { SetupDomainServiceMock(new[] { - new UmbracoDomain("http://domain1.com/") {Id = 1, LanguageId = LangFrId, RootContentId = 10011} + new UmbracoDomain("http://domain1.com/") {Id = 1, LanguageId = LangFrId, RootContentId = 10011, LanguageIsoCode = "fr-FR"} }); } @@ -52,12 +52,12 @@ namespace Umbraco.Tests.Routing { SetupDomainServiceMock(new[] { - new UmbracoDomain("http://domain1.com/") {Id = 1, LanguageId = LangEngId, RootContentId = 1001}, - new UmbracoDomain("http://domain1.com/en") {Id = 1, LanguageId = LangEngId, RootContentId = 10011}, - new UmbracoDomain("http://domain1.com/fr") {Id = 1, LanguageId = LangFrId, RootContentId = 10012}, - new UmbracoDomain("http://domain3.com/") {Id = 1, LanguageId = LangEngId, RootContentId = 1003}, - new UmbracoDomain("http://domain3.com/en") {Id = 1, LanguageId = LangEngId, RootContentId = 10031}, - new UmbracoDomain("http://domain3.com/fr") {Id = 1, LanguageId = LangFrId, RootContentId = 10032} + new UmbracoDomain("http://domain1.com/") {Id = 1, LanguageId = LangEngId, RootContentId = 1001, LanguageIsoCode = "en-US"}, + new UmbracoDomain("http://domain1.com/en") {Id = 1, LanguageId = LangEngId, RootContentId = 10011, LanguageIsoCode = "en-US"}, + new UmbracoDomain("http://domain1.com/fr") {Id = 1, LanguageId = LangFrId, RootContentId = 10012, LanguageIsoCode = "fr-FR"}, + new UmbracoDomain("http://domain3.com/") {Id = 1, LanguageId = LangEngId, RootContentId = 1003, LanguageIsoCode = "en-US"}, + new UmbracoDomain("http://domain3.com/en") {Id = 1, LanguageId = LangEngId, RootContentId = 10031, LanguageIsoCode = "en-US"}, + new UmbracoDomain("http://domain3.com/fr") {Id = 1, LanguageId = LangFrId, RootContentId = 10032, LanguageIsoCode = "fr-FR"} }); } @@ -65,14 +65,14 @@ namespace Umbraco.Tests.Routing { SetupDomainServiceMock(new[] { - new UmbracoDomain("http://domain1.com/en") {Id = 1, LanguageId = LangEngId, RootContentId = 10011}, - new UmbracoDomain("http://domain1a.com/en") {Id = 1, LanguageId = LangEngId, RootContentId = 10011}, - new UmbracoDomain("http://domain1b.com/en") {Id = 1, LanguageId = LangEngId, RootContentId = 10011}, - new UmbracoDomain("http://domain1.com/fr") {Id = 1, LanguageId = LangFrId, RootContentId = 10012}, - new UmbracoDomain("http://domain1a.com/fr") {Id = 1, LanguageId = LangFrId, RootContentId = 10012}, - new UmbracoDomain("http://domain1b.com/fr") {Id = 1, LanguageId = LangFrId, RootContentId = 10012}, - new UmbracoDomain("http://domain3.com/en") {Id = 1, LanguageId = LangEngId, RootContentId = 10031}, - new UmbracoDomain("http://domain3.com/fr") {Id = 1, LanguageId = LangFrId, RootContentId = 10032} + new UmbracoDomain("http://domain1.com/en") {Id = 1, LanguageId = LangEngId, RootContentId = 10011, LanguageIsoCode = "en-US"}, + new UmbracoDomain("http://domain1a.com/en") {Id = 1, LanguageId = LangEngId, RootContentId = 10011, LanguageIsoCode = "en-US"}, + new UmbracoDomain("http://domain1b.com/en") {Id = 1, LanguageId = LangEngId, RootContentId = 10011, LanguageIsoCode = "en-US"}, + new UmbracoDomain("http://domain1.com/fr") {Id = 1, LanguageId = LangFrId, RootContentId = 10012, LanguageIsoCode = "fr-FR"}, + new UmbracoDomain("http://domain1a.com/fr") {Id = 1, LanguageId = LangFrId, RootContentId = 10012, LanguageIsoCode = "fr-FR"}, + new UmbracoDomain("http://domain1b.com/fr") {Id = 1, LanguageId = LangFrId, RootContentId = 10012, LanguageIsoCode = "fr-FR"}, + new UmbracoDomain("http://domain3.com/en") {Id = 1, LanguageId = LangEngId, RootContentId = 10031, LanguageIsoCode = "en-US"}, + new UmbracoDomain("http://domain3.com/fr") {Id = 1, LanguageId = LangFrId, RootContentId = 10032, LanguageIsoCode = "fr-FR"} }); } diff --git a/src/Umbraco.Tests/Routing/UrlRoutingTestBase.cs b/src/Umbraco.Tests/Routing/UrlRoutingTestBase.cs index 643d007889..475909318a 100644 --- a/src/Umbraco.Tests/Routing/UrlRoutingTestBase.cs +++ b/src/Umbraco.Tests/Routing/UrlRoutingTestBase.cs @@ -42,19 +42,10 @@ namespace Umbraco.Tests.Routing domainService.Setup(service => service.GetAll(It.IsAny())) .Returns((bool incWildcards) => new[] { - new UmbracoDomain("domain1.com/"){Id = 1, LanguageId = 333, RootContentId = 1001}, - new UmbracoDomain("domain1.com/en"){Id = 1, LanguageId = 334, RootContentId = 10011}, - new UmbracoDomain("domain1.com/fr"){Id = 1, LanguageId = 335, RootContentId = 10012} - }); - - var langService = Mock.Get(svcCtx.LocalizationService); - //setup mock domain service - langService.Setup(service => service.GetLanguageById(LangDeId)).Returns(new Language("de-DE") {Id = LangDeId }); - langService.Setup(service => service.GetLanguageById(LangEngId)).Returns(new Language("en-US") { Id = LangEngId }); - langService.Setup(service => service.GetLanguageById(LangFrId)).Returns(new Language("fr-FR") { Id = LangFrId }); - langService.Setup(service => service.GetLanguageById(LangCzId)).Returns(new Language("cs-CZ") { Id = LangCzId }); - langService.Setup(service => service.GetLanguageById(LangNlId)).Returns(new Language("nl-NL") { Id = LangNlId }); - langService.Setup(service => service.GetLanguageById(LangDkId)).Returns(new Language("da-DK") { Id = LangDkId }); + new UmbracoDomain("domain1.com/"){Id = 1, LanguageId = LangDeId, RootContentId = 1001, LanguageIsoCode = "de-DE"}, + new UmbracoDomain("domain1.com/en"){Id = 1, LanguageId = LangEngId, RootContentId = 10011, LanguageIsoCode = "en-US"}, + new UmbracoDomain("domain1.com/fr"){Id = 1, LanguageId = LangFrId, RootContentId = 10012, LanguageIsoCode = "fr-FR"} + }); return svcCtx; } diff --git a/src/Umbraco.Tests/Routing/UrlsWithNestedDomains.cs b/src/Umbraco.Tests/Routing/UrlsWithNestedDomains.cs index 79feac0b28..2e868f9f44 100644 --- a/src/Umbraco.Tests/Routing/UrlsWithNestedDomains.cs +++ b/src/Umbraco.Tests/Routing/UrlsWithNestedDomains.cs @@ -80,8 +80,8 @@ namespace Umbraco.Tests.Routing { SetupDomainServiceMock(new[] { - new UmbracoDomain("http://domain1.com/") {Id = 1, LanguageId = LangEngId, RootContentId = 1001}, - new UmbracoDomain("http://domain2.com/") {Id = 1, LanguageId = LangEngId, RootContentId = 10011} + new UmbracoDomain("http://domain1.com/") {Id = 1, LanguageId = LangEngId, RootContentId = 1001, LanguageIsoCode = "en-US"}, + new UmbracoDomain("http://domain2.com/") {Id = 1, LanguageId = LangEngId, RootContentId = 10011, LanguageIsoCode = "en-US"} }); } diff --git a/src/Umbraco.Web/Models/ContentExtensions.cs b/src/Umbraco.Web/Models/ContentExtensions.cs index ef5161ec9d..37fe9151b0 100644 --- a/src/Umbraco.Web/Models/ContentExtensions.cs +++ b/src/Umbraco.Web/Models/ContentExtensions.cs @@ -80,25 +80,14 @@ namespace Umbraco.Web.Models : domainHelper.DomainForNode(int.Parse(route.Substring(0, pos)), current).UmbracoDomain; } - if (domain == null) + if (domain == null || domain.LanguageIsoCode.IsNullOrWhiteSpace()) return GetDefaultCulture(localizationService); - //NOTE: The domain service IDomain model has changed and no longer holds a reference to IContent or ILanguage to - // improve performance, this means that we need to lookup the language below, but this was already the case previously - // in the repository and since the language lookup is cached it should be ok. If we want however we could create - // another method on the DomainService to return domains with their culture info on them var wcDomain = DomainHelper.FindWildcardDomainInPath(domainService.GetAll(true), contentPath, domain.RootContentId); - if (wcDomain != null && wcDomain.LanguageIsoCode.IsNullOrWhiteSpace() == false) - { - return new CultureInfo(wcDomain.LanguageIsoCode); - } - if (domain.LanguageIsoCode.IsNullOrWhiteSpace() == false) - { - return new CultureInfo(domain.LanguageIsoCode); - } - - return GetDefaultCulture(localizationService); + return wcDomain == null + ? new CultureInfo(domain.LanguageIsoCode) + : new CultureInfo(wcDomain.LanguageIsoCode); } private static CultureInfo GetDefaultCulture(ILocalizationService localizationService) diff --git a/src/Umbraco.Web/Routing/ContentFinderByLegacy404.cs b/src/Umbraco.Web/Routing/ContentFinderByLegacy404.cs index aae16b5fa9..22c4364891 100644 --- a/src/Umbraco.Web/Routing/ContentFinderByLegacy404.cs +++ b/src/Umbraco.Web/Routing/ContentFinderByLegacy404.cs @@ -28,8 +28,7 @@ namespace Umbraco.Web.Routing pcr.RoutingContext.UmbracoContext.HttpContext.Request.ServerVariables["SERVER_NAME"], pcr.RoutingContext.UmbracoContext.Application.Services.EntityService, new PublishedContentQuery(pcr.RoutingContext.UmbracoContext.ContentCache, pcr.RoutingContext.UmbracoContext.MediaCache), - pcr.RoutingContext.UmbracoContext.Application.Services.DomainService, - pcr.RoutingContext.UmbracoContext.Application.Services.LocalizationService); + pcr.RoutingContext.UmbracoContext.Application.Services.DomainService); IPublishedContent content = null; diff --git a/src/Umbraco.Web/Routing/NotFoundHandlerHelper.cs b/src/Umbraco.Web/Routing/NotFoundHandlerHelper.cs index 798efc674d..50497ba032 100644 --- a/src/Umbraco.Web/Routing/NotFoundHandlerHelper.cs +++ b/src/Umbraco.Web/Routing/NotFoundHandlerHelper.cs @@ -230,15 +230,13 @@ namespace Umbraco.Web.Routing /// /// /// - /// /// internal static int? GetCurrentNotFoundPageId( IContentErrorPage[] error404Collection, string requestServerName, IEntityService entityService, ITypedPublishedContentQuery publishedContentQuery, - IDomainService domainService, - ILocalizationService localizationService) + IDomainService domainService) { if (error404Collection.Count() > 1) { diff --git a/src/Umbraco.Web/umbraco.presentation/NotFoundHandlers.cs b/src/Umbraco.Web/umbraco.presentation/NotFoundHandlers.cs index 6854bb9a4d..27e62888d4 100644 --- a/src/Umbraco.Web/umbraco.presentation/NotFoundHandlers.cs +++ b/src/Umbraco.Web/umbraco.presentation/NotFoundHandlers.cs @@ -326,8 +326,7 @@ namespace umbraco { HttpContext.Current.Request.ServerVariables["SERVER_NAME"], ApplicationContext.Current.Services.EntityService, new PublishedContentQuery(UmbracoContext.Current.ContentCache, UmbracoContext.Current.MediaCache), - ApplicationContext.Current.Services.DomainService, - ApplicationContext.Current.Services.LocalizationService); + ApplicationContext.Current.Services.DomainService); if (error404.HasValue) {