Fixes up remaining routing tests, all tests passing (apart from arbitrary plugin mgr ones)
This commit is contained in:
@@ -11,6 +11,11 @@ namespace Umbraco.Core.Models
|
||||
[DataContract(IsReference = true)]
|
||||
public class UmbracoDomain : Entity, IDomain
|
||||
{
|
||||
public UmbracoDomain(string domainName)
|
||||
{
|
||||
_domainName = domainName;
|
||||
}
|
||||
|
||||
private IContent _content;
|
||||
private ILanguage _language;
|
||||
private string _domainName;
|
||||
|
||||
@@ -290,12 +290,11 @@ namespace Umbraco.Core.Persistence.Repositories
|
||||
|
||||
return cacheableDomains
|
||||
.WhereNotNull()
|
||||
.Select(cacheableDomain => new UmbracoDomain
|
||||
.Select(cacheableDomain => new UmbracoDomain(cacheableDomain.DomainName)
|
||||
{
|
||||
Id = cacheableDomain.Id,
|
||||
//lookup from repo - this will be cached
|
||||
Language = cacheableDomain.DefaultLanguageId.HasValue ? langItems.FirstOrDefault(l => l.Id == cacheableDomain.DefaultLanguageId.Value) : null,
|
||||
DomainName = cacheableDomain.DomainName,
|
||||
//lookup from repo - this will be cached
|
||||
RootContent = cacheableDomain.RootContentId.HasValue ? contentItems.FirstOrDefault(l => l.Id == cacheableDomain.RootContentId.Value) : null,
|
||||
});
|
||||
@@ -305,12 +304,11 @@ namespace Umbraco.Core.Persistence.Repositories
|
||||
{
|
||||
if (cacheableDomain == null) return null;
|
||||
|
||||
return new UmbracoDomain
|
||||
return new UmbracoDomain(cacheableDomain.DomainName)
|
||||
{
|
||||
Id = cacheableDomain.Id,
|
||||
//lookup from repo - this will be cached
|
||||
Language = cacheableDomain.DefaultLanguageId.HasValue ? languageRepository.Get(cacheableDomain.DefaultLanguageId.Value) : null,
|
||||
DomainName = cacheableDomain.DomainName,
|
||||
//lookup from repo - this will be cached
|
||||
RootContent = cacheableDomain.RootContentId.HasValue ? contentRepository.Get(cacheableDomain.RootContentId.Value) : null
|
||||
};
|
||||
|
||||
@@ -46,10 +46,13 @@ namespace Umbraco.Core.Services
|
||||
/// Initializes with a source of a dictionary of culture -> areas -> sub dictionary of keys/values
|
||||
/// </summary>
|
||||
/// <param name="source"></param>
|
||||
public LocalizedTextService(IDictionary<CultureInfo, IDictionary<string, IDictionary<string, string>>> source)
|
||||
/// <param name="logger"></param>
|
||||
public LocalizedTextService(IDictionary<CultureInfo, IDictionary<string, IDictionary<string, string>>> source, ILogger logger)
|
||||
{
|
||||
if (source == null) throw new ArgumentNullException("source");
|
||||
if (logger == null) throw new ArgumentNullException("logger");
|
||||
_dictionarySource = source;
|
||||
_logger = logger;
|
||||
}
|
||||
|
||||
public string Localize(string key, CultureInfo culture, IDictionary<string, string> tokens = null)
|
||||
|
||||
@@ -71,7 +71,7 @@ namespace Umbraco.Tests.Persistence.Repositories
|
||||
var lang = langRepo.GetByIsoCode("en-AU");
|
||||
var content = contentRepo.Get(contentId);
|
||||
|
||||
var domain = (IDomain)new UmbracoDomain { RootContent = content, Language = lang, DomainName = "test.com" };
|
||||
var domain = (IDomain)new UmbracoDomain("test.com") { RootContent = content, Language = lang };
|
||||
repo.AddOrUpdate(domain);
|
||||
unitOfWork.Commit();
|
||||
|
||||
@@ -107,11 +107,11 @@ namespace Umbraco.Tests.Persistence.Repositories
|
||||
var lang = langRepo.GetByIsoCode("en-AU");
|
||||
var content = contentRepo.Get(contentId);
|
||||
|
||||
var domain1 = (IDomain)new UmbracoDomain { RootContent = content, Language = lang, DomainName = "test.com" };
|
||||
var domain1 = (IDomain)new UmbracoDomain("test.com") { RootContent = content, Language = lang };
|
||||
repo.AddOrUpdate(domain1);
|
||||
unitOfWork.Commit();
|
||||
|
||||
var domain2 = (IDomain)new UmbracoDomain { RootContent = content, Language = lang, DomainName = "test.com" };
|
||||
var domain2 = (IDomain)new UmbracoDomain("test.com") { RootContent = content, Language = lang };
|
||||
repo.AddOrUpdate(domain2);
|
||||
|
||||
Assert.Throws<DuplicateNameException>(unitOfWork.Commit);
|
||||
@@ -140,7 +140,7 @@ namespace Umbraco.Tests.Persistence.Repositories
|
||||
var lang = langRepo.GetByIsoCode("en-AU");
|
||||
var content = contentRepo.Get(contentId);
|
||||
|
||||
var domain = (IDomain)new UmbracoDomain { RootContent = content, Language = lang, DomainName = "test.com" };
|
||||
var domain = (IDomain)new UmbracoDomain("test.com") { RootContent = content, Language = lang };
|
||||
repo.AddOrUpdate(domain);
|
||||
unitOfWork.Commit();
|
||||
|
||||
@@ -183,7 +183,7 @@ namespace Umbraco.Tests.Persistence.Repositories
|
||||
unitOfWork.Commit();
|
||||
|
||||
|
||||
var domain = (IDomain)new UmbracoDomain { RootContent = content1, Language = lang1, DomainName = "test.com" };
|
||||
var domain = (IDomain)new UmbracoDomain("test.com") { RootContent = content1, Language = lang1 };
|
||||
repo.AddOrUpdate(domain);
|
||||
unitOfWork.Commit();
|
||||
|
||||
@@ -227,7 +227,7 @@ namespace Umbraco.Tests.Persistence.Repositories
|
||||
|
||||
for (int i = 0; i < 10; i++)
|
||||
{
|
||||
var domain = (IDomain)new UmbracoDomain { RootContent = content, Language = lang, DomainName = "test " + i + ".com" };
|
||||
var domain = (IDomain)new UmbracoDomain("test " + i + ".com") { RootContent = content, Language = lang };
|
||||
repo.AddOrUpdate(domain);
|
||||
unitOfWork.Commit();
|
||||
}
|
||||
@@ -259,7 +259,7 @@ namespace Umbraco.Tests.Persistence.Repositories
|
||||
var ids = new List<int>();
|
||||
for (int i = 0; i < 10; i++)
|
||||
{
|
||||
var domain = (IDomain)new UmbracoDomain { RootContent = content, Language = lang, DomainName = "test " + i + ".com" };
|
||||
var domain = (IDomain)new UmbracoDomain("test " + i + ".com") { RootContent = content, Language = lang };
|
||||
repo.AddOrUpdate(domain);
|
||||
unitOfWork.Commit();
|
||||
ids.Add(domain.Id);
|
||||
@@ -291,11 +291,10 @@ namespace Umbraco.Tests.Persistence.Repositories
|
||||
|
||||
for (int i = 0; i < 10; i++)
|
||||
{
|
||||
var domain = (IDomain)new UmbracoDomain
|
||||
var domain = (IDomain)new UmbracoDomain((i % 2 == 0) ? "test " + i + ".com" : ("*" + i))
|
||||
{
|
||||
RootContent = content,
|
||||
Language = lang,
|
||||
DomainName = (i%2==0) ? "test " + i + ".com" : ("*" + i)
|
||||
Language = lang
|
||||
};
|
||||
repo.AddOrUpdate(domain);
|
||||
unitOfWork.Commit();
|
||||
@@ -338,11 +337,10 @@ namespace Umbraco.Tests.Persistence.Repositories
|
||||
|
||||
for (int i = 0; i < 10; i++)
|
||||
{
|
||||
var domain = (IDomain)new UmbracoDomain
|
||||
var domain = (IDomain)new UmbracoDomain((i % 2 == 0) ? "test " + i + ".com" : ("*" + i))
|
||||
{
|
||||
RootContent = (i % 2 == 0) ? contentItems[0] : contentItems[1],
|
||||
Language = lang,
|
||||
DomainName = (i % 2 == 0) ? "test " + i + ".com" : ("*" + i)
|
||||
Language = lang
|
||||
};
|
||||
repo.AddOrUpdate(domain);
|
||||
unitOfWork.Commit();
|
||||
@@ -390,11 +388,10 @@ namespace Umbraco.Tests.Persistence.Repositories
|
||||
|
||||
for (int i = 0; i < 10; i++)
|
||||
{
|
||||
var domain = (IDomain)new UmbracoDomain
|
||||
var domain = (IDomain)new UmbracoDomain((i % 2 == 0) ? "test " + i + ".com" : ("*" + i))
|
||||
{
|
||||
RootContent = (i % 2 == 0) ? contentItems[0] : contentItems[1],
|
||||
Language = lang,
|
||||
DomainName = (i % 2 == 0) ? "test " + i + ".com" : ("*" + i)
|
||||
Language = lang
|
||||
};
|
||||
repo.AddOrUpdate(domain);
|
||||
unitOfWork.Commit();
|
||||
|
||||
@@ -43,7 +43,7 @@ namespace Umbraco.Tests.Routing
|
||||
{
|
||||
SetupDomainServiceMock(new[]
|
||||
{
|
||||
new UmbracoDomain {Id = 1, DomainName = "domain1.com/", Language = new Language("de-DE"), RootContent = new Content("test1", -1, new ContentType(-1)) {Id = 1001}}
|
||||
new UmbracoDomain("domain1.com/") {Id = 1, Language = new Language("de-DE"), RootContent = new Content("test1", -1, new ContentType(-1)) {Id = 1001}}
|
||||
});
|
||||
|
||||
//var langEn = Language.GetByCultureCode("en-US");
|
||||
@@ -56,12 +56,12 @@ namespace Umbraco.Tests.Routing
|
||||
{
|
||||
SetupDomainServiceMock(new[]
|
||||
{
|
||||
new UmbracoDomain {Id = 1, DomainName = "domain1.com/", Language = new Language("en-US"), RootContent = new Content("test1", -1, new ContentType(-1)) {Id = 1001}},
|
||||
new UmbracoDomain {Id = 1, DomainName = "domain1.com/en", Language = new Language("en-US"), RootContent = new Content("test2", -1, new ContentType(-1)) {Id = 10011}},
|
||||
new UmbracoDomain {Id = 1, DomainName = "domain1.com/fr", Language = new Language("fr-FR"), RootContent = new Content("test3", -1, new ContentType(-1)) {Id = 10012}},
|
||||
new UmbracoDomain {Id = 1, DomainName = "domain3.com/", Language = new Language("en-US"), RootContent = new Content("test1", -1, new ContentType(-1)) {Id = 1003}},
|
||||
new UmbracoDomain {Id = 1, DomainName = "domain3.com/en", Language = new Language("en-US"), RootContent = new Content("test2", -1, new ContentType(-1)) {Id = 10031}},
|
||||
new UmbracoDomain {Id = 1, DomainName = "domain3.com/fr", Language = new Language("fr-FR"), RootContent = new Content("test3", -1, new ContentType(-1)) {Id = 10032}}
|
||||
new UmbracoDomain("domain1.com/") {Id = 1, Language = new Language("en-US"), RootContent = new Content("test1", -1, new ContentType(-1)) {Id = 1001}},
|
||||
new UmbracoDomain("domain1.com/en") {Id = 1, Language = new Language("en-US"), RootContent = new Content("test2", -1, new ContentType(-1)) {Id = 10011}},
|
||||
new UmbracoDomain("domain1.com/fr") {Id = 1, Language = new Language("fr-FR"), RootContent = new Content("test3", -1, new ContentType(-1)) {Id = 10012}},
|
||||
new UmbracoDomain("http://domain3.com/") {Id = 1, Language = new Language("en-US"), RootContent = new Content("test1", -1, new ContentType(-1)) {Id = 1003}},
|
||||
new UmbracoDomain("http://domain3.com/en") {Id = 1, Language = new Language("en-US"), RootContent = new Content("test2", -1, new ContentType(-1)) {Id = 10031}},
|
||||
new UmbracoDomain("http://domain3.com/fr") {Id = 1, Language = new Language("fr-FR"), RootContent = new Content("test3", -1, new ContentType(-1)) {Id = 10032}}
|
||||
});
|
||||
|
||||
//var langEn = Language.GetByCultureCode("en-US");
|
||||
|
||||
@@ -19,9 +19,9 @@ namespace Umbraco.Tests.Routing
|
||||
{
|
||||
SetupDomainServiceMock(new[]
|
||||
{
|
||||
new UmbracoDomain {Id = 1, DomainName = "domain1.com/", Language = new Language("de-DE"), RootContent = new Content("test1", -1, new ContentType(-1)) {Id = 1001}},
|
||||
new UmbracoDomain {Id = 1, DomainName = "domain1.com/en", Language = new Language("en-US"), RootContent = new Content("test1", -1, new ContentType(-1)) {Id = 10011}},
|
||||
new UmbracoDomain {Id = 1, DomainName = "domain1.com/fr", Language = new Language("fr-FR"), RootContent = new Content("test1", -1, new ContentType(-1)) {Id = 10012}}
|
||||
new UmbracoDomain("domain1.com/") {Id = 1, Language = new Language("de-DE"), RootContent = new Content("test1", -1, new ContentType(-1)) {Id = 1001}},
|
||||
new UmbracoDomain("domain1.com/en") {Id = 1, Language = new Language("en-US"), RootContent = new Content("test1", -1, new ContentType(-1)) {Id = 10011}},
|
||||
new UmbracoDomain("domain1.com/fr") {Id = 1, Language = new Language("fr-FR"), RootContent = new Content("test1", -1, new ContentType(-1)) {Id = 10012}}
|
||||
});
|
||||
}
|
||||
|
||||
@@ -29,15 +29,15 @@ namespace Umbraco.Tests.Routing
|
||||
{
|
||||
SetupDomainServiceMock(new[]
|
||||
{
|
||||
new UmbracoDomain {Id = 1, DomainName = "domain1.com/", Language = new Language("de-DE"), RootContent = new Content("test1", -1, new ContentType(-1)) {Id = 1001}},
|
||||
new UmbracoDomain {Id = 1, DomainName = "domain1.com/en", Language = new Language("en-US"), RootContent = new Content("test1", -1, new ContentType(-1)) {Id = 10011}},
|
||||
new UmbracoDomain {Id = 1, DomainName = "domain1.com/fr", Language = new Language("fr-FR"), RootContent = new Content("test1", -1, new ContentType(-1)) {Id = 10012}},
|
||||
new UmbracoDomain {Id = 1, DomainName = "*1001", Language = new Language("de-DE"), RootContent = new Content("test1", -1, new ContentType(-1)) {Id = 1001}},
|
||||
new UmbracoDomain {Id = 1, DomainName = "*10011", Language = new Language("cs-CZ"), RootContent = new Content("test1", -1, new ContentType(-1)) {Id = 10011}},
|
||||
new UmbracoDomain {Id = 1, DomainName = "*100112", Language = new Language("nl-NL"), RootContent = new Content("test1", -1, new ContentType(-1)) {Id = 100112}},
|
||||
new UmbracoDomain {Id = 1, DomainName = "*1001122", Language = new Language("da-DK"), RootContent = new Content("test1", -1, new ContentType(-1)) {Id = 1001122}},
|
||||
new UmbracoDomain {Id = 1, DomainName = "*10012", Language = new Language("nl-NL"), RootContent = new Content("test1", -1, new ContentType(-1)) {Id = 10012}},
|
||||
new UmbracoDomain {Id = 1, DomainName = "*10031", Language = new Language("nl-NL"), RootContent = new Content("test1", -1, new ContentType(-1)) {Id = 10031}}
|
||||
new UmbracoDomain("domain1.com/") {Id = 1, Language = new Language("de-DE"), RootContent = new Content("test1", -1, new ContentType(-1)) {Id = 1001}},
|
||||
new UmbracoDomain("domain1.com/en") {Id = 1, Language = new Language("en-US"), RootContent = new Content("test1", -1, new ContentType(-1)) {Id = 10011}},
|
||||
new UmbracoDomain("domain1.com/fr") {Id = 1, Language = new Language("fr-FR"), RootContent = new Content("test1", -1, new ContentType(-1)) {Id = 10012}},
|
||||
new UmbracoDomain("*1001") {Id = 1, Language = new Language("de-DE"), RootContent = new Content("test1", -1, new ContentType(-1)) {Id = 1001}},
|
||||
new UmbracoDomain("*10011") {Id = 1, Language = new Language("cs-CZ"), RootContent = new Content("test1", -1, new ContentType(-1)) {Id = 10011}},
|
||||
new UmbracoDomain("*100112") {Id = 1, Language = new Language("nl-NL"), RootContent = new Content("test1", -1, new ContentType(-1)) {Id = 100112}},
|
||||
new UmbracoDomain("*1001122") {Id = 1, Language = new Language("da-DK"), RootContent = new Content("test1", -1, new ContentType(-1)) {Id = 1001122}},
|
||||
new UmbracoDomain("*10012") {Id = 1, Language = new Language("nl-NL"), RootContent = new Content("test1", -1, new ContentType(-1)) {Id = 10012}},
|
||||
new UmbracoDomain("*10031") {Id = 1, Language = new Language("nl-NL"), RootContent = new Content("test1", -1, new ContentType(-1)) {Id = 10031}}
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
@@ -13,9 +13,9 @@ using umbraco.cms.businesslogic.web;
|
||||
using System.Configuration;
|
||||
namespace Umbraco.Tests.Routing
|
||||
{
|
||||
[TestFixture]
|
||||
[TestFixture]
|
||||
public class NiceUrlsProviderWithDomainsTests : UrlRoutingTestBase
|
||||
{
|
||||
{
|
||||
protected override void FreezeResolution()
|
||||
{
|
||||
SiteDomainHelperResolver.Current = new SiteDomainHelperResolver(new SiteDomainHelper());
|
||||
@@ -23,20 +23,20 @@ namespace Umbraco.Tests.Routing
|
||||
}
|
||||
|
||||
|
||||
void SetDomains1()
|
||||
{
|
||||
void SetDomains1()
|
||||
{
|
||||
|
||||
SetupDomainServiceMock(new[]
|
||||
{
|
||||
new UmbracoDomain {Id = 1, DomainName = "domain1.com", Language = new Language("fr-FR"), RootContent = new Content("test1", -1, new ContentType(-1)) {Id = 1001}}
|
||||
new UmbracoDomain("domain1.com") {Id = 1, Language = new Language("fr-FR"), RootContent = new Content("test1", -1, new ContentType(-1)) {Id = 1001}}
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
void SetDomains2()
|
||||
{
|
||||
SetupDomainServiceMock(new[]
|
||||
{
|
||||
new UmbracoDomain {Id = 1, DomainName = "http://domain1.com/foo", Language = new Language("fr-FR"), RootContent = new Content("test1", -1, new ContentType(-1)) {Id = 1001}}
|
||||
new UmbracoDomain("http://domain1.com/foo") {Id = 1, Language = new Language("fr-FR"), RootContent = new Content("test1", -1, new ContentType(-1)) {Id = 1001}}
|
||||
});
|
||||
}
|
||||
|
||||
@@ -44,7 +44,7 @@ namespace Umbraco.Tests.Routing
|
||||
{
|
||||
SetupDomainServiceMock(new[]
|
||||
{
|
||||
new UmbracoDomain {Id = 1, DomainName = "http://domain1.com/", Language = new Language("fr-FR"), RootContent = new Content("test1", -1, new ContentType(-1)) {Id = 10011}}
|
||||
new UmbracoDomain("http://domain1.com/") {Id = 1, Language = new Language("fr-FR"), RootContent = new Content("test1", -1, new ContentType(-1)) {Id = 10011}}
|
||||
});
|
||||
}
|
||||
|
||||
@@ -52,12 +52,12 @@ namespace Umbraco.Tests.Routing
|
||||
{
|
||||
SetupDomainServiceMock(new[]
|
||||
{
|
||||
new UmbracoDomain {Id = 1, DomainName = "http://domain1.com/", Language = new Language("en-US"), RootContent = new Content("test1", -1, new ContentType(-1)) {Id = 1001}},
|
||||
new UmbracoDomain {Id = 1, DomainName = "http://domain1.com/en", Language = new Language("en-US"), RootContent = new Content("test1", -1, new ContentType(-1)) {Id = 10011}},
|
||||
new UmbracoDomain {Id = 1, DomainName = "http://domain1.com/fr", Language = new Language("fr-FR"), RootContent = new Content("test1", -1, new ContentType(-1)) {Id = 10012}},
|
||||
new UmbracoDomain {Id = 1, DomainName = "http://domain3.com/", Language = new Language("en-US"), RootContent = new Content("test1", -1, new ContentType(-1)) {Id = 1003}},
|
||||
new UmbracoDomain {Id = 1, DomainName = "http://domain3.com/en", Language = new Language("en-US"), RootContent = new Content("test1", -1, new ContentType(-1)) {Id = 10031}},
|
||||
new UmbracoDomain {Id = 1, DomainName = "http://domain3.com/fr", Language = new Language("fr-FR"), RootContent = new Content("test1", -1, new ContentType(-1)) {Id = 10032}}
|
||||
new UmbracoDomain("http://domain1.com/") {Id = 1, Language = new Language("en-US"), RootContent = new Content("test1", -1, new ContentType(-1)) {Id = 1001}},
|
||||
new UmbracoDomain("http://domain1.com/en") {Id = 1, Language = new Language("en-US"), RootContent = new Content("test1", -1, new ContentType(-1)) {Id = 10011}},
|
||||
new UmbracoDomain("http://domain1.com/fr") {Id = 1, Language = new Language("fr-FR"), RootContent = new Content("test1", -1, new ContentType(-1)) {Id = 10012}},
|
||||
new UmbracoDomain("http://domain3.com/") {Id = 1, Language = new Language("en-US"), RootContent = new Content("test1", -1, new ContentType(-1)) {Id = 1003}},
|
||||
new UmbracoDomain("http://domain3.com/en") {Id = 1, Language = new Language("en-US"), RootContent = new Content("test1", -1, new ContentType(-1)) {Id = 10031}},
|
||||
new UmbracoDomain("http://domain3.com/fr") {Id = 1, Language = new Language("fr-FR"), RootContent = new Content("test1", -1, new ContentType(-1)) {Id = 10032}}
|
||||
});
|
||||
}
|
||||
|
||||
@@ -65,20 +65,20 @@ namespace Umbraco.Tests.Routing
|
||||
{
|
||||
SetupDomainServiceMock(new[]
|
||||
{
|
||||
new UmbracoDomain {Id = 1, DomainName = "http://domain1.com/en", Language = new Language("en-US"), RootContent = new Content("test1", -1, new ContentType(-1)) {Id = 10011}},
|
||||
new UmbracoDomain {Id = 1, DomainName = "http://domain1a.com/en", Language = new Language("en-US"), RootContent = new Content("test1", -1, new ContentType(-1)) {Id = 10011}},
|
||||
new UmbracoDomain {Id = 1, DomainName = "http://domain1b.com/en", Language = new Language("en-US"), RootContent = new Content("test1", -1, new ContentType(-1)) {Id = 10011}},
|
||||
new UmbracoDomain {Id = 1, DomainName = "http://domain1.com/fr", Language = new Language("fr-FR"), RootContent = new Content("test1", -1, new ContentType(-1)) {Id = 10012}},
|
||||
new UmbracoDomain {Id = 1, DomainName = "http://domain1a.com/fr", Language = new Language("fr-FR"), RootContent = new Content("test1", -1, new ContentType(-1)) {Id = 10012}},
|
||||
new UmbracoDomain {Id = 1, DomainName = "http://domain1b.com/fr", Language = new Language("fr-FR"), RootContent = new Content("test1", -1, new ContentType(-1)) {Id = 10012}},
|
||||
new UmbracoDomain {Id = 1, DomainName = "http://domain3.com/en", Language = new Language("en-US"), RootContent = new Content("test1", -1, new ContentType(-1)) {Id = 10031}},
|
||||
new UmbracoDomain {Id = 1, DomainName = "http://domain3.com/fr", Language = new Language("fr-FR"), RootContent = new Content("test1", -1, new ContentType(-1)) {Id = 10032}}
|
||||
new UmbracoDomain("http://domain1.com/en") {Id = 1, Language = new Language("en-US"), RootContent = new Content("test1", -1, new ContentType(-1)) {Id = 10011}},
|
||||
new UmbracoDomain("http://domain1a.com/en") {Id = 1, Language = new Language("en-US"), RootContent = new Content("test1", -1, new ContentType(-1)) {Id = 10011}},
|
||||
new UmbracoDomain("http://domain1b.com/en") {Id = 1, Language = new Language("en-US"), RootContent = new Content("test1", -1, new ContentType(-1)) {Id = 10011}},
|
||||
new UmbracoDomain("http://domain1.com/fr") {Id = 1, Language = new Language("fr-FR"), RootContent = new Content("test1", -1, new ContentType(-1)) {Id = 10012}},
|
||||
new UmbracoDomain("http://domain1a.com/fr") {Id = 1, Language = new Language("fr-FR"), RootContent = new Content("test1", -1, new ContentType(-1)) {Id = 10012}},
|
||||
new UmbracoDomain("http://domain1b.com/fr") {Id = 1, Language = new Language("fr-FR"), RootContent = new Content("test1", -1, new ContentType(-1)) {Id = 10012}},
|
||||
new UmbracoDomain("http://domain3.com/en") {Id = 1, Language = new Language("en-US"), RootContent = new Content("test1", -1, new ContentType(-1)) {Id = 10031}},
|
||||
new UmbracoDomain("http://domain3.com/fr") {Id = 1, Language = new Language("fr-FR"), RootContent = new Content("test1", -1, new ContentType(-1)) {Id = 10032}}
|
||||
});
|
||||
}
|
||||
|
||||
protected override string GetXmlContent(int templateId)
|
||||
{
|
||||
return @"<?xml version=""1.0"" encoding=""utf-8""?>
|
||||
protected override string GetXmlContent(int templateId)
|
||||
{
|
||||
return @"<?xml version=""1.0"" encoding=""utf-8""?>
|
||||
<!DOCTYPE root[
|
||||
<!ELEMENT Doc ANY>
|
||||
<!ATTLIST Doc id ID #REQUIRED>
|
||||
@@ -157,233 +157,233 @@ namespace Umbraco.Tests.Routing
|
||||
</Doc>
|
||||
</Doc>
|
||||
</root>";
|
||||
}
|
||||
}
|
||||
|
||||
// with one simple domain "domain1.com"
|
||||
// basic tests
|
||||
[TestCase(1001, "http://domain1.com", false, "/")]
|
||||
[TestCase(10011, "http://domain1.com", false, "/1001-1/")]
|
||||
[TestCase(1002, "http://domain1.com", false, "/1002/")]
|
||||
// absolute tests
|
||||
[TestCase(1001, "http://domain1.com", true, "http://domain1.com/")]
|
||||
[TestCase(10011, "http://domain1.com", true, "http://domain1.com/1001-1/")]
|
||||
// different current tests
|
||||
[TestCase(1001, "http://domain2.com", false, "http://domain1.com/")]
|
||||
[TestCase(10011, "http://domain2.com", false, "http://domain1.com/1001-1/")]
|
||||
[TestCase(1001, "https://domain1.com", false, "/")]
|
||||
[TestCase(10011, "https://domain1.com", false, "/1001-1/")]
|
||||
public void Get_Nice_Url_SimpleDomain(int nodeId, string currentUrl, bool absolute, string expected)
|
||||
{
|
||||
var settings = SettingsForTests.GenerateMockSettings();
|
||||
var request = Mock.Get(settings.RequestHandler);
|
||||
request.Setup(x => x.UseDomainPrefixes).Returns(false);
|
||||
|
||||
var routingContext = GetRoutingContext("/test", 1111, umbracoSettings: settings);
|
||||
|
||||
SettingsForTests.UseDirectoryUrls = true;
|
||||
SettingsForTests.HideTopLevelNodeFromPath = false; // ignored w/domains
|
||||
|
||||
SetDomains1();
|
||||
|
||||
var currentUri = new Uri(currentUrl);
|
||||
var result = routingContext.UrlProvider.GetUrl(nodeId, currentUri, absolute);
|
||||
Assert.AreEqual(expected, result);
|
||||
}
|
||||
|
||||
// with one complete domain "http://domain1.com/foo"
|
||||
// basic tests
|
||||
[TestCase(1001, "http://domain1.com", false, "/foo/")]
|
||||
[TestCase(10011, "http://domain1.com", false, "/foo/1001-1/")]
|
||||
[TestCase(1002, "http://domain1.com", false, "/1002/")]
|
||||
// absolute tests
|
||||
[TestCase(1001, "http://domain1.com", true, "http://domain1.com/foo/")]
|
||||
[TestCase(10011, "http://domain1.com", true, "http://domain1.com/foo/1001-1/")]
|
||||
// different current tests
|
||||
[TestCase(1001, "http://domain2.com", false, "http://domain1.com/foo/")]
|
||||
[TestCase(10011, "http://domain2.com", false, "http://domain1.com/foo/1001-1/")]
|
||||
[TestCase(1001, "https://domain1.com", false, "http://domain1.com/foo/")]
|
||||
[TestCase(10011, "https://domain1.com", false, "http://domain1.com/foo/1001-1/")]
|
||||
public void Get_Nice_Url_SimpleWithSchemeAndPath(int nodeId, string currentUrl, bool absolute, string expected)
|
||||
{
|
||||
// with one simple domain "domain1.com"
|
||||
// basic tests
|
||||
[TestCase(1001, "http://domain1.com", false, "/")]
|
||||
[TestCase(10011, "http://domain1.com", false, "/1001-1/")]
|
||||
[TestCase(1002, "http://domain1.com", false, "/1002/")]
|
||||
// absolute tests
|
||||
[TestCase(1001, "http://domain1.com", true, "http://domain1.com/")]
|
||||
[TestCase(10011, "http://domain1.com", true, "http://domain1.com/1001-1/")]
|
||||
// different current tests
|
||||
[TestCase(1001, "http://domain2.com", false, "http://domain1.com/")]
|
||||
[TestCase(10011, "http://domain2.com", false, "http://domain1.com/1001-1/")]
|
||||
[TestCase(1001, "https://domain1.com", false, "/")]
|
||||
[TestCase(10011, "https://domain1.com", false, "/1001-1/")]
|
||||
public void Get_Nice_Url_SimpleDomain(int nodeId, string currentUrl, bool absolute, string expected)
|
||||
{
|
||||
var settings = SettingsForTests.GenerateMockSettings();
|
||||
var request = Mock.Get(settings.RequestHandler);
|
||||
request.Setup(x => x.UseDomainPrefixes).Returns(false);
|
||||
|
||||
var routingContext = GetRoutingContext("/test", 1111, umbracoSettings: settings);
|
||||
var routingContext = GetRoutingContext("/test", 1111, umbracoSettings: settings);
|
||||
|
||||
SettingsForTests.UseDirectoryUrls = true;
|
||||
SettingsForTests.HideTopLevelNodeFromPath = false; // ignored w/domains
|
||||
|
||||
SetDomains2();
|
||||
SetDomains1();
|
||||
|
||||
var currentUri = new Uri(currentUrl);
|
||||
var result = routingContext.UrlProvider.GetUrl(nodeId, currentUri, absolute);
|
||||
Assert.AreEqual(expected, result);
|
||||
}
|
||||
var currentUri = new Uri(currentUrl);
|
||||
var result = routingContext.UrlProvider.GetUrl(nodeId, currentUri, absolute);
|
||||
Assert.AreEqual(expected, result);
|
||||
}
|
||||
|
||||
// with one domain, not at root
|
||||
[TestCase(1001, "http://domain1.com", false, "/1001/")]
|
||||
[TestCase(10011, "http://domain1.com", false, "/")]
|
||||
[TestCase(100111, "http://domain1.com", false, "/1001-1-1/")]
|
||||
[TestCase(1002, "http://domain1.com", false, "/1002/")]
|
||||
public void Get_Nice_Url_DeepDomain(int nodeId, string currentUrl, bool absolute, string expected)
|
||||
{
|
||||
// with one complete domain "http://domain1.com/foo"
|
||||
// basic tests
|
||||
[TestCase(1001, "http://domain1.com", false, "/foo/")]
|
||||
[TestCase(10011, "http://domain1.com", false, "/foo/1001-1/")]
|
||||
[TestCase(1002, "http://domain1.com", false, "/1002/")]
|
||||
// absolute tests
|
||||
[TestCase(1001, "http://domain1.com", true, "http://domain1.com/foo/")]
|
||||
[TestCase(10011, "http://domain1.com", true, "http://domain1.com/foo/1001-1/")]
|
||||
// different current tests
|
||||
[TestCase(1001, "http://domain2.com", false, "http://domain1.com/foo/")]
|
||||
[TestCase(10011, "http://domain2.com", false, "http://domain1.com/foo/1001-1/")]
|
||||
[TestCase(1001, "https://domain1.com", false, "http://domain1.com/foo/")]
|
||||
[TestCase(10011, "https://domain1.com", false, "http://domain1.com/foo/1001-1/")]
|
||||
public void Get_Nice_Url_SimpleWithSchemeAndPath(int nodeId, string currentUrl, bool absolute, string expected)
|
||||
{
|
||||
var settings = SettingsForTests.GenerateMockSettings();
|
||||
var request = Mock.Get(settings.RequestHandler);
|
||||
request.Setup(x => x.UseDomainPrefixes).Returns(false);
|
||||
|
||||
var routingContext = GetRoutingContext("/test", 1111, umbracoSettings: settings);
|
||||
var routingContext = GetRoutingContext("/test", 1111, umbracoSettings: settings);
|
||||
|
||||
SettingsForTests.UseDirectoryUrls = true;
|
||||
SettingsForTests.HideTopLevelNodeFromPath = false; // ignored w/domains
|
||||
|
||||
SetDomains2();
|
||||
|
||||
var currentUri = new Uri(currentUrl);
|
||||
var result = routingContext.UrlProvider.GetUrl(nodeId, currentUri, absolute);
|
||||
Assert.AreEqual(expected, result);
|
||||
}
|
||||
|
||||
// with one domain, not at root
|
||||
[TestCase(1001, "http://domain1.com", false, "/1001/")]
|
||||
[TestCase(10011, "http://domain1.com", false, "/")]
|
||||
[TestCase(100111, "http://domain1.com", false, "/1001-1-1/")]
|
||||
[TestCase(1002, "http://domain1.com", false, "/1002/")]
|
||||
public void Get_Nice_Url_DeepDomain(int nodeId, string currentUrl, bool absolute, string expected)
|
||||
{
|
||||
var settings = SettingsForTests.GenerateMockSettings();
|
||||
var request = Mock.Get(settings.RequestHandler);
|
||||
request.Setup(x => x.UseDomainPrefixes).Returns(false);
|
||||
|
||||
var routingContext = GetRoutingContext("/test", 1111, umbracoSettings: settings);
|
||||
|
||||
SettingsForTests.UseDirectoryUrls = true;
|
||||
SettingsForTests.HideTopLevelNodeFromPath = false; // ignored w/domains
|
||||
|
||||
SetDomains3();
|
||||
|
||||
var currentUri = new Uri(currentUrl);
|
||||
var result = routingContext.UrlProvider.GetUrl(nodeId, currentUri, absolute);
|
||||
Assert.AreEqual(expected, result);
|
||||
}
|
||||
var currentUri = new Uri(currentUrl);
|
||||
var result = routingContext.UrlProvider.GetUrl(nodeId, currentUri, absolute);
|
||||
Assert.AreEqual(expected, result);
|
||||
}
|
||||
|
||||
// with nested domains
|
||||
[TestCase(1001, "http://domain1.com", false, "/")]
|
||||
[TestCase(10011, "http://domain1.com", false, "/en/")]
|
||||
[TestCase(100111, "http://domain1.com", false, "/en/1001-1-1/")]
|
||||
[TestCase(10012, "http://domain1.com", false, "/fr/")]
|
||||
[TestCase(100121, "http://domain1.com", false, "/fr/1001-2-1/")]
|
||||
[TestCase(10013, "http://domain1.com", false, "/1001-3/")]
|
||||
[TestCase(1002, "http://domain1.com", false, "/1002/")]
|
||||
[TestCase(1003, "http://domain3.com", false, "/")]
|
||||
[TestCase(10031, "http://domain3.com", false, "/en/")]
|
||||
[TestCase(100321, "http://domain3.com", false, "/fr/1003-2-1/")]
|
||||
public void Get_Nice_Url_NestedDomains(int nodeId, string currentUrl, bool absolute, string expected)
|
||||
{
|
||||
// with nested domains
|
||||
[TestCase(1001, "http://domain1.com", false, "/")]
|
||||
[TestCase(10011, "http://domain1.com", false, "/en/")]
|
||||
[TestCase(100111, "http://domain1.com", false, "/en/1001-1-1/")]
|
||||
[TestCase(10012, "http://domain1.com", false, "/fr/")]
|
||||
[TestCase(100121, "http://domain1.com", false, "/fr/1001-2-1/")]
|
||||
[TestCase(10013, "http://domain1.com", false, "/1001-3/")]
|
||||
[TestCase(1002, "http://domain1.com", false, "/1002/")]
|
||||
[TestCase(1003, "http://domain3.com", false, "/")]
|
||||
[TestCase(10031, "http://domain3.com", false, "/en/")]
|
||||
[TestCase(100321, "http://domain3.com", false, "/fr/1003-2-1/")]
|
||||
public void Get_Nice_Url_NestedDomains(int nodeId, string currentUrl, bool absolute, string expected)
|
||||
{
|
||||
var settings = SettingsForTests.GenerateMockSettings();
|
||||
var request = Mock.Get(settings.RequestHandler);
|
||||
request.Setup(x => x.UseDomainPrefixes).Returns(false);
|
||||
|
||||
var routingContext = GetRoutingContext("/test", 1111, umbracoSettings: settings);
|
||||
var routingContext = GetRoutingContext("/test", 1111, umbracoSettings: settings);
|
||||
|
||||
SettingsForTests.UseDirectoryUrls = true;
|
||||
SettingsForTests.HideTopLevelNodeFromPath = false; // ignored w/domains
|
||||
|
||||
SetDomains4();
|
||||
|
||||
var currentUri = new Uri(currentUrl);
|
||||
var result = routingContext.UrlProvider.GetUrl(nodeId, currentUri, absolute);
|
||||
Assert.AreEqual(expected, result);
|
||||
}
|
||||
SetDomains4();
|
||||
|
||||
[Test]
|
||||
public void Get_Nice_Url_DomainsAndCache()
|
||||
{
|
||||
var currentUri = new Uri(currentUrl);
|
||||
var result = routingContext.UrlProvider.GetUrl(nodeId, currentUri, absolute);
|
||||
Assert.AreEqual(expected, result);
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void Get_Nice_Url_DomainsAndCache()
|
||||
{
|
||||
var settings = SettingsForTests.GenerateMockSettings();
|
||||
var request = Mock.Get(settings.RequestHandler);
|
||||
request.Setup(x => x.UseDomainPrefixes).Returns(false);
|
||||
|
||||
var routingContext = GetRoutingContext("/test", 1111, umbracoSettings: settings);
|
||||
var routingContext = GetRoutingContext("/test", 1111, umbracoSettings: settings);
|
||||
|
||||
SettingsForTests.UseDirectoryUrls = true;
|
||||
SettingsForTests.HideTopLevelNodeFromPath = false; // ignored w/domains
|
||||
|
||||
SetDomains4();
|
||||
SetDomains4();
|
||||
|
||||
string ignore;
|
||||
ignore = routingContext.UrlProvider.GetUrl(1001, new Uri("http://domain1.com"), false);
|
||||
ignore = routingContext.UrlProvider.GetUrl(10011, new Uri("http://domain1.com"), false);
|
||||
ignore = routingContext.UrlProvider.GetUrl(100111, new Uri("http://domain1.com"), false);
|
||||
ignore = routingContext.UrlProvider.GetUrl(10012, new Uri("http://domain1.com"), false);
|
||||
ignore = routingContext.UrlProvider.GetUrl(100121, new Uri("http://domain1.com"), false);
|
||||
ignore = routingContext.UrlProvider.GetUrl(10013, new Uri("http://domain1.com"), false);
|
||||
ignore = routingContext.UrlProvider.GetUrl(1002, new Uri("http://domain1.com"), false);
|
||||
ignore = routingContext.UrlProvider.GetUrl(1001, new Uri("http://domain2.com"), false);
|
||||
ignore = routingContext.UrlProvider.GetUrl(10011, new Uri("http://domain2.com"), false);
|
||||
ignore = routingContext.UrlProvider.GetUrl(100111, new Uri("http://domain2.com"), false);
|
||||
ignore = routingContext.UrlProvider.GetUrl(1002, new Uri("http://domain2.com"), false);
|
||||
string ignore;
|
||||
ignore = routingContext.UrlProvider.GetUrl(1001, new Uri("http://domain1.com"), false);
|
||||
ignore = routingContext.UrlProvider.GetUrl(10011, new Uri("http://domain1.com"), false);
|
||||
ignore = routingContext.UrlProvider.GetUrl(100111, new Uri("http://domain1.com"), false);
|
||||
ignore = routingContext.UrlProvider.GetUrl(10012, new Uri("http://domain1.com"), false);
|
||||
ignore = routingContext.UrlProvider.GetUrl(100121, new Uri("http://domain1.com"), false);
|
||||
ignore = routingContext.UrlProvider.GetUrl(10013, new Uri("http://domain1.com"), false);
|
||||
ignore = routingContext.UrlProvider.GetUrl(1002, new Uri("http://domain1.com"), false);
|
||||
ignore = routingContext.UrlProvider.GetUrl(1001, new Uri("http://domain2.com"), false);
|
||||
ignore = routingContext.UrlProvider.GetUrl(10011, new Uri("http://domain2.com"), false);
|
||||
ignore = routingContext.UrlProvider.GetUrl(100111, new Uri("http://domain2.com"), false);
|
||||
ignore = routingContext.UrlProvider.GetUrl(1002, new Uri("http://domain2.com"), false);
|
||||
|
||||
var cache = routingContext.UmbracoContext.ContentCache.InnerCache as PublishedContentCache;
|
||||
if (cache == null) throw new Exception("Unsupported IPublishedContentCache, only the Xml one is supported.");
|
||||
var cachedRoutes = cache.RoutesCache.GetCachedRoutes();
|
||||
Assert.AreEqual(7, cachedRoutes.Count);
|
||||
|
||||
var cachedIds = cache.RoutesCache.GetCachedIds();
|
||||
Assert.AreEqual(7, cachedIds.Count);
|
||||
var cachedIds = cache.RoutesCache.GetCachedIds();
|
||||
Assert.AreEqual(7, cachedIds.Count);
|
||||
|
||||
CheckRoute(cachedRoutes, cachedIds, 1001, "1001/");
|
||||
CheckRoute(cachedRoutes, cachedIds, 10011, "10011/");
|
||||
CheckRoute(cachedRoutes, cachedIds, 100111, "10011/1001-1-1");
|
||||
CheckRoute(cachedRoutes, cachedIds, 10012, "10012/");
|
||||
CheckRoute(cachedRoutes, cachedIds, 100121, "10012/1001-2-1");
|
||||
CheckRoute(cachedRoutes, cachedIds, 10013, "1001/1001-3");
|
||||
CheckRoute(cachedRoutes, cachedIds, 1002, "/1002");
|
||||
CheckRoute(cachedRoutes, cachedIds, 1001, "1001/");
|
||||
CheckRoute(cachedRoutes, cachedIds, 10011, "10011/");
|
||||
CheckRoute(cachedRoutes, cachedIds, 100111, "10011/1001-1-1");
|
||||
CheckRoute(cachedRoutes, cachedIds, 10012, "10012/");
|
||||
CheckRoute(cachedRoutes, cachedIds, 100121, "10012/1001-2-1");
|
||||
CheckRoute(cachedRoutes, cachedIds, 10013, "1001/1001-3");
|
||||
CheckRoute(cachedRoutes, cachedIds, 1002, "/1002");
|
||||
|
||||
// use the cache
|
||||
Assert.AreEqual("/", routingContext.UrlProvider.GetUrl(1001, new Uri("http://domain1.com"), false));
|
||||
Assert.AreEqual("/en/", routingContext.UrlProvider.GetUrl(10011, new Uri("http://domain1.com"), false));
|
||||
Assert.AreEqual("/en/1001-1-1/", routingContext.UrlProvider.GetUrl(100111, new Uri("http://domain1.com"), false));
|
||||
Assert.AreEqual("/fr/", routingContext.UrlProvider.GetUrl(10012, new Uri("http://domain1.com"), false));
|
||||
Assert.AreEqual("/fr/1001-2-1/", routingContext.UrlProvider.GetUrl(100121, new Uri("http://domain1.com"), false));
|
||||
Assert.AreEqual("/1001-3/", routingContext.UrlProvider.GetUrl(10013, new Uri("http://domain1.com"), false));
|
||||
Assert.AreEqual("/1002/", routingContext.UrlProvider.GetUrl(1002, new Uri("http://domain1.com"), false));
|
||||
// use the cache
|
||||
Assert.AreEqual("/", routingContext.UrlProvider.GetUrl(1001, new Uri("http://domain1.com"), false));
|
||||
Assert.AreEqual("/en/", routingContext.UrlProvider.GetUrl(10011, new Uri("http://domain1.com"), false));
|
||||
Assert.AreEqual("/en/1001-1-1/", routingContext.UrlProvider.GetUrl(100111, new Uri("http://domain1.com"), false));
|
||||
Assert.AreEqual("/fr/", routingContext.UrlProvider.GetUrl(10012, new Uri("http://domain1.com"), false));
|
||||
Assert.AreEqual("/fr/1001-2-1/", routingContext.UrlProvider.GetUrl(100121, new Uri("http://domain1.com"), false));
|
||||
Assert.AreEqual("/1001-3/", routingContext.UrlProvider.GetUrl(10013, new Uri("http://domain1.com"), false));
|
||||
Assert.AreEqual("/1002/", routingContext.UrlProvider.GetUrl(1002, new Uri("http://domain1.com"), false));
|
||||
|
||||
Assert.AreEqual("http://domain1.com/fr/1001-2-1/", routingContext.UrlProvider.GetUrl(100121, new Uri("http://domain2.com"), false));
|
||||
}
|
||||
Assert.AreEqual("http://domain1.com/fr/1001-2-1/", routingContext.UrlProvider.GetUrl(100121, new Uri("http://domain2.com"), false));
|
||||
}
|
||||
|
||||
void CheckRoute(IDictionary<int, string> routes, IDictionary<string, int> ids, int id, string route)
|
||||
{
|
||||
Assert.IsTrue(routes.ContainsKey(id));
|
||||
Assert.AreEqual(route, routes[id]);
|
||||
Assert.IsTrue(ids.ContainsKey(route));
|
||||
Assert.AreEqual(id, ids[route]);
|
||||
}
|
||||
void CheckRoute(IDictionary<int, string> routes, IDictionary<string, int> ids, int id, string route)
|
||||
{
|
||||
Assert.IsTrue(routes.ContainsKey(id));
|
||||
Assert.AreEqual(route, routes[id]);
|
||||
Assert.IsTrue(ids.ContainsKey(route));
|
||||
Assert.AreEqual(id, ids[route]);
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void Get_Nice_Url_Relative_Or_Absolute()
|
||||
{
|
||||
[Test]
|
||||
public void Get_Nice_Url_Relative_Or_Absolute()
|
||||
{
|
||||
var settings = SettingsForTests.GenerateMockSettings();
|
||||
var requestMock = Mock.Get(settings.RequestHandler);
|
||||
requestMock.Setup(x => x.UseDomainPrefixes).Returns(false);
|
||||
|
||||
var routingContext = GetRoutingContext("http://domain1.com/test", 1111, umbracoSettings: settings);
|
||||
var routingContext = GetRoutingContext("http://domain1.com/test", 1111, umbracoSettings: settings);
|
||||
|
||||
SettingsForTests.UseDirectoryUrls = true;
|
||||
SettingsForTests.HideTopLevelNodeFromPath = false;
|
||||
|
||||
SetDomains4();
|
||||
|
||||
SetDomains4();
|
||||
|
||||
Assert.AreEqual("/en/1001-1-1/", routingContext.UrlProvider.GetUrl(100111));
|
||||
Assert.AreEqual("http://domain3.com/en/1003-1-1/", routingContext.UrlProvider.GetUrl(100311));
|
||||
|
||||
Assert.AreEqual("http://domain3.com/en/1003-1-1/", routingContext.UrlProvider.GetUrl(100311));
|
||||
|
||||
requestMock.Setup(x => x.UseDomainPrefixes).Returns(true);
|
||||
|
||||
Assert.AreEqual("http://domain1.com/en/1001-1-1/", routingContext.UrlProvider.GetUrl(100111));
|
||||
Assert.AreEqual("http://domain3.com/en/1003-1-1/", routingContext.UrlProvider.GetUrl(100311));
|
||||
Assert.AreEqual("http://domain3.com/en/1003-1-1/", routingContext.UrlProvider.GetUrl(100311));
|
||||
|
||||
requestMock.Setup(x => x.UseDomainPrefixes).Returns(false);
|
||||
routingContext.UrlProvider.Mode = UrlProviderMode.Absolute;
|
||||
|
||||
Assert.AreEqual("http://domain1.com/en/1001-1-1/", routingContext.UrlProvider.GetUrl(100111));
|
||||
Assert.AreEqual("http://domain3.com/en/1003-1-1/", routingContext.UrlProvider.GetUrl(100311));
|
||||
}
|
||||
Assert.AreEqual("http://domain1.com/en/1001-1-1/", routingContext.UrlProvider.GetUrl(100111));
|
||||
Assert.AreEqual("http://domain3.com/en/1003-1-1/", routingContext.UrlProvider.GetUrl(100311));
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void Get_Nice_Url_Alternate()
|
||||
{
|
||||
[Test]
|
||||
public void Get_Nice_Url_Alternate()
|
||||
{
|
||||
var settings = SettingsForTests.GenerateMockSettings();
|
||||
var routingContext = GetRoutingContext("http://domain1.com/en/test", 1111,umbracoSettings:settings);
|
||||
var routingContext = GetRoutingContext("http://domain1.com/en/test", 1111, umbracoSettings: settings);
|
||||
|
||||
SettingsForTests.UseDirectoryUrls = true;
|
||||
SettingsForTests.HideTopLevelNodeFromPath = false;
|
||||
|
||||
SetDomains5();
|
||||
SetDomains5();
|
||||
|
||||
var url = routingContext.UrlProvider.GetUrl(100111, true);
|
||||
var url = routingContext.UrlProvider.GetUrl(100111, true);
|
||||
Assert.AreEqual("http://domain1.com/en/1001-1-1/", url);
|
||||
|
||||
var result = routingContext.UrlProvider.GetOtherUrls(100111).ToArray();
|
||||
|
||||
Assert.AreEqual(2, result.Count());
|
||||
Assert.IsTrue(result.Contains("http://domain1a.com/en/1001-1-1/"));
|
||||
Assert.IsTrue(result.Contains("http://domain1b.com/en/1001-1-1/"));
|
||||
}
|
||||
}
|
||||
var result = routingContext.UrlProvider.GetOtherUrls(100111).ToArray();
|
||||
|
||||
Assert.AreEqual(2, result.Count());
|
||||
Assert.IsTrue(result.Contains("http://domain1a.com/en/1001-1-1/"));
|
||||
Assert.IsTrue(result.Contains("http://domain1b.com/en/1001-1-1/"));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -3,6 +3,7 @@ using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using NUnit.Framework;
|
||||
using Umbraco.Core.Models;
|
||||
using Umbraco.Tests.TestHelpers;
|
||||
using Umbraco.Web.Routing;
|
||||
using umbraco.cms.businesslogic.web;
|
||||
@@ -181,8 +182,8 @@ namespace Umbraco.Tests.Routing
|
||||
var current = new Uri("http://domain1.com/foo/bar");
|
||||
var output = helper.MapDomain(current, new[]
|
||||
{
|
||||
new DomainAndUri(new MockDomain("domain1.com"), Uri.UriSchemeHttp),
|
||||
new DomainAndUri(new MockDomain("domain2.com"), Uri.UriSchemeHttp),
|
||||
new DomainAndUri(new UmbracoDomain("domain1.com"), Uri.UriSchemeHttp),
|
||||
new DomainAndUri(new UmbracoDomain("domain2.com"), Uri.UriSchemeHttp),
|
||||
}).Uri.ToString();
|
||||
Assert.AreEqual("http://domain1.com/", output);
|
||||
|
||||
@@ -192,8 +193,8 @@ namespace Umbraco.Tests.Routing
|
||||
current = new Uri("http://domain1.com/foo/bar");
|
||||
output = helper.MapDomain(current, new[]
|
||||
{
|
||||
new DomainAndUri(new MockDomain("domain1.net"), Uri.UriSchemeHttp),
|
||||
new DomainAndUri(new MockDomain("domain2.net"), Uri.UriSchemeHttp)
|
||||
new DomainAndUri(new UmbracoDomain("domain1.net"), Uri.UriSchemeHttp),
|
||||
new DomainAndUri(new UmbracoDomain("domain2.net"), Uri.UriSchemeHttp)
|
||||
}).Uri.ToString();
|
||||
Assert.AreEqual("http://domain1.net/", output);
|
||||
|
||||
@@ -204,8 +205,8 @@ namespace Umbraco.Tests.Routing
|
||||
current = new Uri("http://domain1.com/foo/bar");
|
||||
output = helper.MapDomain(current, new[]
|
||||
{
|
||||
new DomainAndUri(new MockDomain("domain2.net"), Uri.UriSchemeHttp),
|
||||
new DomainAndUri(new MockDomain("domain1.net"), Uri.UriSchemeHttp)
|
||||
new DomainAndUri(new UmbracoDomain("domain2.net"), Uri.UriSchemeHttp),
|
||||
new DomainAndUri(new UmbracoDomain("domain1.net"), Uri.UriSchemeHttp)
|
||||
}).Uri.ToString();
|
||||
Assert.AreEqual("http://domain1.net/", output);
|
||||
}
|
||||
@@ -231,11 +232,11 @@ namespace Umbraco.Tests.Routing
|
||||
var current = new Uri("http://domain1.com/foo/bar");
|
||||
var output = helper.MapDomains(current, new[]
|
||||
{
|
||||
new DomainAndUri(new MockDomain("domain1.com"), Uri.UriSchemeHttp), // no: current + what MapDomain would pick
|
||||
new DomainAndUri(new MockDomain("domain2.com"), Uri.UriSchemeHttp), // no: not same site
|
||||
new DomainAndUri(new MockDomain("domain3.com"), Uri.UriSchemeHttp), // no: not same site
|
||||
new DomainAndUri(new MockDomain("domain4.com"), Uri.UriSchemeHttp), // no: not same site
|
||||
new DomainAndUri(new MockDomain("domain1.org"), Uri.UriSchemeHttp), // yes: same site (though bogus setup)
|
||||
new DomainAndUri(new UmbracoDomain("domain1.com"), Uri.UriSchemeHttp), // no: current + what MapDomain would pick
|
||||
new DomainAndUri(new UmbracoDomain("domain2.com"), Uri.UriSchemeHttp), // no: not same site
|
||||
new DomainAndUri(new UmbracoDomain("domain3.com"), Uri.UriSchemeHttp), // no: not same site
|
||||
new DomainAndUri(new UmbracoDomain("domain4.com"), Uri.UriSchemeHttp), // no: not same site
|
||||
new DomainAndUri(new UmbracoDomain("domain1.org"), Uri.UriSchemeHttp), // yes: same site (though bogus setup)
|
||||
}, true).ToArray();
|
||||
|
||||
Assert.AreEqual(1, output.Count());
|
||||
@@ -246,11 +247,11 @@ namespace Umbraco.Tests.Routing
|
||||
current = new Uri("http://domain1.com/foo/bar");
|
||||
output = helper.MapDomains(current, new[]
|
||||
{
|
||||
new DomainAndUri(new MockDomain("domain1.net"), Uri.UriSchemeHttp), // no: what MapDomain would pick
|
||||
new DomainAndUri(new MockDomain("domain2.com"), Uri.UriSchemeHttp), // no: not same site
|
||||
new DomainAndUri(new MockDomain("domain3.com"), Uri.UriSchemeHttp), // no: not same site
|
||||
new DomainAndUri(new MockDomain("domain4.com"), Uri.UriSchemeHttp), // no: not same site
|
||||
new DomainAndUri(new MockDomain("domain1.org"), Uri.UriSchemeHttp), // yes: same site (though bogus setup)
|
||||
new DomainAndUri(new UmbracoDomain("domain1.net"), Uri.UriSchemeHttp), // no: what MapDomain would pick
|
||||
new DomainAndUri(new UmbracoDomain("domain2.com"), Uri.UriSchemeHttp), // no: not same site
|
||||
new DomainAndUri(new UmbracoDomain("domain3.com"), Uri.UriSchemeHttp), // no: not same site
|
||||
new DomainAndUri(new UmbracoDomain("domain4.com"), Uri.UriSchemeHttp), // no: not same site
|
||||
new DomainAndUri(new UmbracoDomain("domain1.org"), Uri.UriSchemeHttp), // yes: same site (though bogus setup)
|
||||
}, true).ToArray();
|
||||
|
||||
Assert.AreEqual(1, output.Count());
|
||||
@@ -264,12 +265,12 @@ namespace Umbraco.Tests.Routing
|
||||
current = new Uri("http://domain1.com/foo/bar");
|
||||
output = helper.MapDomains(current, new[]
|
||||
{
|
||||
new DomainAndUri(new MockDomain("domain1.com"), Uri.UriSchemeHttp), // no: current + what MapDomain would pick
|
||||
new DomainAndUri(new MockDomain("domain2.com"), Uri.UriSchemeHttp), // no: not same site
|
||||
new DomainAndUri(new MockDomain("domain3.com"), Uri.UriSchemeHttp), // yes: bound site
|
||||
new DomainAndUri(new MockDomain("domain3.org"), Uri.UriSchemeHttp), // yes: bound site
|
||||
new DomainAndUri(new MockDomain("domain4.com"), Uri.UriSchemeHttp), // no: not same site
|
||||
new DomainAndUri(new MockDomain("domain1.org"), Uri.UriSchemeHttp), // yes: same site (though bogus setup)
|
||||
new DomainAndUri(new UmbracoDomain("domain1.com"), Uri.UriSchemeHttp), // no: current + what MapDomain would pick
|
||||
new DomainAndUri(new UmbracoDomain("domain2.com"), Uri.UriSchemeHttp), // no: not same site
|
||||
new DomainAndUri(new UmbracoDomain("domain3.com"), Uri.UriSchemeHttp), // yes: bound site
|
||||
new DomainAndUri(new UmbracoDomain("domain3.org"), Uri.UriSchemeHttp), // yes: bound site
|
||||
new DomainAndUri(new UmbracoDomain("domain4.com"), Uri.UriSchemeHttp), // no: not same site
|
||||
new DomainAndUri(new UmbracoDomain("domain1.org"), Uri.UriSchemeHttp), // yes: same site (though bogus setup)
|
||||
}, true).ToArray();
|
||||
|
||||
Assert.AreEqual(3, output.Count());
|
||||
@@ -282,12 +283,12 @@ namespace Umbraco.Tests.Routing
|
||||
current = new Uri("http://domain1.com/foo/bar");
|
||||
output = helper.MapDomains(current, new[]
|
||||
{
|
||||
new DomainAndUri(new MockDomain("domain1.net"), Uri.UriSchemeHttp), // no: what MapDomain would pick
|
||||
new DomainAndUri(new MockDomain("domain2.com"), Uri.UriSchemeHttp), // no: not same site
|
||||
new DomainAndUri(new MockDomain("domain3.com"), Uri.UriSchemeHttp), // yes: bound site
|
||||
new DomainAndUri(new MockDomain("domain3.org"), Uri.UriSchemeHttp), // yes: bound site
|
||||
new DomainAndUri(new MockDomain("domain4.com"), Uri.UriSchemeHttp), // no: not same site
|
||||
new DomainAndUri(new MockDomain("domain1.org"), Uri.UriSchemeHttp), // yes: same site (though bogus setup)
|
||||
new DomainAndUri(new UmbracoDomain("domain1.net"), Uri.UriSchemeHttp), // no: what MapDomain would pick
|
||||
new DomainAndUri(new UmbracoDomain("domain2.com"), Uri.UriSchemeHttp), // no: not same site
|
||||
new DomainAndUri(new UmbracoDomain("domain3.com"), Uri.UriSchemeHttp), // yes: bound site
|
||||
new DomainAndUri(new UmbracoDomain("domain3.org"), Uri.UriSchemeHttp), // yes: bound site
|
||||
new DomainAndUri(new UmbracoDomain("domain4.com"), Uri.UriSchemeHttp), // no: not same site
|
||||
new DomainAndUri(new UmbracoDomain("domain1.org"), Uri.UriSchemeHttp), // yes: same site (though bogus setup)
|
||||
}, true).ToArray();
|
||||
|
||||
Assert.AreEqual(3, output.Count());
|
||||
@@ -296,14 +297,14 @@ namespace Umbraco.Tests.Routing
|
||||
Assert.Contains("http://domain3.org/", output.Select(d => d.Uri.ToString()).ToArray());
|
||||
}
|
||||
|
||||
class MockDomain : Domain
|
||||
{
|
||||
private static readonly FieldInfo NameField = typeof (Domain).GetField("_name", BindingFlags.Instance | BindingFlags.NonPublic);
|
||||
//class MockDomain : Domain
|
||||
//{
|
||||
// private static readonly FieldInfo NameField = typeof (Domain).GetField("_name", BindingFlags.Instance | BindingFlags.NonPublic);
|
||||
|
||||
public MockDomain(string name)
|
||||
{
|
||||
NameField.SetValue(this, name);
|
||||
}
|
||||
}
|
||||
// public MockDomain(string name)
|
||||
// {
|
||||
// NameField.SetValue(this, name);
|
||||
// }
|
||||
//}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -40,9 +40,9 @@ namespace Umbraco.Tests.Routing
|
||||
domainService.Setup(service => service.GetAll(It.IsAny<bool>()))
|
||||
.Returns((bool incWildcards) => new[]
|
||||
{
|
||||
new UmbracoDomain{Id = 1,DomainName = "domain1.com/", Language = new Language("de-DE"), RootContent = new Content("test1", -1, new ContentType(-1)){ Id = 1001}},
|
||||
new UmbracoDomain{Id = 1,DomainName = "domain1.com/en", Language = new Language("en-US"), RootContent = new Content("test2", -1, new ContentType(-1)){ Id = 10011}},
|
||||
new UmbracoDomain{Id = 1,DomainName = "domain1.com/fr", Language = new Language("fr-FR"), RootContent = new Content("test3", -1, new ContentType(-1)){ Id = 10012}}
|
||||
new UmbracoDomain("domain1.com/"){Id = 1, Language = new Language("de-DE"), RootContent = new Content("test1", -1, new ContentType(-1)){ Id = 1001}},
|
||||
new UmbracoDomain("domain1.com/en"){Id = 1, Language = new Language("en-US"), RootContent = new Content("test2", -1, new ContentType(-1)){ Id = 10011}},
|
||||
new UmbracoDomain("domain1.com/fr"){Id = 1, Language = new Language("fr-FR"), RootContent = new Content("test3", -1, new ContentType(-1)){ Id = 10012}}
|
||||
});
|
||||
return svcCtx;
|
||||
}
|
||||
|
||||
@@ -80,8 +80,8 @@ namespace Umbraco.Tests.Routing
|
||||
{
|
||||
SetupDomainServiceMock(new[]
|
||||
{
|
||||
new UmbracoDomain {Id = 1, DomainName = "http://domain1.com/", Language = new Language("en-US"), RootContent = new Content("test1", -1, new ContentType(-1)) {Id = 1001}},
|
||||
new UmbracoDomain {Id = 1, DomainName = "http://domain2.com/", Language = new Language("en-US"), RootContent = new Content("test1", -1, new ContentType(-1)) {Id = 10011}}
|
||||
new UmbracoDomain("http://domain1.com/") {Id = 1, Language = new Language("en-US"), RootContent = new Content("test1", -1, new ContentType(-1)) {Id = 1001}},
|
||||
new UmbracoDomain("http://domain2.com/") {Id = 1, Language = new Language("en-US"), RootContent = new Content("test1", -1, new ContentType(-1)) {Id = 10011}}
|
||||
});
|
||||
|
||||
}
|
||||
|
||||
@@ -41,7 +41,7 @@ namespace Umbraco.Tests.Services
|
||||
},
|
||||
}
|
||||
}
|
||||
});
|
||||
}, Mock.Of<ILogger>());
|
||||
|
||||
var result = txtService.GetAllStoredValues(culture);
|
||||
|
||||
@@ -130,7 +130,7 @@ namespace Umbraco.Tests.Services
|
||||
}
|
||||
}
|
||||
}
|
||||
});
|
||||
}, Mock.Of<ILogger>());
|
||||
|
||||
var result = txtService.Localize("testArea/testKey", culture);
|
||||
|
||||
@@ -155,7 +155,7 @@ namespace Umbraco.Tests.Services
|
||||
}
|
||||
}
|
||||
}
|
||||
});
|
||||
}, Mock.Of<ILogger>());
|
||||
|
||||
var result = txtService.Localize("testKey", culture);
|
||||
|
||||
@@ -180,7 +180,7 @@ namespace Umbraco.Tests.Services
|
||||
}
|
||||
}
|
||||
}
|
||||
});
|
||||
}, Mock.Of<ILogger>());
|
||||
|
||||
var result = txtService.Localize("testArea/doNotFind", culture);
|
||||
|
||||
@@ -206,7 +206,7 @@ namespace Umbraco.Tests.Services
|
||||
}
|
||||
}
|
||||
}
|
||||
});
|
||||
}, Mock.Of<ILogger>());
|
||||
|
||||
var result = txtService.Localize("doNotFind", culture);
|
||||
|
||||
@@ -231,7 +231,7 @@ namespace Umbraco.Tests.Services
|
||||
}
|
||||
}
|
||||
}
|
||||
});
|
||||
}, Mock.Of<ILogger>());
|
||||
|
||||
var result = txtService.Localize("testKey", culture,
|
||||
new Dictionary<string, string> { { "0", "world" }, { "1", "great" }, { "2", "planet" } });
|
||||
@@ -359,7 +359,7 @@ namespace Umbraco.Tests.Services
|
||||
}
|
||||
}
|
||||
}
|
||||
});
|
||||
}, Mock.Of<ILogger>());
|
||||
|
||||
Assert.AreEqual("[testKey]", txtService.Localize("testArea/testKey", CultureInfo.GetCultureInfo("en-AU")));
|
||||
}
|
||||
|
||||
@@ -1,9 +1,11 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Reflection;
|
||||
using System.Web.Mvc;
|
||||
using System.Web.Routing;
|
||||
using System.Web.SessionState;
|
||||
using NUnit.Framework;
|
||||
using Umbraco.Core;
|
||||
using Umbraco.Core.Logging;
|
||||
using Umbraco.Web;
|
||||
@@ -34,20 +36,26 @@ namespace Umbraco.Tests.TestHelpers.Stubs
|
||||
if (t == null)
|
||||
return null;
|
||||
|
||||
var possibleParams = new object[]
|
||||
{
|
||||
_umbracoContext, _logger
|
||||
};
|
||||
var ctors = t.GetConstructors();
|
||||
if (ctors.Any(x =>
|
||||
foreach (var ctor in ctors.OrderByDescending(x => x.GetParameters().Count()))
|
||||
{
|
||||
var parameters = x.GetParameters();
|
||||
if (parameters.Length != 2) return false;
|
||||
return parameters.First().ParameterType == typeof (ILogger) && parameters.Last().ParameterType == typeof (UmbracoContext);
|
||||
}))
|
||||
{
|
||||
return Activator.CreateInstance(t, new object[]{_logger, _umbracoContext}) as IController;
|
||||
}
|
||||
else
|
||||
{
|
||||
return Activator.CreateInstance(t) as IController;
|
||||
var args = new List<object>();
|
||||
var allParams = ctor.GetParameters().ToArray();
|
||||
foreach (var parameter in allParams)
|
||||
{
|
||||
var found = possibleParams.SingleOrDefault(x => x.GetType() == parameter.ParameterType);
|
||||
if (found != null) args.Add(found);
|
||||
}
|
||||
if (args.Count == allParams.Length)
|
||||
{
|
||||
return Activator.CreateInstance(t, args.ToArray()) as IController;
|
||||
}
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
public System.Web.SessionState.SessionStateBehavior GetControllerSessionBehavior(RequestContext requestContext, string controllerName)
|
||||
|
||||
@@ -58,9 +58,8 @@ namespace Umbraco.Web.WebServices
|
||||
else
|
||||
{
|
||||
// yet there is a race condition here...
|
||||
var newDomain = new UmbracoDomain
|
||||
var newDomain = new UmbracoDomain("*" + model.NodeId)
|
||||
{
|
||||
DomainName = "*" + model.NodeId,
|
||||
Language = Services.LocalizationService.GetLanguageById(model.Language),
|
||||
RootContent = Services.ContentService.GetById(model.NodeId)
|
||||
};
|
||||
@@ -110,9 +109,8 @@ namespace Umbraco.Web.WebServices
|
||||
else
|
||||
{
|
||||
// yet there is a race condition here...
|
||||
var newDomain = new UmbracoDomain
|
||||
var newDomain = new UmbracoDomain(name)
|
||||
{
|
||||
DomainName = name,
|
||||
Language = Services.LocalizationService.GetLanguageById(domainModel.Lang),
|
||||
RootContent = Services.ContentService.GetById(model.NodeId)
|
||||
};
|
||||
|
||||
@@ -164,9 +164,8 @@ namespace umbraco.cms.businesslogic.web
|
||||
var lang = ApplicationContext.Current.Services.LocalizationService.GetLanguageById(LanguageId);
|
||||
if (lang == null) throw new NullReferenceException("No language exists with id " + LanguageId);
|
||||
|
||||
var domain = new UmbracoDomain
|
||||
var domain = new UmbracoDomain(DomainName)
|
||||
{
|
||||
DomainName = DomainName,
|
||||
RootContent = content,
|
||||
Language = lang
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user