private Optional<Integer> indexFor(HttpUrl url) { HttpUrl canonicalUrl = canonicalize(url); for (int i = 0; i < baseUrls.size(); ++i) { if (isBaseUrlFor(baseUrls.get(i), canonicalUrl)) { return Optional.of(i); } } return Optional.empty(); }
private Optional<Integer> indexFor(HttpUrl url) { HttpUrl canonicalUrl = canonicalize(url); for (int i = 0; i < baseUrls.size(); ++i) { if (isBaseUrlFor(baseUrls.get(i), canonicalUrl)) { return Optional.of(i); } } return Optional.empty(); }
@Test public void testIsBaseUrlFor() throws Exception { // Negative cases assertThat(UrlSelectorImpl.isBaseUrlFor(parse("http://foo/a"), parse("https://foo/a"))).isFalse(); assertThat(UrlSelectorImpl.isBaseUrlFor(parse("http://foo/a"), parse("http://bar/a"))).isFalse(); assertThat(UrlSelectorImpl.isBaseUrlFor(parse("http://foo/a"), parse("http://foo:8080/a"))).isFalse(); assertThat(UrlSelectorImpl.isBaseUrlFor(parse("http://foo/b"), parse("http://foo/a"))).isFalse(); // Positive cases: schema, host, port must be equal, path must be a prefix assertThat(UrlSelectorImpl.isBaseUrlFor(parse("http://foo/a"), parse("http://foo/a"))).isTrue(); assertThat(UrlSelectorImpl.isBaseUrlFor(parse("http://foo/a"), parse("http://foo/a/"))).isTrue(); assertThat(UrlSelectorImpl.isBaseUrlFor(parse("http://foo/a"), parse("http://foo/a/b"))).isTrue(); assertThat(UrlSelectorImpl.isBaseUrlFor(parse("http://foo"), parse("http://foo/a"))).isTrue(); }