package org.pac4j.saml.util; import static org.junit.Assert.assertFalse; import static org.junit.Assert.assertTrue; import java.net.URI; import java.net.URISyntaxException; import org.junit.Test; /** * Unit test for class {@link UriUtils}. * * @author jkacer * @since 1.8.0 */ public final class UriUtilsTests { @Test public void twoNullUrisMustEqual() { assertTrue(UriUtils.urisEqualAfterPortNormalization(null, null)); } @Test public void nullUriAndNonNullUriMustNotEqual() throws URISyntaxException { final URI uri = new URI("http://somewhere/something"); assertFalse(UriUtils.urisEqualAfterPortNormalization(uri, null)); assertFalse(UriUtils.urisEqualAfterPortNormalization(null, uri)); } @Test public void uriMustEqualItself() throws URISyntaxException { final URI uri = new URI("http://somewhere/something"); assertTrue(UriUtils.urisEqualAfterPortNormalization(uri, uri)); } @Test public void twoSameUrisMustEqual() throws URISyntaxException { final URI uri1 = new URI("http://somewhere/something"); final URI uri2 = new URI("http://somewhere/something"); assertTrue(UriUtils.urisEqualAfterPortNormalization(uri1, uri2)); assertTrue(UriUtils.urisEqualAfterPortNormalization(uri2, uri1)); } @Test public void twoDifferntUrisMustNotEqual() throws URISyntaxException { final URI uri1 = new URI("http://somewhere/something1"); final URI uri2 = new URI("http://somewhere/something2"); assertFalse(UriUtils.urisEqualAfterPortNormalization(uri1, uri2)); assertFalse(UriUtils.urisEqualAfterPortNormalization(uri2, uri1)); } @Test public void sameUrisWithImplicitAndExplicitHttpPortMustEqual() throws URISyntaxException { final URI uri1 = new URI("http://somewhere:80/something"); final URI uri2 = new URI("http://somewhere/something"); assertTrue(UriUtils.urisEqualAfterPortNormalization(uri1, uri2)); assertTrue(UriUtils.urisEqualAfterPortNormalization(uri2, uri1)); } @Test public void sameUrisWithImplicitAndExplicitHttpsPortMustEqual() throws URISyntaxException { final URI uri1 = new URI("https://somewhere:443/something"); final URI uri2 = new URI("https://somewhere/something"); assertTrue(UriUtils.urisEqualAfterPortNormalization(uri1, uri2)); assertTrue(UriUtils.urisEqualAfterPortNormalization(uri2, uri1)); } @Test public void differentUrisWithImplicitAndExplicitHttpPortMustNotEqual() throws URISyntaxException { final URI uri1 = new URI("http://somewhere:80/something1"); final URI uri2 = new URI("http://somewhere/something2"); assertFalse(UriUtils.urisEqualAfterPortNormalization(uri1, uri2)); assertFalse(UriUtils.urisEqualAfterPortNormalization(uri2, uri1)); } @Test public void differentUrisWithImplicitAndExplicitHttpsPortMustNotEqual() throws URISyntaxException { final URI uri1 = new URI("https://somewhere:443/something1"); final URI uri2 = new URI("https://somewhere/something2"); assertFalse(UriUtils.urisEqualAfterPortNormalization(uri1, uri2)); assertFalse(UriUtils.urisEqualAfterPortNormalization(uri2, uri1)); } }