+2008-10-17 Atsushi Enomoto <atsushi@ximian.com>
+
+ * UrlPattern.cs : fixed pattern match for such string that has
+ suffix. (DynamicData uses it.)
+
2008-10-16 Atsushi Enomoto <atsushi@ximian.com>
* RouteValueDictionary.cs : object argument is actually for
int end = t.IndexOf ('}', start + 1);
int next = t.IndexOf ('{', end + 1);
string key = t.Substring (start + 1, end - start - 1);
+ string nextToken = next < 0 ? t.Substring (end + 1) : t.Substring (end + 1, next - end - 1);
+ int vnext = nextToken.Length > 0 ? v.IndexOf (nextToken, vfrom + 1, StringComparison.Ordinal) : -1;
+
if (next < 0) {
- tmp.Add (key, vfrom == 0 ? v : v.Substring (vfrom));
- vfrom = v.Length;
+ var vs = vnext < 0 ? v.Substring (vfrom) : v.Substring (vfrom, vnext - vfrom);
+ tmp.Add (key, vs);
+ vfrom = vs.Length;
} else {
- string nextToken = t.Substring (end + 1, next - end - 1);
- int vnext = v.IndexOf (nextToken, vfrom + 1, StringComparison.Ordinal);
if (vnext < 0)
return null; // mismatch
tmp.Add (key, v.Substring (vfrom, vnext - vfrom));
+2008-10-17 Atsushi Enomoto <atsushi@ximian.com>
+
+ * RouteTest.cs : added test for DynamicData default pattern.
+
2008-10-16 Atsushi Enomoto <atsushi@ximian.com>
* RouteValueDictionaryTest.cs : new test.
Assert.AreEqual (2, rd.Values.Count, "#7-3");
}
+ [Test]
+ public void GetRouteData6 ()
+ {
+ var r = new Route ("{table}/{action}.aspx", null);
+ var rd = r.GetRouteData (new HttpContextStub ("~/FooTable/List.aspx", String.Empty));
+ Assert.IsNotNull (rd, "#1");
+ Assert.AreEqual ("FooTable", rd.Values ["table"], "#2");
+ Assert.AreEqual ("List", rd.Values ["action"], "#3");
+ }
+
[Test]
[ExpectedException (typeof (ArgumentNullException))]
public void GetVirtualPathNullContext ()