/**
* Copyright (C) 2015 Orange
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
* http://www.apache.org/licenses/LICENSE-2.0
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package com.francetelecom.clara.cloud.webapp.cucumber.acceptancetest.gui.stories;
import java.net.URL;
import java.util.concurrent.TimeUnit;
import org.openqa.selenium.htmlunit.HtmlUnitDriver;
import org.openqa.selenium.support.PageFactory;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import com.francetelecom.clara.cloud.webapp.acceptancetest.pages.LoginPage;
public class CommonHtmlUnitDriverStepHelper {
private final HtmlUnitDriver webDriver;
private final URL webappURL;
private URL populatePageURL;
Logger logger = LoggerFactory.getLogger(CommonHtmlUnitDriverStepHelper.class);
public CommonHtmlUnitDriverStepHelper(HtmlUnitDriver webDriver, URL webappURL, URL populatePageURL) {
logger.debug("DriverSteps init webappURL: {} -populatePageURL: {} ", webappURL, populatePageURL);
this.webDriver = webDriver;
this.webappURL = webappURL;
this.populatePageURL = populatePageURL;
initWebDriver();
}
protected void initWebDriver() {
logger.debug("DriverSteps init WebDriver");
// handle async
this.webDriver.manage().timeouts().implicitlyWait(60, TimeUnit.SECONDS);
this.webDriver.manage().timeouts().setScriptTimeout(60, TimeUnit.SECONDS);
// enable javascript
this.webDriver.setJavascriptEnabled(true);
}
public void afterStory() {
webDriver.quit();
}
public HtmlUnitDriver getWebDriver() {
return webDriver;
}
public URL getWebappURL() {
return webappURL;
}
public URL getPopulatePageURL() {
return populatePageURL;
}
public void setPopulatePageURL(URL populatePageURL) {
this.populatePageURL = populatePageURL;
}
public LoginPage goToLoginPage() {
// delete authentication info
getWebDriver().manage().deleteAllCookies();
// go to login page
logger.debug("Trying to access login page at {}", getWebappURL());
getWebDriver().get(getWebappURL().toString());
logger.debug("you are in : " + getWebDriver().getTitle());
return PageFactory.initElements(getWebDriver(), LoginPage.class);
}
}