package com.codeborne.selenide.impl; import org.junit.Test; import static org.hamcrest.Matchers.is; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertThat; public class NavigatorTest { Navigator navigator = new Navigator(); @Test public void detectsAbsoluteUrls() { assertThat("protocol http", navigator.isAbsoluteUrl("http://selenide.org"), is(true)); assertThat("protocol https", navigator.isAbsoluteUrl("https://selenide.org"), is(true)); assertThat("protocol file", navigator.isAbsoluteUrl("file:///tmp/memory.dump"), is(true)); assertThat("case insensitive: HTTP", navigator.isAbsoluteUrl("HTTP://SELENIDE.ORG"), is(true)); assertThat("case insensitive: HTTPS", navigator.isAbsoluteUrl("HTTPS://SELENIDE.ORG"), is(true)); assertThat("case insensitive: FILE", navigator.isAbsoluteUrl("FILE:///TMP/MEMORY.DUMP"), is(true)); assertThat("relative url", navigator.isAbsoluteUrl("/tmp/memory.dump"), is(false)); assertThat("relative url", navigator.isAbsoluteUrl("/payments/history"), is(false)); } @Test public void addsRandomNumbersToEveryUrlToAvoidIECaching() { assertEquals("http://chuck-norris.com?timestamp=666", navigator.makeUniqueUrlToAvoidIECaching("http://chuck-norris.com", 666)); assertEquals("http://chuck-norris.com?timestamp=666", navigator.makeUniqueUrlToAvoidIECaching("http://chuck-norris.com?timestamp=123456789", 666)); assertEquals("http://chuck-norris.com?timestamp=666", navigator.makeUniqueUrlToAvoidIECaching("http://chuck-norris.com?timestamp=123456789#", 666)); assertEquals("http://chuck-norris.com?timestamp=666", navigator.makeUniqueUrlToAvoidIECaching("http://chuck-norris.com?timestamp=123456789&abc=def", 666)); } }