public void op_ContentNegotiation_CultureInfo() { var culture = Thread.CurrentThread.CurrentUICulture; try { const string location = "/test.fr"; var headers = new NameValueCollection(); headers["Accept"] = "*/*, text/*, text/html"; var request = new Mock<HttpRequestBase>(MockBehavior.Strict); request .SetupGet(x => x.Headers) .Returns(headers) .Verifiable(); request .SetupGet(x => x.Path) .Returns(location) .Verifiable(); request .SetupGet(x => x.RawUrl) .Returns(location) .Verifiable(); var context = new Mock<HttpContextBase>(MockBehavior.Strict); context .SetupGet(x => x.Request) .Returns(request.Object) .Verifiable(); var controller = new DerivedLanguageController(); controller.ControllerContext = new ControllerContext(context.Object, new RouteData(), controller); var result = (SeeOtherResult)controller.ContentNegotiation(new CultureInfo("fr")); Assert.Equal(location + ".html", result.Location); request.VerifyAll(); } finally { Thread.CurrentThread.CurrentUICulture = culture; } }
public void op_LanguageNegotiation() { var culture = Thread.CurrentThread.CurrentUICulture; try { const string location = "/test"; var headers = new NameValueCollection(); headers["Accept-Language"] = "da, en-gb;q=0.8, en;q=0.7"; var request = new Mock <HttpRequestBase>(MockBehavior.Strict); request .SetupGet(x => x.Headers) .Returns(headers) .Verifiable(); request .SetupGet(x => x.Path) .Returns(location) .Verifiable(); request .SetupGet(x => x.RawUrl) .Returns(location) .Verifiable(); var context = new Mock <HttpContextBase>(MockBehavior.Strict); context .SetupGet(x => x.Request) .Returns(request.Object) .Verifiable(); var controller = new DerivedLanguageController(); controller.ControllerContext = new ControllerContext(context.Object, new RouteData(), controller); var result = (SeeOtherResult)controller.LanguageNegotiation(); Assert.Equal(location + ".en", result.Location); request.VerifyAll(); } finally { Thread.CurrentThread.CurrentUICulture = culture; } }