@@ -37,35 +37,39 @@ class Driver
37
37
attr_reader :app_path , :app_name , :app_package , :app_activity ,
38
38
:app_wait_activity , :sauce_username , :sauce_access_key ,
39
39
:port , :os , :ios_js
40
- def initialize opts = { }
40
+ def initialize options = { }
41
41
# quit last driver
42
42
$driver. driver_quit if $driver
43
43
44
+ opts = { }
45
+ # convert to downcased symbols
46
+ options . each_pair { |k , v | opts [ k . to_s . downcase . strip . intern ] = v }
47
+
44
48
opts = { } if opts . nil?
45
49
# Path to the .apk, .app or .app.zip.
46
50
# The path can be local or remote for Sauce.
47
- @app_path = opts . fetch 'APP_PATH' , ENV [ 'APP_PATH' ]
51
+ @app_path = opts . fetch :app_path , ENV [ 'APP_PATH' ]
48
52
raise 'APP_PATH must be set.' if @app_path . nil?
49
53
50
54
# The name to use for the test run on Sauce.
51
- @app_name = opts . fetch 'APP_NAME' , ENV [ 'APP_NAME' ]
55
+ @app_name = opts . fetch :app_name , ENV [ 'APP_NAME' ]
52
56
53
57
# Android app package
54
- @app_package = opts . fetch 'APP_PACKAGE' , ENV [ 'APP_PACKAGE' ]
58
+ @app_package = opts . fetch :app_package , ENV [ 'APP_PACKAGE' ]
55
59
56
60
# Android app starting activity.
57
- @app_activity = opts . fetch 'APP_ACTIVITY' , ENV [ 'APP_ACTIVITY' ]
61
+ @app_activity = opts . fetch :app_activity , ENV [ 'APP_ACTIVITY' ]
58
62
59
63
# Android app waiting activity
60
- @app_wait_activity = opts . fetch 'APP_WAIT_ACTIVITY' , ENV [ 'APP_WAIT_ACTIVITY' ]
64
+ @app_wait_activity = opts . fetch :app_wait_activity , ENV [ 'APP_WAIT_ACTIVITY' ]
61
65
62
66
# Sauce Username
63
- @sauce_username = opts . fetch 'SAUCE_USERNAME' , ENV [ 'SAUCE_USERNAME' ]
67
+ @sauce_username = opts . fetch :sauce_username , ENV [ 'SAUCE_USERNAME' ]
64
68
65
69
# Sauce Key
66
- @sauce_access_key = opts . fetch 'SAUCE_ACCESS_KEY' , ENV [ 'SAUCE_ACCESS_KEY' ]
70
+ @sauce_access_key = opts . fetch :sauce_access_key , ENV [ 'SAUCE_ACCESS_KEY' ]
67
71
68
- @port = opts . fetch 'PORT' , ENV [ 'PORT' ] || 4723
72
+ @port = opts . fetch :port , ENV [ 'PORT' ] || 4723
69
73
70
74
@os = :ios
71
75
@os = :android if @app_path . end_with? ( '.apk' ) || @app_path . end_with? ( '.apk.zip' )
@@ -87,6 +91,9 @@ def initialize opts={}
87
91
# apply os specific patches
88
92
patch_webdriver_element
89
93
94
+ # enable debug patch
95
+ patch_webdriver_bridge if opts . fetch :debug , defined? ( Pry )
96
+
90
97
# Save global reference to last created Appium driver for top level methods.
91
98
$driver = self
92
99
0 commit comments