testcentricity_mobile 4.0.2 → 4.0.3

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 7b1da49ff47653a52199d5b9f72191dd4c23a109325daee033af966272f5086c
4
- data.tar.gz: d76708fc1c3384a5b7d98f7212212a3a2892fe112f50ac24343b58e763643ee4
3
+ metadata.gz: 8d1c72189a3ecb6043ddb0ce1d7b16f1f2e67469522a97afbce050dcb75ab13f
4
+ data.tar.gz: 35348b22511759c81c7cce36f293f8eaa902fede99436b6803043db1ecc3c2bc
5
5
  SHA512:
6
- metadata.gz: 2270f5e563176336d880a745c89a698bef717a44185fbe042066b2d463fa265dd6f567465049868eb9d2489062909716b2dffe41a7aff44c312142e3cd53c3b4
7
- data.tar.gz: 9069b335fe5928aa03f3ed17e3aa803dd2b65dec9e0756dfa870bccf7ba090f67213581580119ca050a666666f74f1c32a5e22d11b553dd9e01a5e7cda2075a9
6
+ metadata.gz: 65dd7f632f96537cd043fb0e1246859e029b987fffbab216948818307c2ae1ed1ca57db8ef17883392d5ffeaa759b656602c696399a08431b83527f5862aedca
7
+ data.tar.gz: ae61adcb122c74499f17e930ad9457a0790547cac3a9c9807bf954d7bd62d34af8d431549d6e0b37c926ce1c30aadb41765091cc98467c831d1510861cb5e09a
data/CHANGELOG.md CHANGED
@@ -2,6 +2,14 @@
2
2
  All notable changes to this project will be documented in this file.
3
3
 
4
4
 
5
+ ## [4.0.3] - 05-APR-2024
6
+
7
+ ### Fixed
8
+
9
+ * `AppiumConnect.initialize_appium`, `AppiumServer.start`, and `AppiumServer.running?` methods now support Appium version 2.x.
10
+ Backward compatibility with Appium version 1.x is provided if `APPIUM_SERVER_VERSION` Environment Variable is set to `1`.
11
+
12
+
5
13
  ## [4.0.2] - 27-MAR-2024
6
14
 
7
15
  ### Changed
data/README.md CHANGED
@@ -8,7 +8,7 @@
8
8
 
9
9
 
10
10
  The TestCentricity™ Mobile core framework for native mobile iOS and Android app testing implements a Screen Object Model
11
- DSL for use with Cucumber (version 7.x or greater) and Appium. It also facilitates the configuration of the appropriate
11
+ DSL for use with Cucumber (version 7.x or greater) and Appium 2.x. It also facilitates the configuration of the appropriate
12
12
  Appium capabilities and driver required to establish a connection with locally or cloud hosted iOS and Android real devices
13
13
  or simulators.
14
14
 
