Skip to content

Commit 2d1f30e

Browse files
authored
simplify a bit and move tests to suitable file (#441)
1 parent 1efed4c commit 2d1f30e

File tree

8 files changed

+57
-48
lines changed

8 files changed

+57
-48
lines changed

.rubocop.yml

+9
Original file line numberDiff line numberDiff line change
@@ -40,3 +40,12 @@ Style/VariableNumber:
4040
EnforcedStyle: 'snake_case'
4141
Lint/NestedMethodDefinition:
4242
Enabled: false
43+
# Should enable and fix for Ruby3
44+
Style/FrozenStringLiteralComment:
45+
Enabled: false
46+
# Can use over Ruby2.3
47+
Style/SafeNavigation:
48+
Enabled: false
49+
# Can use over Ruby2.3
50+
Style/NumericPredicate:
51+
Enabled: false

.travis.yml

+4-1
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,10 @@ sudo: false
22
cache: bundler
33
language: ruby
44
rvm:
5-
- 2.2.2
5+
- 2.2.5
6+
- 2.3.3
7+
- 2.4.0
8+
69
before_install: gem update --remote bundler
710
install:
811
- bundle install --retry=3

android_tests/lib/android/specs/android/element/textfield.rb

-10
Original file line numberDiff line numberDiff line change
@@ -58,15 +58,5 @@ def after_last
5858
hide_keyboard
5959
end
6060

61-
t 'set_immediate_value' do
62-
message = 'hello'
63-
64-
wait do
65-
elem = textfield(1)
66-
set_immediate_value(elem, message)
67-
elem.text.must_equal message
68-
end
69-
end
70-
7161
t { after_last }
7262
end

android_tests/lib/android/specs/driver.rb

+15
Original file line numberDiff line numberDiff line change
@@ -152,6 +152,21 @@ def validate_path(path)
152152
# absolute_app_path # tested already by starting the driver for this test
153153
# server_url # sauce labs only
154154

155+
t 'set_immediate_value' do
156+
wait { find('app').click }
157+
wait { find('activity').click }
158+
wait { find('custom title').click }
159+
160+
message = 'hello'
161+
162+
wait do
163+
elem = textfield(1)
164+
elem.clear
165+
set_immediate_value(elem, message)
166+
elem.text.must_equal message
167+
end
168+
end
169+
155170
t 'restart' do
156171
set_wait 1 # ensure wait is 1 before we restart.
157172
restart

ios_tests/lib/ios/specs/driver.rb

+16
Original file line numberDiff line numberDiff line change
@@ -170,6 +170,22 @@ def sauce?
170170
client_version.must_equal expected
171171
end
172172

173+
t 'set_immediate_value' do
174+
go_to_textfields
175+
176+
message = 'hello'
177+
178+
element = textfield(1)
179+
element.click
180+
element.clear
181+
182+
set_immediate_value(element, message)
183+
element.text.must_equal message
184+
185+
set_wait 10
186+
leave_textfields
187+
end
188+
173189
t 'restart' do
174190
restart
175191
text 'buttons'

ios_tests/lib/ios/specs/ios/element/textfield.rb

-16
Original file line numberDiff line numberDiff line change
@@ -124,22 +124,6 @@ def must_raise_no_element
124124
textfields_exact('does not exist').length.must_equal 0
125125
end
126126

127-
t 'set_immediate_value' do
128-
go_to_textfields
129-
130-
message = 'hello'
131-
132-
element = textfield(1)
133-
element.click
134-
element.clear
135-
136-
set_immediate_value(element, message)
137-
element.text.must_equal message
138-
139-
set_wait 10
140-
leave_textfields
141-
end
142-
143127
t 'after_last' do
144128
after_last
145129
end

ios_tests/lib/ios/specs/ios/patch.rb

+1
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,7 @@ def after_last
2828

2929
ele = first_textfield
3030

31+
ele.clear
3132
ele.type 'ok'
3233
ele.text.must_equal 'ok'
3334
end

lib/appium_lib/device/device.rb

+12-21
Original file line numberDiff line numberDiff line change
@@ -166,7 +166,7 @@ def start_activity(opts)
166166
app_package = opts[:app_package]
167167
raise 'app_package is required' unless app_package
168168
app_activity = opts[:app_activity]
169-
raise 'app_activity is required' unless opts[:app_activity]
169+
raise 'app_activity is required' unless app_activity
170170
app_wait_package = opts.fetch(:app_wait_package, '')
171171
app_wait_activity = opts.fetch(:app_wait_activity, '')
172172

@@ -313,11 +313,7 @@ def set_network_connection(mode)
313313

314314
# @private
315315
def add_endpoint_method(method)
316-
if block_given?
317-
create_bridge_command method, &Proc.new
318-
else
319-
create_bridge_command method
320-
end
316+
block_given? ? create_bridge_command(method, &Proc.new) : create_bridge_command(method)
321317

322318
delegate_driver_method method
323319
delegate_from_appium_driver method
@@ -345,11 +341,7 @@ def delegate_from_appium_driver(method, delegation_target = :driver)
345341
# @private
346342
def create_bridge_command(method)
347343
Selenium::WebDriver::Remote::Bridge.class_eval do
348-
if block_given?
349-
class_eval(&Proc.new)
350-
else
351-
define_method(method) { execute method }
352-
end
344+
block_given? ? class_eval(&Proc.new) : define_method(method) { execute method }
353345
end
354346
end
355347

@@ -365,11 +357,7 @@ def extend_search_contexts
365357
Selenium::WebDriver::SearchContext.class_eval do
366358
def find_element_with_appium(*args)
367359
how, what = extract_args(args)
368-
369-
finders = ::Selenium::WebDriver::SearchContext::FINDERS.merge ::Appium::Driver::SearchContext::FINDERS
370-
by = finders[how.to_sym]
371-
raise ArgumentError, "cannot find element by #{how.inspect}" unless by
372-
360+
by = _set_by_from_finders(how)
373361
begin
374362
bridge.find_element_by by, what.to_s, ref
375363
rescue Selenium::WebDriver::Error::TimeOutError
@@ -379,17 +367,20 @@ def find_element_with_appium(*args)
379367

380368
def find_elements_with_appium(*args)
381369
how, what = extract_args(args)
382-
383-
finders = ::Selenium::WebDriver::SearchContext::FINDERS.merge ::Appium::Driver::SearchContext::FINDERS
384-
by = finders[how.to_sym]
385-
raise ArgumentError, "cannot find element by #{how.inspect}" unless by
386-
370+
by = _set_by_from_finders(how)
387371
begin
388372
bridge.find_elements_by by, what.to_s, ref
389373
rescue Selenium::WebDriver::Error::TimeOutError
390374
raise Selenium::WebDriver::Error::NoSuchElementError
391375
end
392376
end
377+
378+
def _set_by_from_finders(how)
379+
finders = ::Selenium::WebDriver::SearchContext::FINDERS.merge ::Appium::Driver::SearchContext::FINDERS
380+
by = finders[how.to_sym]
381+
raise ArgumentError, "cannot find element by #{how.inspect}" unless by
382+
by
383+
end
393384
end
394385
end
395386

0 commit comments

Comments
 (0)