https://bugzilla.novell.com/show_bug.cgi?id=651966
https://bugzilla.novell.com/show_bug.cgi?id=651966#c0 Summary: System.Web.Routing regex constraints differ semantically from .NET Classification: Mono Product: Mono: Class Libraries Version: 2.6.x Platform: All OS/Version: All Status: NEW Severity: Normal Priority: P5 - None Component: Sys.Web AssignedTo: [email protected] ReportedBy: [email protected] QAContact: [email protected] Found By: --- Blocker: --- User-Agent: Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US; rv:1.9.2.12) Gecko/20101026 Firefox/3.6.12 ( .NET CLR 3.5.30729; .NET4.0E) System.Web.Routing seem to differ when processing route constraints form .NET. It looks like .NET treats the regex constraints as a full pattern, i.e. beginning in '^' and ending in '$', while mono's implementation does partial matches. Below is a small repro. Reproducible: Always Steps to Reproduce: using System; using System.Collections.Specialized; using System.Web; using System.Web.Mvc; using System.Web.Routing; namespace MonoRoutingBug { class Program { static void Main(string[] args) { Route r = new Route("Foo/{id}", new RouteValueDictionary(new { controller = "Foo", action = "Retrieve" }), new RouteValueDictionary(new { id = @"\d{1,10}" }), new MvcRouteHandler()); RouteData data = r.GetRouteData(new DummyHttpContext("/Foo/x123")); // Expected : null to be returned (.NET FX returns null) // Actual: Mono return data with { controller = "Foo", action = "Index", id = "x123" } } } class DummyRouteHandler : IRouteHandler { public IHttpHandler GetHttpHandler(RequestContext requestContext) { return null; } } class DummyHttpRequest: HttpRequestBase { private Uri url; public DummyHttpRequest(string urlString) { url = new Uri(new Uri("http://localhost"), urlString); } public override string AppRelativeCurrentExecutionFilePath { get { return "~" + url.LocalPath; } } public override string PathInfo { get { return string.Empty; } } public override string HttpMethod{ get { return "~" + url.LocalPath; } } public override NameValueCollection QueryString { get { return HttpUtility.ParseQueryString(url.Query); } } } class DummyHttpContext : HttpContextBase { private DummyHttpRequest req; public DummyHttpContext(string urlString) { req = new DummyHttpRequest(urlString); } public override HttpRequestBase Request { get { return req; } } } } -- Configure bugmail: https://bugzilla.novell.com/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are the QA contact for the bug. _______________________________________________ mono-bugs maillist - [email protected] http://lists.ximian.com/mailman/listinfo/mono-bugs
