public void WhenAMethodRequestForUrlIsMade(string method, string url) { var desiredMethod = (method.HasValue() ? method : "GET").Trim().ToUpperInvariant(); var requestMethod = (desiredMethod.ValueEquals("GET") ? "GET" : "POST").ToUpperInvariant(); var pathAndQuery = url.SplitAndTrim("?"); var httpContextMock = MockBuilder.BuildMockHttpContext(r => { r.SetupGet(x => x.HttpMethod).Returns(requestMethod); r.SetupGet(x => x.AppRelativeCurrentExecutionFilePath).Returns("~/" + Regex.Replace(pathAndQuery[0], @"[{}]", "")); if (pathAndQuery.Length > 1) { r.SetupGet(x => x.QueryString).Returns(HttpUtility.ParseQueryString(pathAndQuery[1])); } if (desiredMethod != requestMethod) { r.SetupGet(x => x.Headers).Returns(new NameValueCollection { { "X-HTTP-Method-Override", desiredMethod } }); r.SetupGet(x => x.HttpMethod).Returns(desiredMethod); } }); ScenarioContext.Current.SetCurrentHttpContext(httpContextMock.Object); }
public void Route_is_matched_if_subdomain_is_not_mapped_and_parsed_subdomain_is_null() { var routes = RouteTable.Routes; routes.Clear(); routes.MapAttributeRoutes(config => { config.AddRoutesFromController <StandardUsageController>(); config.AddRoutesFromController <SubdomainController>(); }); const string host = "localhost"; var httpContextMock = MockBuilder.BuildMockHttpContext(r => { r.SetupGet(x => x.Url).Returns(new Uri("http://" + host, UriKind.Absolute)); r.SetupGet(x => x.Headers).Returns(new NameValueCollection { { "host", host } }); }); var route = routes.First(); var data = route.GetRouteData(httpContextMock.Object); Assert.That(data, Is.Not.Null); }
private UrlHelper GetUrlHelper(RouteCollection routes, string host, string schema = "http") { Mock <HttpContextBase> httpContextMock = MockBuilder.BuildMockHttpContext(r => { r.SetupGet(x => x.Url).Returns(new Uri(schema + "://" + host, UriKind.Absolute)); r.SetupGet(x => x.Headers).Returns(new NameValueCollection { { "host", host } }); }); return(new UrlHelper(new RequestContext(httpContextMock.Object, new RouteData()), routes)); }
public void It_matches_translated_route_when_translation_is_available_for_culture() { var route = MapRoutesAndFetchFirst(r => r.CultureName == "es-ES"); Thread.CurrentThread.CurrentUICulture = new CultureInfo("es-ES"); var httpContextMock = MockBuilder.BuildMockHttpContext( r => r.SetupGet(x => x.AppRelativeCurrentExecutionFilePath) .Returns("~/Translate/Actions/HOLA!")); var routeData = route.GetRouteData(httpContextMock.Object); Assert.That(routeData, Is.Not.Null); }
public void It_does_not_match_translated_route_for_neutral_culture_when_current_culture_is_neutral_from_another_language() { var route = MapRoutesAndFetchFirst(r => r.CultureName == "es"); Thread.CurrentThread.CurrentUICulture = new CultureInfo("pt-BR"); var httpContextMock = MockBuilder.BuildMockHttpContext( r => r.SetupGet(x => x.AppRelativeCurrentExecutionFilePath) .Returns("~/Translate/Actions/hola")); var routeData = route.GetRouteData(httpContextMock.Object); Assert.That(routeData, Is.Null); }
public void It_does_not_match_default_route_when_translation_is_available_for_neutral_culture() { var route = MapRoutesAndFetchFirst(r => r.CultureName == null); Thread.CurrentThread.CurrentUICulture = new CultureInfo("es-AR"); var httpContextMock = MockBuilder.BuildMockHttpContext(r => { r.SetupGet(x => x.PathInfo).Returns("Translate/Actions/Index"); }); var routeData = route.GetRouteData(httpContextMock.Object); Assert.That(routeData, Is.Null); }
public void It_matches_route_when_no_translations_are_available() { var routes = RouteTable.Routes; routes.MapAttributeRoutes(c => c.AddRoutesFromController <TranslateActionsController>()); // Fetch the first route var route = routes.Cast <Route>().SingleOrDefault(); Assert.That(route, Is.Not.Null); var httpContextMock = MockBuilder.BuildMockHttpContext( r => r.SetupGet(x => x.AppRelativeCurrentExecutionFilePath) .Returns("~/Translate/Actions/Index")); var routeData = route.GetRouteData(httpContextMock.Object); Assert.That(routeData, Is.Not.Null); }
public void Route_is_not_matched_if_subdomain_is_not_mapped_and_is_not_equal_to_configured_default() { var routes = RouteTable.Routes; routes.Clear(); routes.MapAttributeRoutes(config => config.AddRoutesFromController <SubdomainController>()); const string host = "whatever.domain.com"; var httpContextMock = MockBuilder.BuildMockHttpContext(r => { r.SetupGet(x => x.Url).Returns(new Uri("http://" + host, UriKind.Absolute)); r.SetupGet(x => x.Headers).Returns(new NameValueCollection { { "host", host } }); }); var route = routes.Single(); var data = route.GetRouteData(httpContextMock.Object); Assert.That(data, Is.Null); }