/****************************************************************************
* Copyright 2008-2011 ThoughtWorks, Inc.
*
* 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.
*
* Initial Contributors:
* Håkan Råberg
* Manish Chakravarty
* Pavan K S
***************************************************************************/
/*
* Copyright 2006 ThoughtWorks, Inc.
*
* 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.
*
*/
// This file has been automatically generated via XSL
package com.thoughtworks.selenium;
import java.util.Collections;
import java.util.HashMap;
import java.util.Map;
import com.thoughtworks.selenium.internal.SeleniumOSGiFactory;
import com.thoughtworks.selenium.internal.SeleniumReflectionFactory;
/**
* The default implementation of the Selenium interface; <i>end users will
* primarily interact with this object.</i>
*/
@SuppressWarnings("serial")
public class DefaultSelenium implements Selenium {
private static Map<String, String> SELENIUM_BROWSER_LAUNCHES_TO_SWT_BROWSERS = Collections
.unmodifiableMap(new HashMap<String, String>() {
{
put("*firefox", "mozilla");
put("*pifirefox", "mozilla");
put("*firefoxproxy", "mozilla");
put("*chrome", "mozilla");
put("*iexplore", "ie");
put("*piiexplore", "ie");
put("*iexploreproxy", "ie");
put("*iehta", "ie");
put("*safari", "safari");
}
});
private Selenium selenium;
public Selenium getUnderlyingSelenium() {
return selenium;
}
public DefaultSelenium(String serverHost, int serverPort, String browserStartCommand, String browserURL) {
updateTwistBrowserPropertyIfNeeded(browserStartCommand);
selenium = createSeleniumInstance(browserURL);
}
private void updateTwistBrowserPropertyIfNeeded(String browserStartCommand) {
if (System.getProperty("twist.driver.web.browser") != null) {
return;
}
if (browserStartCommand != null && browserStartCommand.length() != 0) {
System.setProperty("twist.driver.web.browser", SELENIUM_BROWSER_LAUNCHES_TO_SWT_BROWSERS.get(browserStartCommand));
}
}
private Selenium createSeleniumInstance(String browserURL) {
try {
return new SeleniumOSGiFactory().create(browserURL);
} catch (RuntimeException e) {
return new SeleniumReflectionFactory().create(browserURL);
} catch (Exception e) {
throw new RuntimeException(e);
}
}
/** Uses an arbitrary CommandProcessor */
public DefaultSelenium(Object processor) {
throw new UnsupportedOperationException();
}
/**
* Allows javascript to be specified for the test on a per-browser session
* basis. The javascript will be in-play the next time a session is created;
* that is, typically the next time <code>start()</code> is invoked (and
* <code>getNewBrowserSession</code> is sent to the RC under the sheets).
*
* @param extensionJs
* a string representing the extra extension javascript to
* include in the browser session. This is in addition to any
* specified via the -userExtensions switch when starting the RC.
*/
public void setExtensionJs(String extensionJs) {
selenium.setExtensionJs(extensionJs);
}
public void start() {
selenium.start();
}
public void start(String optionsString) {
selenium.start(optionsString);
}
public void start(Object optionsObject) {
selenium.start(optionsObject);
}
public void stop() {
selenium.stop();
}
public void showContextualBanner() {
try {
StackTraceElement[] e = Thread.currentThread().getStackTrace();
String className = null;
String methodName = null;
for (int i = 0; i < e.length; i++) {
if (e[i].getClassName().equals("java.lang.Thread") || e[i].getMethodName().equals("showContextualBanner")) {
continue;
}
className = e[i].getClassName();
methodName = e[i].getMethodName();
break;
}
showContextualBanner(className, methodName);
} catch (Exception e) {
this.setContext("<unknown context>");
}
}
public void showContextualBanner(String className, String methodName) {
StringBuilder context = new StringBuilder().append(className).append(": ");
boolean lastOneWasUpperCase = false;
boolean nextOneIsUpperCase = false;
int len = methodName.length();
for (int i = 0; i < len; i++) {
char ch = methodName.charAt(i);
nextOneIsUpperCase = i < len - 1 ? Character.isUpperCase(methodName.charAt(i + 1)) : true;
if ((Character.isUpperCase(ch) && (!lastOneWasUpperCase || !nextOneIsUpperCase))) {
context.append(" ");
lastOneWasUpperCase = true;
}
if (!Character.isUpperCase(ch)) {
lastOneWasUpperCase = false;
}
context.append(ch);
}
this.setContext(context.toString());
}
// From here on, everything in this file has been auto-generated
public void click(String locator) {
selenium.click(locator);
}
public void doubleClick(String locator) {
selenium.doubleClick(locator);
}
public void contextMenu(String locator) {
selenium.contextMenu(locator);
}
public void clickAt(String locator, String coordString) {
selenium.clickAt(locator, coordString);
}
public void doubleClickAt(String locator, String coordString) {
selenium.doubleClickAt(locator, coordString);
}
public void contextMenuAt(String locator, String coordString) {
selenium.contextMenuAt(locator, coordString);
}
public void fireEvent(String locator, String eventName) {
selenium.fireEvent(locator, eventName);
}
public void focus(String locator) {
selenium.focus(locator);
}
public void keyPress(String locator, String keySequence) {
selenium.keyPress(locator, keySequence);
}
public void shiftKeyDown() {
selenium.shiftKeyDown();
}
public void shiftKeyUp() {
selenium.shiftKeyUp();
}
public void metaKeyDown() {
selenium.metaKeyDown();
}
public void metaKeyUp() {
selenium.metaKeyUp();
}
public void altKeyDown() {
selenium.altKeyDown();
}
public void altKeyUp() {
selenium.altKeyUp();
}
public void controlKeyDown() {
selenium.controlKeyDown();
}
public void controlKeyUp() {
selenium.controlKeyUp();
}
public void keyDown(String locator, String keySequence) {
selenium.keyDown(locator, keySequence);
}
public void keyUp(String locator, String keySequence) {
selenium.keyUp(locator, keySequence);
}
public void mouseOver(String locator) {
selenium.mouseOver(locator);
}
public void mouseOut(String locator) {
selenium.mouseOut(locator);
}
public void mouseDown(String locator) {
selenium.mouseDown(locator);
}
public void mouseDownRight(String locator) {
selenium.mouseDownRight(locator);
}
public void mouseDownAt(String locator, String coordString) {
selenium.mouseDownAt(locator, coordString);
}
public void mouseDownRightAt(String locator, String coordString) {
selenium.mouseDownRightAt(locator, coordString);
}
public void mouseUp(String locator) {
selenium.mouseUp(locator);
}
public void mouseUpRight(String locator) {
selenium.mouseUpRight(locator);
}
public void mouseUpAt(String locator, String coordString) {
selenium.mouseUpAt(locator, coordString);
}
public void mouseUpRightAt(String locator, String coordString) {
selenium.mouseUpRightAt(locator, coordString);
}
public void mouseMove(String locator) {
selenium.mouseMove(locator);
}
public void mouseMoveAt(String locator, String coordString) {
selenium.mouseMoveAt(locator, coordString);
}
public void type(String locator, String value) {
selenium.type(locator, value);
}
public void typeKeys(String locator, String value) {
selenium.typeKeys(locator, value);
}
public void setSpeed(String value) {
selenium.setSpeed(value);
}
public String getSpeed() {
return selenium.getSpeed();
}
public void check(String locator) {
selenium.check(locator);
}
public void uncheck(String locator) {
selenium.uncheck(locator);
}
public void select(String selectLocator, String optionLocator) {
selenium.select(selectLocator, optionLocator);
}
public void addSelection(String locator, String optionLocator) {
selenium.addSelection(locator, optionLocator);
}
public void removeSelection(String locator, String optionLocator) {
selenium.removeSelection(locator, optionLocator);
}
public void removeAllSelections(String locator) {
selenium.removeAllSelections(locator);
}
public void submit(String formLocator) {
selenium.submit(formLocator);
}
public void open(String url) {
selenium.open(url);
}
public void openWindow(String url, String windowID) {
selenium.openWindow(url, windowID);
}
public void selectWindow(String windowID) {
selenium.selectWindow(windowID);
}
public void selectFrame(String locator) {
selenium.selectFrame(locator);
}
public boolean getWhetherThisFrameMatchFrameExpression(String currentFrameString, String target) {
return selenium.getWhetherThisFrameMatchFrameExpression(currentFrameString, target);
}
public boolean getWhetherThisWindowMatchWindowExpression(String currentWindowString, String target) {
return selenium.getWhetherThisWindowMatchWindowExpression(currentWindowString, target);
}
public void waitForPopUp(String windowID, String timeout) {
selenium.waitForPopUp(windowID, timeout);
}
public void chooseCancelOnNextConfirmation() {
selenium.chooseCancelOnNextConfirmation();
}
public void chooseOkOnNextConfirmation() {
selenium.chooseOkOnNextConfirmation();
}
public void answerOnNextPrompt(String answer) {
selenium.answerOnNextPrompt(answer);
}
public void goBack() {
selenium.goBack();
}
public void refresh() {
selenium.refresh();
}
public void close() {
selenium.close();
}
public boolean isAlertPresent() {
return selenium.isAlertPresent();
}
public boolean isPromptPresent() {
return selenium.isPromptPresent();
}
public boolean isConfirmationPresent() {
return selenium.isConfirmationPresent();
}
public String getAlert() {
return selenium.getAlert();
}
public String getConfirmation() {
return selenium.getConfirmation();
}
public String getPrompt() {
return selenium.getPrompt();
}
public String getLocation() {
return selenium.getLocation();
}
public String getTitle() {
return selenium.getTitle();
}
public String getBodyText() {
return selenium.getBodyText();
}
public String getValue(String locator) {
return selenium.getValue(locator);
}
public String getText(String locator) {
return selenium.getText(locator);
}
public void highlight(String locator) {
selenium.highlight(locator);
}
public String getEval(String script) {
return selenium.getEval(script);
}
public boolean isChecked(String locator) {
return selenium.isChecked(locator);
}
public String getTable(String tableCellAddress) {
return selenium.getTable(tableCellAddress);
}
public String[] getSelectedLabels(String selectLocator) {
return selenium.getSelectedLabels(selectLocator);
}
public String getSelectedLabel(String selectLocator) {
return selenium.getSelectedLabel(selectLocator);
}
public String[] getSelectedValues(String selectLocator) {
return selenium.getSelectedValues(selectLocator);
}
public String getSelectedValue(String selectLocator) {
return selenium.getSelectedValue(selectLocator);
}
public String[] getSelectedIndexes(String selectLocator) {
return selenium.getSelectedIndexes(selectLocator);
}
public String getSelectedIndex(String selectLocator) {
return selenium.getSelectedIndex(selectLocator);
}
public String[] getSelectedIds(String selectLocator) {
return selenium.getSelectedIds(selectLocator);
}
public String getSelectedId(String selectLocator) {
return selenium.getSelectedId(selectLocator);
}
public boolean isSomethingSelected(String selectLocator) {
return selenium.isSomethingSelected(selectLocator);
}
public String[] getSelectOptions(String selectLocator) {
return selenium.getSelectOptions(selectLocator);
}
public String getAttribute(String attributeLocator) {
return selenium.getAttribute(attributeLocator);
}
public boolean isTextPresent(String pattern) {
return selenium.isTextPresent(pattern);
}
public boolean isElementPresent(String locator) {
return selenium.isElementPresent(locator);
}
public boolean isVisible(String locator) {
return selenium.isVisible(locator);
}
public boolean isEditable(String locator) {
return selenium.isEditable(locator);
}
public String[] getAllButtons() {
return selenium.getAllButtons();
}
public String[] getAllLinks() {
return selenium.getAllLinks();
}
public String[] getAllFields() {
return selenium.getAllFields();
}
public String[] getAttributeFromAllWindows(String attributeName) {
return selenium.getAttributeFromAllWindows(attributeName);
}
public void dragdrop(String locator, String movementsString) {
selenium.dragdrop(locator, movementsString);
}
public void setMouseSpeed(String pixels) {
selenium.setMouseSpeed(pixels);
}
public Number getMouseSpeed() {
return selenium.getMouseSpeed();
}
public void dragAndDrop(String locator, String movementsString) {
selenium.dragAndDrop(locator, movementsString);
}
public void dragAndDropToObject(String locatorOfObjectToBeDragged, String locatorOfDragDestinationObject) {
selenium.dragAndDropToObject(locatorOfObjectToBeDragged, locatorOfDragDestinationObject);
}
public void windowFocus() {
selenium.windowFocus();
}
public void windowMaximize() {
selenium.windowMaximize();
}
public String[] getAllWindowIds() {
return selenium.getAllWindowIds();
}
public String[] getAllWindowNames() {
return selenium.getAllWindowNames();
}
public String[] getAllWindowTitles() {
return selenium.getAllWindowTitles();
}
public String getHtmlSource() {
return selenium.getHtmlSource();
}
public void setCursorPosition(String locator, String position) {
selenium.setCursorPosition(locator, position);
}
public Number getElementIndex(String locator) {
return selenium.getElementIndex(locator);
}
public boolean isOrdered(String locator1, String locator2) {
return selenium.isOrdered(locator1, locator2);
}
public Number getElementPositionLeft(String locator) {
return selenium.getElementPositionLeft(locator);
}
public Number getElementPositionTop(String locator) {
return selenium.getElementPositionTop(locator);
}
public Number getElementWidth(String locator) {
return selenium.getElementWidth(locator);
}
public Number getElementHeight(String locator) {
return selenium.getElementHeight(locator);
}
public Number getCursorPosition(String locator) {
return selenium.getCursorPosition(locator);
}
public String getExpression(String expression) {
return selenium.getExpression(expression);
}
public Number getXpathCount(String xpath) {
return selenium.getXpathCount(xpath);
}
public void assignId(String locator, String identifier) {
selenium.assignId(locator, identifier);
}
public void allowNativeXpath(String allow) {
selenium.allowNativeXpath(allow);
}
public void ignoreAttributesWithoutValue(String ignore) {
selenium.ignoreAttributesWithoutValue(ignore);
}
public void waitForCondition(String script, String timeout) {
selenium.waitForCondition(script, timeout);
}
public void setTimeout(String timeout) {
selenium.setTimeout(timeout);
}
public void waitForPageToLoad(String timeout) {
selenium.waitForPageToLoad(timeout);
}
public void waitForFrameToLoad(String frameAddress, String timeout) {
selenium.waitForFrameToLoad(frameAddress, timeout);
}
public String getCookie() {
return selenium.getCookie();
}
public String getCookieByName(String name) {
return selenium.getCookieByName(name);
}
public boolean isCookiePresent(String name) {
return selenium.isCookiePresent(name);
}
public void createCookie(String nameValuePair, String optionsString) {
selenium.createCookie(nameValuePair, optionsString);
}
public void deleteCookie(String name, String optionsString) {
selenium.deleteCookie(name, optionsString);
}
public void deleteAllVisibleCookies() {
selenium.deleteAllVisibleCookies();
}
public void setBrowserLogLevel(String logLevel) {
selenium.setBrowserLogLevel(logLevel);
}
public void runScript(String script) {
selenium.runScript(script);
}
public void addLocationStrategy(String strategyName, String functionDefinition) {
selenium.addLocationStrategy(strategyName, functionDefinition);
}
public void captureEntirePageScreenshot(String filename, String kwargs) {
selenium.captureEntirePageScreenshot(filename, kwargs);
}
public void rollup(String rollupName, String kwargs) {
selenium.rollup(rollupName, kwargs);
}
public void addScript(String scriptContent, String scriptTagId) {
selenium.addScript(scriptContent, scriptTagId);
}
public void removeScript(String scriptTagId) {
selenium.removeScript(scriptTagId);
}
public void useXpathLibrary(String libraryName) {
selenium.useXpathLibrary(libraryName);
}
public void setContext(String context) {
selenium.setContext(context);
}
public void attachFile(String fieldLocator, String fileLocator) {
selenium.attachFile(fieldLocator, fileLocator);
}
public void captureScreenshot(String filename) {
selenium.captureScreenshot(filename);
}
public String captureScreenshotToString() {
return selenium.captureScreenshotToString();
}
public String captureEntirePageScreenshotToString(String kwargs) {
return selenium.captureEntirePageScreenshotToString(kwargs);
}
public void shutDownSeleniumServer() {
selenium.shutDownSeleniumServer();
}
public String retrieveLastRemoteControlLogs() {
return selenium.retrieveLastRemoteControlLogs();
}
public void keyDownNative(String keycode) {
selenium.keyDownNative(keycode);
}
public void keyUpNative(String keycode) {
selenium.keyUpNative(keycode);
}
public void keyPressNative(String keycode) {
selenium.keyPressNative(keycode);
}
}