package com.gfk.senbot.framework.services.selenium;
import org.apache.commons.lang.StringUtils;
import org.junit.After;
import org.junit.AfterClass;
import org.junit.Before;
import org.junit.Test;
import org.mockito.Mockito;
import org.mockito.MockitoAnnotations;
import org.openqa.selenium.WebDriver;
import com.gfk.senbot.framework.context.SenBotContext;
public class NavigationServiceMockedEnvTest extends AbstractSenbotServiceTest{
private String alternateRuntimeResources;
@Before
public void setup() {
alternateRuntimeResources = System.getProperty(SenBotContext.SENBOT_CONTEXT_ALTERNATE_RUNTIME_RESOURCES_PROPERTY_NAME);
}
@After
public void breakDown() {
if(StringUtils.isBlank(alternateRuntimeResources)) {
System.clearProperty(SenBotContext.SENBOT_CONTEXT_ALTERNATE_RUNTIME_RESOURCES_PROPERTY_NAME);
}
else {
System.setProperty(SenBotContext.SENBOT_CONTEXT_ALTERNATE_RUNTIME_RESOURCES_PROPERTY_NAME, alternateRuntimeResources);
}
}
@Test
public void testNavigate_to_url_onUnixPath() throws Exception {
//Cleanup the senbot so it will be initialiyed with the new property
SenBotContext.cleanupSenBot();
System.setProperty("senbotContext.alternateRuntimeResources", "/some/path");
final WebDriver mockDriver = Mockito.mock(WebDriver.class);
String pageUnderTest = "/test_pages/exampleButton.html";
String expectedUrl = "file:///some/path" + pageUnderTest;
NavigationService serviceUnderTest = new NavigationService(seleniumElementService) {
@Override
public WebDriver getWebDriver() {
return mockDriver;
}
};
serviceUnderTest.navigate_to_url(SenBotContext.RESOURCE_LOCATION_PREFIX + pageUnderTest);
Mockito.verify(mockDriver, Mockito.times(1)).get(expectedUrl);
SenBotContext.cleanupSenBot();
}
}