View Javadoc

1   package com.atlassian.webdriver.browsers;
2   
3   import com.atlassian.browsers.BrowserAutoInstaller;
4   import com.atlassian.browsers.BrowserConfig;
5   import com.atlassian.browsers.BrowserConfiguration;
6   import com.atlassian.browsers.InstallConfigurator;
7   
8   import javax.annotation.Nonnull;
9   import java.util.concurrent.atomic.AtomicReference;
10  
11  /**
12   * @since 2.0
13   */
14  public class AutoInstallConfiguration
15  {
16      /**
17       * Setup a browser using system props to determine which, using maven's taget dir as a temp dir.
18       */
19      public static BrowserConfig setupBrowser()
20      {
21          return setupBrowser(new WebDriverBrowserConfiguration());
22      }
23  
24      /**
25       * Setup a browser specifying the browser and temp dir.
26       */
27      public static BrowserConfig setupBrowser(final BrowserConfiguration browserConfiguration)
28      {
29          final AtomicReference<BrowserConfig> ref = new AtomicReference<BrowserConfig>();
30          final BrowserAutoInstaller browserAutoInstaller = new BrowserAutoInstaller(browserConfiguration, new InstallConfigurator()
31          {
32              @Override
33              public void setupBrowser(@Nonnull BrowserConfig browserConfig)
34              {
35                  ref.set(browserConfig);
36              }
37  
38              @Override
39              public void setupFirefoxBrowser(final BrowserConfig browserConfig)
40              {
41                  System.setProperty("webdriver.firefox.bin", browserConfig.getBinaryPath());
42              }
43  
44              @Override
45              public void setupChromeBrowser(final BrowserConfig browserConfig)
46              {
47                  System.setProperty("webdriver.chrome.bin", browserConfig.getBinaryPath());
48              }
49          });
50          browserAutoInstaller.setupBrowser();
51          return ref.get();
52      }
53  
54  }