daveayan.gherkinsalad.browser.factory.FireFoxBrowser.java Source code

Java tutorial

Introduction

Here is the source code for daveayan.gherkinsalad.browser.factory.FireFoxBrowser.java

Source

/**
 * Copyright (c) 2012 Ayan Dave http://daveayan.com
 * Permission is hereby granted, free of charge, to any person obtaining a copy of this software and 
 * associated documentation files (the "Software"), to deal in the Software without restriction, including 
 * without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 
 * copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the 
 * following conditions:
 * 
 * 1) The above copyright notice and this permission notice shall be included without any changes or alterations 
 * in all copies or substantial portions of the Software.
 * 2) This software shall be used for Good, not Evil.
 * 
 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING 
 * BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. 
 * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, 
 * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE 
 * OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
**/
package daveayan.gherkinsalad.browser.factory;

import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.openqa.selenium.NullWebDriver;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.firefox.FirefoxDriver;

import daveayan.gherkinsalad.browser.Browser;
import daveayan.gherkinsalad.report.ReportFactory;

/**
 * @author daveayan
 **/
/** Use this class to launch an instance of Firefox Browser for testing. This class uses the <a href="http://industriallogic.com/xp/refactoring/nullObject.html">Null Object</a> Pattern.
 * <p>
 * Usage: Unless absolutely needed do not use this class directly. Use the daveayan.gherkinsalad.browser.Browser object instead. 
 * This class has a private constructor. Use the getDriver method to get an instance of org.openqa.selenium.WebDriver
 * If construction of driver is not successful this method returns a NullWebDriver.
 * 
 * @see Browser
 */
public class FireFoxBrowser implements BrowserFactory {
    private static Log log = LogFactory.getLog(FireFoxBrowser.class);

    public WebDriver getDriver() {
        try {
            ReportFactory.reporter().action("Opening Firefox");
            WebDriver driver = new FirefoxDriver();
            return driver;
        } catch (Throwable th) {
            log.info(th.getMessage());
        }
        return new NullWebDriver();
    }

    private FireFoxBrowser() {
    }
}