in javatests/com/google/gitiles/GitilesFilterTest.java [109:176]
public void repoPathUrls() throws Exception {
assertThat("").doesNotMatch(REPO_PATH_REGEX);
assertThat("/").doesNotMatch(REPO_PATH_REGEX);
assertThat("//").doesNotMatch(REPO_PATH_REGEX);
assertThat("/foo").doesNotMatch(REPO_PATH_REGEX);
assertThat("/foo/ ").doesNotMatch(REPO_PATH_REGEX);
assertThat("/foo/ /").doesNotMatch(REPO_PATH_REGEX);
assertThat("/foo/ /bar").doesNotMatch(REPO_PATH_REGEX);
assertThat("/foo/bar").doesNotMatch(REPO_PATH_REGEX);
assertThat("/foo/bar+baz").doesNotMatch(REPO_PATH_REGEX);
Matcher m;
m = REPO_PATH_REGEX.matcher("/foo/+");
assertThat(m.matches()).isTrue();
assertThat(m.group(0)).isEqualTo("/foo/+");
assertThat(m.group(1)).isEqualTo(m.group(0));
assertThat(m.group(2)).isEqualTo("/foo");
assertThat(m.group(3)).isEqualTo("+");
assertThat(m.group(4)).isEqualTo("");
m = REPO_PATH_REGEX.matcher("/foo/+/");
assertThat(m.matches()).isTrue();
assertThat(m.group(0)).isEqualTo("/foo/+/");
assertThat(m.group(1)).isEqualTo(m.group(0));
assertThat(m.group(2)).isEqualTo("/foo");
assertThat(m.group(3)).isEqualTo("+");
assertThat(m.group(4)).isEqualTo("/");
m = REPO_PATH_REGEX.matcher("/foo/+/bar/baz");
assertThat(m.matches()).isTrue();
assertThat(m.group(0)).isEqualTo("/foo/+/bar/baz");
assertThat(m.group(1)).isEqualTo(m.group(0));
assertThat(m.group(2)).isEqualTo("/foo");
assertThat(m.group(3)).isEqualTo("+");
assertThat(m.group(4)).isEqualTo("/bar/baz");
m = REPO_PATH_REGEX.matcher("/foo/+/bar/baz/");
assertThat(m.matches()).isTrue();
assertThat(m.group(0)).isEqualTo("/foo/+/bar/baz/");
assertThat(m.group(1)).isEqualTo(m.group(0));
assertThat(m.group(2)).isEqualTo("/foo");
assertThat(m.group(3)).isEqualTo("+");
assertThat(m.group(4)).isEqualTo("/bar/baz/");
m = REPO_PATH_REGEX.matcher("/foo/+/bar baz");
assertThat(m.matches()).isTrue();
assertThat(m.group(0)).isEqualTo("/foo/+/bar baz");
assertThat(m.group(1)).isEqualTo(m.group(0));
assertThat(m.group(2)).isEqualTo("/foo");
assertThat(m.group(3)).isEqualTo("+");
assertThat(m.group(4)).isEqualTo("/bar baz");
m = REPO_PATH_REGEX.matcher("/foo/+/bar/+/baz");
assertThat(m.matches()).isTrue();
assertThat(m.group(0)).isEqualTo("/foo/+/bar/+/baz");
assertThat(m.group(1)).isEqualTo(m.group(0));
assertThat(m.group(2)).isEqualTo("/foo");
assertThat(m.group(3)).isEqualTo("+");
assertThat(m.group(4)).isEqualTo("/bar/+/baz");
m = REPO_PATH_REGEX.matcher("/foo/+bar/baz");
assertThat(m.matches()).isTrue();
assertThat(m.group(0)).isEqualTo("/foo/+bar/baz");
assertThat(m.group(1)).isEqualTo(m.group(0));
assertThat(m.group(2)).isEqualTo("/foo");
assertThat(m.group(3)).isEqualTo("+bar");
assertThat(m.group(4)).isEqualTo("/baz");
}