Skip to content

Commit 6676e1f

Browse files
authored
Donotsend unused value start activity (#185)
* stop sending blank value in start_activity * update changelog
1 parent 513400f commit 6676e1f

File tree

5 files changed

+45
-18
lines changed

5 files changed

+45
-18
lines changed

CHANGELOG.md

+1
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ Read `release_notes.md` for commit level details.
66
### Enhancements
77

88
### Bug fixes
9+
- Stop sending blank value in `start_activity`
910

1011
### Deprecations
1112

lib/appium_lib_core/android/device.rb

+10-6
Original file line numberDiff line numberDiff line change
@@ -303,22 +303,26 @@ def toggle_location_services
303303
def start_activity(opts)
304304
raise 'opts must be a hash' unless opts.is_a? Hash
305305

306+
option = {}
307+
306308
app_package = opts[:app_package]
307309
raise 'app_package is required' unless app_package
308310

309311
app_activity = opts[:app_activity]
310312
raise 'app_activity is required' unless app_activity
311313

312-
app_wait_package = opts.fetch(:app_wait_package, '')
313-
app_wait_activity = opts.fetch(:app_wait_activity, '')
314+
option[:appPackage] = app_package
315+
option[:appActivity] = app_activity
316+
317+
app_wait_package = opts.fetch(:app_wait_package, nil)
318+
app_wait_activity = opts.fetch(:app_wait_activity, nil)
319+
option[:appWaitPackage] = app_wait_package if app_wait_package
320+
option[:appWaitActivity] = app_wait_activity if app_wait_activity
314321

315322
unknown_opts = opts.keys - %i(app_package app_activity app_wait_package app_wait_activity)
316323
raise "Unknown options #{unknown_opts}" unless unknown_opts.empty?
317324

318-
execute :start_activity, {}, appPackage: app_package,
319-
appActivity: app_activity,
320-
appWaitPackage: app_wait_package,
321-
appWaitActivity: app_wait_activity
325+
execute :start_activity, {}, option
322326
end
323327
end
324328

test/functional/android/android/device_test.rb

+8-10
Original file line numberDiff line numberDiff line change
@@ -135,17 +135,15 @@ def test_start_activity
135135
e = @@core.wait { @driver.current_activity }
136136
assert true, e.include?('Node')
137137

138-
if @@core.automation_name == :espresso
139-
@driver.start_activity app_package: 'io.appium.android.apis', app_activity: '.ApiDemos',
140-
app_wait_activity: '.ApiDemos'
141-
else
142-
@driver.start_activity app_package: 'com.android.settings', app_activity: '.Settings',
143-
app_wait_package: 'com.android.settings', app_wait_activity: '.Settings'
144-
e = @@core.wait { @driver.current_activity }
145-
assert true, e.include?('Settings')
138+
# Espresso cannot launch my root launched activity: https://github.com/appium/appium-espresso-driver/pull/378#discussion_r250034209
139+
return if @@core.automation_name == :espresso
146140

147-
@driver.start_activity app_package: 'io.appium.android.apis', app_activity: '.ApiDemos'
148-
end
141+
@driver.start_activity app_package: 'com.android.settings', app_activity: '.Settings',
142+
app_wait_package: 'com.android.settings', app_wait_activity: '.Settings'
143+
e = @@core.wait { @driver.current_activity }
144+
assert true, e.include?('Settings')
145+
146+
@driver.start_activity app_package: 'io.appium.android.apis', app_activity: '.ApiDemos'
149147
end
150148

151149
def test_current_package

test/unit/android/device/mjsonwp/commands_test.rb

+13-1
Original file line numberDiff line numberDiff line change
@@ -217,13 +217,25 @@ def test_multi_touch
217217

218218
def test_start_activity
219219
stub_request(:post, "#{SESSION}/appium/device/start_activity")
220+
.with(body: { appPackage: 'package', appActivity: 'activity' }.to_json)
220221
.to_return(headers: HEADER, status: 200, body: { value: '' }.to_json)
221-
222222
@driver.start_activity(app_activity: 'activity', app_package: 'package')
223223

224224
assert_requested(:post, "#{SESSION}/appium/device/start_activity", times: 1)
225225
end
226226

227+
def test_start_activity_with_wait
228+
stub_request(:post, "#{SESSION}/appium/device/start_activity")
229+
.with(body: { appPackage: 'package', appActivity: 'activity',
230+
appWaitPackage: 'wait_package', appWaitActivity: 'wait_activity' }.to_json)
231+
.to_return(headers: HEADER, status: 200, body: { value: '' }.to_json)
232+
233+
@driver.start_activity(app_activity: 'activity', app_package: 'package',
234+
app_wait_package: 'wait_package', app_wait_activity: 'wait_activity')
235+
236+
assert_requested(:post, "#{SESSION}/appium/device/start_activity", times: 1)
237+
end
238+
227239
def test_set_network_connection
228240
stub_request(:post, "#{SESSION}/network_connection")
229241
.to_return(headers: HEADER, status: 200, body: { value: '' }.to_json)

test/unit/android/device/w3c/commands_test.rb

+13-1
Original file line numberDiff line numberDiff line change
@@ -218,13 +218,25 @@ def test_multi_touch
218218

219219
def test_start_activity
220220
stub_request(:post, "#{SESSION}/appium/device/start_activity")
221+
.with(body: { appPackage: 'package', appActivity: 'activity' }.to_json)
221222
.to_return(headers: HEADER, status: 200, body: { value: '' }.to_json)
222-
223223
@driver.start_activity(app_activity: 'activity', app_package: 'package')
224224

225225
assert_requested(:post, "#{SESSION}/appium/device/start_activity", times: 1)
226226
end
227227

228+
def test_start_activity_with_wait
229+
stub_request(:post, "#{SESSION}/appium/device/start_activity")
230+
.with(body: { appPackage: 'package', appActivity: 'activity',
231+
appWaitPackage: 'wait_package', appWaitActivity: 'wait_activity' }.to_json)
232+
.to_return(headers: HEADER, status: 200, body: { value: '' }.to_json)
233+
234+
@driver.start_activity(app_activity: 'activity', app_package: 'package',
235+
app_wait_package: 'wait_package', app_wait_activity: 'wait_activity')
236+
237+
assert_requested(:post, "#{SESSION}/appium/device/start_activity", times: 1)
238+
end
239+
228240
def test_set_network_connection
229241
stub_request(:post, "#{SESSION}/network_connection")
230242
.with(body: { type: 1 }.to_json)

0 commit comments

Comments
 (0)