1   package com.atlassian.selenium;
2   
3   public class SystemPropertySeleniumConfiguration extends AbstractSeleniumConfiguration
4   {
5   
6       protected String serverLocation;
7       protected int serverPort = 4444;
8       protected String browserStartString;
9       protected boolean startSeleniumServer;
10      protected boolean useSingleBrowser;
11  
12      protected String appLocation;
13      protected String appPort;
14      protected String appContext;
15  
16      protected SystemPropertySeleniumConfiguration(String selServerLocationProp, String seleniumServerLocationDefault,
17                                                    String selServerPortProp, int selServerPortDefault,
18                                                    String selStartServerProp, boolean startServerDefault,
19  
20                                                    String appLocationProp, String appLocationDefault, String appPortProp,
21                                                    String appPortDefault, String appContextProp, String appContextDefault)
22      {
23          serverLocation = System.getProperty(selServerLocationProp, seleniumServerLocationDefault);
24          String serverPortStr = System.getProperty(selServerPortProp, Integer.toString(selServerPortDefault));
25          if(!nullOrEmpty(serverPortStr))
26          {
27                  serverPort = Integer.parseInt(serverPortStr);
28          }
29  
30          String startSeleniumServerStr = System.getProperty(selStartServerProp, Boolean.toString(startServerDefault));
31          if(nullOrEmpty(startSeleniumServerStr))
32          {
33              startSeleniumServer = Boolean.parseBoolean(startSeleniumServerStr);
34          }
35          browserStartString = System.getProperty("seleniumBrowserStartString", "*firefox");
36  
37          String useSingleBrowserStr  = System.getProperty("seleniumStartServer", "false");
38          if(nullOrEmpty(useSingleBrowserStr))
39          {
40              useSingleBrowser = Boolean.parseBoolean(useSingleBrowserStr);
41          }
42  
43  
44          appLocation = System.getProperty(appLocationProp, appLocationDefault);
45          appPort = System.getProperty(appPortProp, appPortDefault);
46          appContext = System.getProperty(appContextProp, appContextDefault);
47      }
48  
49      private static boolean nullOrEmpty(String str)
50      {
51          return (str == null) || (str.trim().length() == 0);
52      }
53  
54      public String getServerLocation() {
55          return serverLocation;
56      }
57  
58      public int getServerPort() {
59          return serverPort;
60      }
61  
62      public String getBrowserStartString() {
63          return browserStartString;
64      }
65  
66      public String getBaseUrl() {
67          return "http://" + appLocation + ":" + appPort + "/" + appContext;
68      }
69  
70      public boolean getStartSeleniumServer() {
71          return startSeleniumServer;
72      }
73  
74      public String getApplicationContext()
75      {
76          return appContext;
77      }
78  }