@@ -28,6 +28,15 @@ A complete history of bug fixes and new features can be found in the {file:CHANG
28
28
 
29
29
  The RubyDocs for this gem can be found [here](https://www.rubydoc.info/gems/testcentricity_mobile/).
30
30
 
31
+ Two example projects that demonstrates the implementation of a screen object model framework using Cucumber and TestCentricity™
32
+ Mobile can be found at the following:
33
+ * [tc_mobile_react_native_demo](https://github.com/TestCentricity/tc_mobile_react_native_demo)
34
+ * [tc_mobile_wdio_demo](https://github.com/TestCentricity/tc_mobile_wdio_demo)
35
+
36
+ Refer to [this wiki page](https://github.com/TestCentricity/testcentricity_mobile/wiki/XCUItest-driver-bug-impacts-iOS-dialogs-managed-by-com.apple.springboard) for
37
+ information on a bug with the latest versions of the XCUItest driver that affects Appium's ability to interact with and
38
+ verify iOS system level modal dialogs.
39
+
31
40
 
32
41
  ### Which gem should I use?
33
42
 
@@ -474,11 +483,20 @@ Single `AppUIElement` declarations have the following format:
474
483
  elementType :elementName, { locator_strategy: locator_identifier }
475
484
 
476
485
  * The `elementName` is the unique name that you will use to refer to the UI element and is specified as a `Symbol`.
477
- * The `locator_strategy` specifies the [selector strategy](https://appium.io/docs/en/commands/element/find-elements/index.html#selector-strategies)
478
- that Appium will use to find the `AppUIElement`. Valid selectors are `accessibility_id:`, `id:`, `name:`, `class:`, `xpath:`,
479
- `predicate:` (iOS only), `class_chain:` (iOS only), and `css:` (WebViews in hybrid apps only).
486
+ * The `locator_strategy` specifies the selector strategy that Appium will use to find the `AppUIElement`. Valid selectors are:
487
+ - `accessibility_id:`
488
+ - `id:`
489
+ - `name:`
490
+ - `class:`
491
+ - `xpath:`
492
+ - `predicate:` (iOS only)
493
+ - `class_chain:` (iOS only)
494
+ - `css:` (WebViews in hybrid apps only).
480
495
  * The `locator_identifier` is the value or attribute that uniquely and unambiguously identifies the `AppUIElement`.
481
496
 
497
+ Refer to [this page](https://appium.github.io/appium-xcuitest-driver/5.12/locator-strategies/) for information on selector strategies for iOS.
498
+ Refer to [this page](https://github.com/appium/appium-uiautomator2-driver?tab=readme-ov-file#element-location) for information on selector strategies for Android.
499
+
482
500
  Multiple `AppUIElement` declarations for a collection of elements of the same type can be performed by passing a hash table
483
501
  containing the names and locators of each individual element.
484
502
 
@@ -974,6 +992,10 @@ Refer to [this page](https://appium.io/docs/en/2.4/guides/caps/) for information
974
992
  to invoking Cucumber to run your features/scenarios on locally hosted iOS or Android simulators or physical devices. Refer
975
993
  to [**section 8.2.3 (Starting and Stopping Appium Server)**](#starting-and-stopping-appium-server) below.
976
994
 
995
+ ⚠️ If you are running locally hosted mobile tests on iOS or Android simulators or devices using version 1.x of the Appium
996
+ server, the `APPIUM_SERVER_VERSION` environment variable must be set to `1` in order to ensure that the correct Appium server
997
+ endpoint is used.
998
+
977
999
  #### Connecting to Locally Hosted iOS Simulators or Physical Devices
978
1000
 
979
1001
  You can run your automated tests on locally hosted iOS simulators or physically connected devices using Appium and XCode
@@ -1190,6 +1212,13 @@ starting your Cucumber test suite(s):
1190
1212
 
1191
1213
  run_appium: APPIUM_SERVER=run
1192
1214
 
1215
+ If you are running locally hosted mobile tests on iOS or Android simulators or devices using version 1.x of the Appium server,
1216
+ the `APPIUM_SERVER_VERSION` environment variable must be set to `1` in order to ensure that the correct Appium server endpoint
1217
+ is used. This can be set by adding the following to your `cucumber.yml` file and including `-p appium_1x` in your command line
1218
+ when starting your Cucumber test suite(s):
1219
+
1220
+ appium_1x: APPIUM_SERVER_VERSION=1
1221
+
1193
1222
  Refer to [**section 8.4 (Using Configuration Specific Profiles in `cucumber.yml`)**](#using-configuration-specific-profiles-in-cucumber-yml) below.
1194
1223
 
1195
1224
 
@@ -1210,6 +1239,10 @@ body of an example group:
1210
1239
  $server.stop if Environ.driver == :appium && $server.running?
1211
1240
  end
1212
1241
  ```
1242
+ If you are running locally hosted mobile tests on iOS or Android simulators or devices using version 1.x of the Appium server,
1243
+ the `APPIUM_SERVER_VERSION` environment variable must be set to `1` in order to ensure that the correct Appium server endpoint
1244
+ is used.
1245
+
1213
1246
 
1214
1247
  ### Connecting to Remote Cloud Hosted iOS and Android Simulators or Physical Devices
1215
1248
 
@@ -1632,6 +1665,7 @@ with access to your version control system.
1632
1665
  # physical devices
1633
1666
  #==============
1634
1667
  run_appium: APPIUM_SERVER=run
1668
+ appium_1x: APPIUM_SERVER_VERSION=1
1635
1669
 
1636
1670
 
1637
1671
  #==============
@@ -1729,6 +1763,11 @@ You can ensure that Appium Server is running by including `-p run_appium` in you
1729
1763
 
1730
1764
  cucumber -p ipad_pro_12_15_sim -p portrait -p run_appium
1731
1765
 
1766
+ If you are running locally hosted mobile tests using version 1.x of Appium server, you must include `-p appium_1x` in
1767
+ your command line:
1768
+
1769
+ cucumber -p ipad_pro_12_15_sim -p landscape -p run_appium -p appium_1x
1770
+
1732
1771
 
1733
1772
  The following command specifies that Cucumber will run tests against a cloud hosted iPhone 13 Pro Max running iOS 15.4 on the
1734
1773
  BrowserStack service:
@@ -390,7 +390,13 @@ module TestCentricity
390
390
 
391
391
  def self.appium_local_capabilities
392
392
  # specify endpoint url
393
- @endpoint = 'http://127.0.0.1:4723/wd/hub' if @endpoint.nil?
393
+ if @endpoint.nil?
394
+ @endpoint = if ENV['APPIUM_SERVER_VERSION'] && ENV['APPIUM_SERVER_VERSION'].to_i == 1
395
+ 'http://127.0.0.1:4723/wd/hub'
396
+ else
397
+ 'http://127.0.0.1:4723'
398
+ end
399
+ end
394
400
  # define local Appium capabilities
395
401
  if @capabilities.nil?
396
402
  Environ.device_name = ENV['APP_DEVICE']
@@ -459,11 +465,7 @@ module TestCentricity
459
465
  Environ.device_name = @capabilities[:'appium:deviceName']
460
466
  Environ.device_os_version = @capabilities[:'appium:platformVersion']
461
467
  Environ.device_orientation = @capabilities[:'appium:orientation']
462
- Environ.device = if @capabilities[:'appium:udid']
463
- :device
464
- else
465
- :simulator
466
- end
468
+ Environ.device = @capabilities[:'appium:udid'] ? :device : :simulator
467
469
  @capabilities
468
470
  end
469
471
  end
@@ -38,9 +38,14 @@ module TestCentricity
38
38
  # Check to see if Appium Server is running
39
39
  #
40
40
  def running?
41
+ endpoint = if ENV['APPIUM_SERVER_VERSION'] && ENV['APPIUM_SERVER_VERSION'].to_i == 1
42
+ 'http://0.0.0.0:4723/wd/hub/sessions'
43
+ else
44
+ 'http://0.0.0.0:4723/sessions'
45
+ end
41
46
  response = false
42
47
  begin
43
- response = Net::HTTP.get_response(URI('http://0.0.0.0:4723/wd/hub/sessions'))
48
+ response = Net::HTTP.get_response(URI(endpoint))
44
49
  rescue
45
50
  end
46
51
  response && response.code_type == Net::HTTPOK
@@ -1,3 +1,3 @@
1
1
  module TestCentricityMobile
2
- VERSION = '4.0.2'
2
+ VERSION = '4.0.3'
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: testcentricity_mobile
3
3
  version: !ruby/object:Gem::Version
4
- version: 4.0.2
4
+ version: 4.0.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - A.J. Mrozinski
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2024-03-27 00:00:00.000000000 Z
11
+ date: 2024-04-05 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler