Skip to content

Commit 39e4611

Browse files
authored
ci: bump iOS versions (#287)
* ci: bump iOS versions * Update test_helper.rb * tweak * Update test_helper.rb * Update mobile_commands_test.rb * tweak siri, permisison tests * fix rubocop * wait * change models * try mini * tweak * fix y * tune * tweak * tweak * tweak * tweak
1 parent d76ebdd commit 39e4611

File tree

6 files changed

+39
-11
lines changed

6 files changed

+39
-11
lines changed

ci-jobs/functional/ios_setup.yml

+2
Original file line numberDiff line numberDiff line change
@@ -3,3 +3,5 @@ steps:
33
displayName: Xcode Select ${{ parameters.xcodeVersion }}
44
- script: xcrun simctl list
55
displayName: List Installed Simulators
6+
- script: defaults write com.apple.iphonesimulator PasteboardAutomaticSync -bool false
7+
displayName: Disable pasteboard automatic sync

ci-jobs/functional_test.yml

+2-2
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,8 @@
22
parameters:
33
vmImage: 'macOS-10.15'
44
vmImageForIOS: 'macOS-10.15' # Not sure the reason, but macOS 10.14 instance raises no info.plist error
5-
xcodeForIOS: 11.5
6-
xcodeForTVOS: 11.5
5+
xcodeForIOS: 12.2
6+
xcodeForTVOS: 12.2
77
androidSDK: 30
88
appiumVersion: 'beta'
99
ignoreVersionSkip: true

test/functional/ios/ios/mobile_commands_test.rb

+10-4
Original file line numberDiff line numberDiff line change
@@ -83,6 +83,8 @@ def test_permission
8383
core = ::Appium::Core.for(caps)
8484
@driver = core.start_driver
8585

86+
skip 'Permissions does not work well on iOS 14 yet' if over_ios14?(@driver)
87+
8688
assert @driver.execute_script('mobile: getPermission',
8789
{ service: 'calendar', bundleId: 'com.example.apple-samplecode.UICatalog' }) == 'yes'
8890
assert @driver.execute_script('mobile: getPermission',
@@ -114,10 +116,14 @@ def test_siri
114116

115117
@driver.execute_script 'mobile: siriCommand', { text: 'hello, siri' }
116118

117-
# Siri returns below element if it has connection issue
118-
# <XCUIElementTypeStaticText type="XCUIElementTypeStaticText" ....
119-
# name="...having a problem with the connection. Please try again in a little bit." ...>
120-
@core.wait { @driver.find_element :class_chain, '**/*[`name == "com.apple.ace.assistant"`]' }
119+
if over_ios14?(@driver)
120+
@core.wait { @driver.find_element :name, 'siri-interface-window' }
121+
else
122+
# Siri returns below element if it has connection issue
123+
# <XCUIElementTypeStaticText type="XCUIElementTypeStaticText" ....
124+
# name="...having a problem with the connection. Please try again in a little bit." ...>
125+
@core.wait { @driver.find_element :class_chain, '**/*[`name == "com.apple.ace.assistant"`]' }
126+
end
121127
assert_equal :running_in_foreground, @driver.app_state('com.example.apple-samplecode.UICatalog')
122128

123129
@driver.activate_app 'com.example.apple-samplecode.UICatalog'

test/functional/ios/patch_test.rb

+6-1
Original file line numberDiff line numberDiff line change
@@ -54,7 +54,12 @@ def test_location_rel
5454
e = @@core.wait { @@driver.find_element :accessibility_id, 'Date Picker' }
5555
location = e.location_rel @@driver
5656

57-
if over_ios13?(@@driver)
57+
if over_ios14?(@@driver)
58+
# iPhone 11
59+
assert_equal '64.0 / 414.0', location.x
60+
assert_equal '239.5 / 896.0', location.y
61+
elsif over_ios13?(@@driver)
62+
# iPhone 11
5863
assert_equal '64.0 / 414.0', location.x
5964
assert_equal '235.5 / 896.0', location.y
6065
else

test/functional/ios/webdriver/w3c_actions_test.rb

+2-1
Original file line numberDiff line numberDiff line change
@@ -85,12 +85,13 @@ def test_click_w3c_landscape
8585

8686
# The view has two views
8787
els_land = @@driver.find_elements :name, 'Buttons'
88+
els_land_length = els_land.length
8889
@@driver.rotation = :portrait
8990

9091
# The view has only one view
9192
els_port = @@driver.find_elements :name, 'Buttons'
9293

93-
assert els_land.length > els_port.length
94+
assert els_land_length > els_port.length
9495
end
9596
end
9697
end

test/test_helper.rb

+17-3
Original file line numberDiff line numberDiff line change
@@ -66,6 +66,10 @@ def over_ios13?(driver)
6666
Gem::Version.create(driver.capabilities['platformVersion']) >= Gem::Version.create('13.0')
6767
end
6868

69+
def over_ios14?(driver)
70+
Gem::Version.create(driver.capabilities['platformVersion']) >= Gem::Version.create('14.0')
71+
end
72+
6973
def ci?
7074
ENV['CI'] == 'true'
7175
end
@@ -107,7 +111,7 @@ def self.windows
107111

108112
# Require a simulator which OS version is 11.4, for example.
109113
def ios(platform_name = :ios)
110-
platform_version = platform_name == :ios ? '13.5' : '13.4'
114+
platform_version = '14.2'
111115
wda_port = wda_local_port
112116

113117
real_device = ENV['REAL'] ? true : false
@@ -131,7 +135,8 @@ def ios(platform_name = :ios)
131135
reduceMotion: true,
132136
orientation: 'PORTRAIT', # only for simulator
133137
processArguments: { args: %w(happy tseting), env: { HAPPY: 'testing' } },
134-
screenshotQuality: 2 # The lowest quality screenshots
138+
screenshotQuality: 2, # The lowest quality screenshots
139+
connectHardwareKeyboard: false
135140
},
136141
appium_lib: {
137142
export_session: true,
@@ -166,6 +171,10 @@ def over_ios13?(os_version)
166171
Gem::Version.create(os_version) >= Gem::Version.create('13.0')
167172
end
168173

174+
def over_ios14?(os_version)
175+
Gem::Version.create(os_version) >= Gem::Version.create('14.0')
176+
end
177+
169178
def test_app(os_version)
170179
if over_ios13?(os_version)
171180
# https://github.com/appium/ios-uicatalog/pull/15
@@ -179,7 +188,12 @@ def device_name(os_version, platform_name, wda_local_port)
179188
if platform_name.downcase == :tvos
180189
'Apple TV'
181190
else
182-
name = over_ios13?(os_version) ? 'iPhone 11' : 'iPhone Xs Max'
191+
name = if over_ios13?(os_version)
192+
'iPhone 11'
193+
else
194+
'iPhone Xs Max'
195+
end
196+
183197
parallel? ? "#{name} - #{wda_local_port}" : name
184198
end
185199
end

0 commit comments

Comments
 (0)