public void RemoveLeadingSegmentsOnlyMatchesFullSegment()
 {
     var prefix = new UrlPrefix("foo");
     Assert.That(prefix.RemoveLeadingSegments("~/foo/bar"), Is.EqualTo("~/bar"));
     Assert.That(prefix.RemoveLeadingSegments("~/fooo/bar"), Is.EqualTo("~/fooo/bar"));
     Assert.That(prefix.RemoveLeadingSegments("~/fo/bar"), Is.EqualTo("~/fo/bar"));
 }
 public void RemoveLeadingSegmentsMayContainSlash()
 {
     var prefix = new UrlPrefix("foo/quux");
     Assert.That(prefix.RemoveLeadingSegments("~/foo/quux/bar"), Is.EqualTo("~/bar"));
     Assert.That(prefix.RemoveLeadingSegments("~/foo/bar"), Is.EqualTo("~/foo/bar"));
     Assert.That(prefix.RemoveLeadingSegments("~/quux/bar"), Is.EqualTo("~/quux/bar"));
 }
 public void RemoveLeadingSegmentsIgnoreLeadingAndTrailingCharactersOnInput()
 {
     var prefix = new UrlPrefix("foo");
     Assert.That(prefix.RemoveLeadingSegments("~/foo/bar"), Is.EqualTo("~/bar"));
     var prefix2 = new UrlPrefix("~/foo");
     Assert.That(prefix2.RemoveLeadingSegments("~/foo/bar"), Is.EqualTo("~/bar"));
     var prefix3 = new UrlPrefix("foo/");
     Assert.That(prefix3.RemoveLeadingSegments("~/foo/bar"), Is.EqualTo("~/bar"));
 }
 public void RemoveLeadingSegmentsIsCaseInsensitive()
 {
     var prefix = new UrlPrefix("Foo");
     Assert.That(prefix.RemoveLeadingSegments("~/foo/bar"), Is.EqualTo("~/bar"));
     Assert.That(prefix.RemoveLeadingSegments("~/FOO/BAR"), Is.EqualTo("~/BAR"));
 }
 public void RemoveLeadingSegmentsCanMatchEntireUrl()
 {
     var prefix = new UrlPrefix("foo");
     Assert.That(prefix.RemoveLeadingSegments("~/foo/"), Is.EqualTo("~/"));
     Assert.That(prefix.RemoveLeadingSegments("~/foo"), Is.EqualTo("~/"));
 }