/*
* Copyright (c) 2010-2011 Ardesco Solutions - http://www.ardescosolutions.com
*
* 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.lazerycode.ebselen.codegenerators;
import java.util.concurrent.TimeUnit;
public class WebDriverGenerator {
private String driverObject;
public WebDriverGenerator(String value) {
this.driverObject = value;
}
public String get(String value) {
return driverObject + ".get(\"" + value + "\")";
}
public String close() {
return driverObject + ".close()";
}
public String getCurrentUrl() {
return driverObject + ".getCurrentUrl()";
}
public String getTitle() {
return driverObject + ".getTitle()";
}
public String getPageSource() {
return driverObject + ".getPageSource()";
}
public String getWindowHandles() {
return driverObject + ".getWindowHandles()";
}
public String getWindowHandle() {
return driverObject + ".getWindowHandle()";
}
public WebElementGenerator findElement(String value) {
return new WebElementGenerator(driverObject + ".findElement", value);
}
public WebElementListGenerator findElements(String value) {
return new WebElementListGenerator(driverObject + ".findElements", value);
}
public Options manage() {
return new Options();
}
public class Options {
public String addCookie(String value) {
return driverObject + ".manage().addCookie(\"" + value + "\")";
}
public String deleteCookieNamed(String value) {
return driverObject + ".manage().deleteCookieNamed(\"" + value + "\")";
}
public String deleteCookie(String value) {
return driverObject + ".manage().deleteCookie(\"" + value + "\")";
}
public String deleteAllCookies() {
return driverObject + ".manage().deleteAllCookies()";
}
public String getCookies() {
return driverObject + ".manage().getCookies()";
}
public String getCookieNamed(String value) {
return driverObject + ".manage().getCookieNamed(\"" + value + "\")";
}
public Timeouts timeouts() {
return new Timeouts();
}
public class Timeouts {
public String implicitlyWait(long time, TimeUnit timeunit) {
return driverObject + ".manage().timeouts().implicitlyWait(" + time + ", TimeUnit." + timeunit.name() + ")";
}
public String setScriptTimeout(long time, TimeUnit timeunit) {
return driverObject + ".manage().timeouts().setScriptTimeout(" + time + ", TimeUnit." + timeunit.name() + ")";
}
}
}
public TargetLocator switchTo() {
return new TargetLocator();
}
public class TargetLocator {
public String frame(String value) {
return driverObject + ".switchTo().frame(\"" + value + "\")";
}
public String window(String value) {
return driverObject + ".switchTo().window(\"" + value + "\")";
}
public String defaultContent() {
return driverObject + ".switchTo().defaultContent()";
}
public String activeElement() {
return driverObject + ".switchTo().activeElement()";
}
public Alert alert() {
return new Alert();
}
public class Alert {
public String accept() {
return driverObject + ".switchTo().alert().accept()";
}
public String dismiss() {
return driverObject + ".switchTo().alert().dismiss()";
}
public String getText() {
return driverObject + ".switchTo().alert().getText()";
}
public String sendKeys(String value) {
return driverObject + ".switchTo().alert().sendKeys(\"" + value + "\")";
}
}
}
public Navigation navigate() {
return new Navigation();
}
public class Navigation {
public String back() {
return driverObject + ".navigate().back()";
}
public String forward() {
return driverObject + ".navigate().forward()";
}
public String to(String value) {
return driverObject + ".navigate().to(\"" + value + "\")";
}
public String refresh() {
return driverObject + ".navigate().refresh()";
}
}
}