Launch browser support for different browser flavors

Resolves openbmc/openbmc-test-automation#1217

Change-Id: I186f1794db729ad267562e4e318036742b9cc8d9
Signed-off-by: Sathyajith M S <sathyajith.ms@in.ibm.com>
diff --git a/gui/obmc_gui/lib/resource.robot b/gui/obmc_gui/lib/resource.robot
index 9d3dad9..70cf5b3 100644
--- a/gui/obmc_gui/lib/resource.robot
+++ b/gui/obmc_gui/lib/resource.robot
@@ -24,6 +24,7 @@
 
 *** Variables ***
 ${obmc_gui_url}              https://${OPENBMC_HOST}
+
 # Default Browser.
 ${default_browser}           ff
 
@@ -49,16 +50,29 @@
     ${windows_platform}=  Run Keyword And Return Status
     ...  Should Contain  ${curdir_lower_case}  c:\
     ${op_system}=  Run Keyword If  '${windows_platform}' == 'True'
-    ...     Set Variable  windows
-    ...   ELSE
-    ...     Set Variable  linux
+    ...    Set Variable  windows
+    ...  ELSE
+    ...    Set Variable  linux
     [Return]  ${op_system}
 
 Launch Browser in Windows Platform
     [Documentation]  Open the browser with the URL and
     ...              login on windows platform.
 
-    ${BROWSER_ID}=  Open Browser  ${obmc_gui_url}  ${default_browser}
+    ${browser_choice}=  Run Keyword And Return Status
+    ...  Variable Should Exist  ${BROWSER_TYPE}
+    Run Keyword If  '${browser_choice}' == 'True'
+    ...     Launch Browser  ${BROWSER_TYPE}
+    ...  ELSE
+    ...     Launch Browser
+
+Launch Browser
+    [Documentation]  Launches the desired browser.
+    [Arguments]  ${launch_browser}=${default_browser}
+
+    # launch_browser  Open the required browser.
+
+    ${BROWSER_ID}=  Open Browser  ${obmc_gui_url}  ${launch_browser}
     Maximize Browser Window
     Set Global Variable  ${BROWSER_ID}
 
@@ -74,6 +88,7 @@
     [Documentation]  Perform login to open BMC GUI.
     [Arguments]  ${username}=${OPENBMC_USERNAME}
     ...  ${password}=${OPENBMC_PASSWORD}
+
     # Description of argument(s):
     # username      The username.
     # password      The password.
@@ -91,6 +106,7 @@
 Test Setup Execution
     [Documentation]  Verify all the preconditions to be tested.
     [Arguments]  ${obmc_test_setup_state}=${OBMC_PowerOff_state}
+
     # Description of argument(s):
     # obmc_test_setup      The OpenBMC required state.
 
@@ -143,8 +159,9 @@
 
 Wait OpenBMC To Become Stable
     [Documentation]  Power off the OBMC.
-    [Arguments]  ${OBMC_expected_state}  ${retry_time}=15 min
+    [Arguments]  ${obmc_expected_state}  ${retry_time}=15 min
     ...  ${retry_interval}=45 sec
+
     # Description of argument(s):
     # OBMC_expected_state      The OBMC state which is required for test.
     # retry_time               Total wait time after executing the command.
@@ -160,6 +177,7 @@
 Verify OpenBMC State From REST Interface
     [Documentation]  Verify system state from REST Interface.
     [Arguments]  ${obmc_required_state}
+
     # Description of argument(s):
     # obmc_required_state      The OBMC state which is required for test.
 
@@ -169,6 +187,7 @@
 Click Yes Button
     [Documentation]  Click the 'Yes' button.
     [Arguments]  ${xpath_button_yes}
+
     # Description of argument(s):
     # xpath_button_yes      The xpath of 'Yes' button.
 
@@ -189,22 +208,26 @@
 Open Browser With URL
     [Documentation]  Open browser with specified URL and returns browser id.
     [Arguments]  ${URL}  ${browser}=gc
+
     # Description of argument(s):
     # URL      Openbmc GUI URL to be open
     #          (e.g. https://openbmc-test.mybluemix.net/#/login )
     # browser  browser used to open above URL
     #          (e.g. gc for google chrome, ff for firefox)
+
     ${browser_ID}=  Open Browser  ${URL}  ${browser}
     [Return]  ${browser_ID}
 
 Model Server Power Click Button
     [Documentation]  Click main server power in the header section.
     [Arguments]  ${div_element}  ${anchor_element}
+
     # Description of argument(s):
     # div_element     Server power header divisional element
     #                 (e.g. header_wrapper.)
     # anchor_element  Server power header anchor element
     #                 (e.g. header_wrapper_elt.)
+
     Wait Until Element Is Visible
     ...  //*[@id='header__wrapper']/div/div[${div_element}]/a[${anchor_element}]/span
     Click Element
@@ -213,6 +236,7 @@
 Controller Server Power Click Button
     [Documentation]  Click main server power in the header section.
     [Arguments]  ${controller_element}
+
     # Description of argument(s):
     # controller_element  Server power controller element
     #                     (e.g. power__power-on.)
@@ -224,6 +248,7 @@
 Controller Power Operations Confirmation Click Button
     [Documentation]  Click Common Power Operations Confirmation.
     [Arguments]  ${main_element}  ${sub_element}  ${confirm_msg_elt}  ${confirmation}
+
     # Description of argument(s):
     # main_element     Server power operations element
     #                  (e.g. power_operations.)