testcentricity_apps 4.0.10

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (31) hide show
  1. checksums.yaml +7 -0
  2. data/.yardopts +3 -0
  3. data/CHANGELOG.md +193 -0
  4. data/LICENSE.md +27 -0
  5. data/README.md +2297 -0
  6. data/lib/testcentricity_apps/app_core/appium_connect_helper.rb +667 -0
  7. data/lib/testcentricity_apps/app_core/screen_object.rb +494 -0
  8. data/lib/testcentricity_apps/app_core/screen_objects_helper.rb +211 -0
  9. data/lib/testcentricity_apps/app_core/screen_section.rb +669 -0
  10. data/lib/testcentricity_apps/app_elements/alert.rb +152 -0
  11. data/lib/testcentricity_apps/app_elements/app_element.rb +728 -0
  12. data/lib/testcentricity_apps/app_elements/button.rb +10 -0
  13. data/lib/testcentricity_apps/app_elements/checkbox.rb +61 -0
  14. data/lib/testcentricity_apps/app_elements/image.rb +10 -0
  15. data/lib/testcentricity_apps/app_elements/label.rb +10 -0
  16. data/lib/testcentricity_apps/app_elements/list.rb +188 -0
  17. data/lib/testcentricity_apps/app_elements/menu.rb +159 -0
  18. data/lib/testcentricity_apps/app_elements/menubar.rb +78 -0
  19. data/lib/testcentricity_apps/app_elements/radio.rb +61 -0
  20. data/lib/testcentricity_apps/app_elements/selectlist.rb +126 -0
  21. data/lib/testcentricity_apps/app_elements/switch.rb +66 -0
  22. data/lib/testcentricity_apps/app_elements/textfield.rb +51 -0
  23. data/lib/testcentricity_apps/appium_server.rb +76 -0
  24. data/lib/testcentricity_apps/data_objects/data_objects_helper.rb +100 -0
  25. data/lib/testcentricity_apps/data_objects/environment.rb +423 -0
  26. data/lib/testcentricity_apps/exception_queue_helper.rb +160 -0
  27. data/lib/testcentricity_apps/utility_helpers.rb +48 -0
  28. data/lib/testcentricity_apps/version.rb +3 -0
  29. data/lib/testcentricity_apps/world_extensions.rb +61 -0
  30. data/lib/testcentricity_apps.rb +103 -0
  31. metadata +322 -0
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA256:
3
+ metadata.gz: 930cef5ab2d657d1328b4d057efa1ca4e369e17973888b90a2f83741e958c03b
4
+ data.tar.gz: 5ff3d33f147b59aa9685b02610abf84956a92b70e5cf0d4aaf7e8eaa18dca064
5
+ SHA512:
6
+ metadata.gz: a161f4b17149fc8f4429c903d92cdd3e7d5be0faef02c45604d4b34b592f63258bb09913a5c2e009f43e13e4b2f59bdf226397e2ac0691442b83b514728de5c5
7
+ data.tar.gz: 55152aa0911d55baa3322876462f697f538c44e671a2793e8c84ce17d5e09e1503087070c4cf0b6285dea1aec5acab54e138fcacc4874a1be49f96a9142b047b
data/.yardopts ADDED
@@ -0,0 +1,3 @@
1
+ --markup markdown
2
+ --markup-provider redcarpet
3
+ --no-private - README.md CHANGELOG.md LICENSE.md
data/CHANGELOG.md ADDED
@@ -0,0 +1,193 @@
1
+ # CHANGELOG
2
+ All notable changes to this project will be documented in this file.
3
+
4
+
5
+ ## [4.0.10] - 26-JUNE-2024
6
+
7
+ ### Added
8
+ * Added `MenuBar` and `AppMenu` type `AppUIElement` to support MacOS application menubars and menus.
9
+
10
+
11
+ ## [4.0.9] - 23-JUNE-2024
12
+
13
+ ### Changed
14
+
15
+ * Updated `selenium-webdriver` gem to version 4.22.0.
16
+
17
+
18
+ ## [4.0.8] - 03-JUNE-2024
19
+
20
+ ### Fixed
21
+
22
+ * When testing using locally hosted iOS simulators or physical devices, and when not passing an options hash to specify
23
+ desired capabilities, the `AppiumConnect.initialize_appium` method now correctly sets the following XCUItest capabilities:
24
+ * `appium:webviewConnectTimeout` capability is now correctly specified as an `Integer`
25
+ * `appium:maxTypingFrequency` set to 15 keystrokes per minute to resolve an issue where characters are intermittently
26
+ dropped during text entry by `AppUIElement.set`, `AppUIElement.send_keys`, or `BaseScreenSectionObject.populate_data_fields`
27
+ methods.
28
+ * `AppList.list_item` attribute now defaults to `XCUIElementTypeOther`class for iOS/iPadOS platform and `android.view.ViewGroup`
29
+ class for Android platform.
30
+
31
+ ### Changed
32
+
33
+ * Updated `appium_lib` gem to version 15.1.0.
34
+ * Updated `appium_lib_core` gem to version 9.1.1.
35
+ * Updated `selenium-webdriver` gem to version 4.21.1.
36
+
37
+
38
+ ## [4.0.7] - 05-MAY-2024
39
+
40
+ ### Added
41
+ * Added support for radio buttons via the `AppRadio` UI element class and the following methods:
42
+ * `ScreenObject.radio`
43
+ * `ScreenObject.radios`
44
+ * `ScreenSection.radio`
45
+ * `ScreenSection.radios`
46
+ * `ScreenObject.populate_data_fields` and `ScreenSection.populate_data_fields` methods now support radio buttons.
47
+
48
+ ### Changed
49
+
50
+ * Updated `selenium-webdriver` gem to version 4.20.1.
51
+ * Updated `appium_lib_core` gem to version 8.0.2.
52
+
53
+
54
+ ## [4.0.6] - 02-MAY-2024
55
+
56
+ ### Fixed
57
+
58
+ * `ScreenSection.find_section` is now able to find `ScreenSection` objects embedded within other `ScreenSections`.
59
+
60
+
61
+ ## [4.0.5] - 29-APR-2024
62
+
63
+ ### Fixed
64
+
65
+ * `ScreenSection.disabled?` no longer returns wrong values.
66
+
67
+
68
+ ## [4.0.4] - 26-APR-2024
69
+
70
+ ### Changed
71
+
72
+ * Updated `selenium-webdriver` gem to version 4.20.0.
73
+ * Updated `appium_lib` gem to version 15.0.0.
74
+ * Updated `appium_lib_core` gem to version 8.0.1.
75
+ * No longer using deprecated Appium `driver.keyboard_shown?` method.
76
+
77
+
78
+ ## [4.0.3] - 05-APR-2024
79
+
80
+ ### Fixed
81
+
82
+ * `AppiumConnect.initialize_appium`, `AppiumServer.start`, and `AppiumServer.running?` methods now support Appium version 2.x.
83
+ Backward compatibility with Appium version 1.x is provided if `APPIUM_SERVER_VERSION` Environment Variable is set to `1`.
84
+
85
+
86
+ ## [4.0.2] - 27-MAR-2024
87
+
88
+ ### Changed
89
+
90
+ * Updated `selenium-webdriver` gem to version 4.19.0.
91
+
92
+
93
+ ## [4.0.0] - 26-MAR-2024
94
+
95
+ ### Fixed
96
+ * `DataPresenter.initialize` no longer fails if `data` parameter is `nil`.
97
+ * `ScreenObject.load_screen` now supports deeplinks on iOS physical devices.
98
+
99
+ ### Added
100
+ * Added support for specifying and connecting to mobile devices and simulators on unsupported cloud hosting services using
101
+ `custom` user-defined driver and capabilities.
102
+ * Added the following new gesture methods:
103
+ * `AppUIElement.scroll_into_view`
104
+ * `AppUIElement.drag_by`
105
+ * `AppUIElement.drag_and_drop`
106
+ * `AppUIElement.swipe_gesture`
107
+ * `ScreenObject.swipe_gesture`
108
+ * `ScreenSection.swipe_gesture`
109
+ * `ScreenSection.scroll_into_view`
110
+ * Added `AppUIElement.count` method.
111
+ * Added `AppAlert.buttons` and `AppAlert.get_caption` methods.
112
+ * Added the following biometrics methods:
113
+ * `AppiumConnect.is_biometric_enrolled?`
114
+ * `AppiumConnect.set_biometric_enrollment`
115
+ * `AppiumConnect.biometric_match`
116
+
117
+ ### Changed
118
+ * `AppiumConnect.initialize_appium` method now accepts an optional `options` hash for specifying desired capabilities
119
+ (using W3C protocol), driver, driver name, endpoint URL, global driver setting, and device type information.
120
+ * Updated `ScreenObject.verify_ui_states` and `ScreenSection.verify_ui_states` methods to support automatically scrolling
121
+ to offscreen UI elements.
122
+ * All touch and gesture methods refactored to no longer depend on deprecated `TouchAction` and `MultiTouchAction` classes.
123
+ * Ruby version 3.0.0 or greater is now required.
124
+ * Updated `appium_lib` gem to version 14.0.0.
125
+ * Updated `selenium-webdriver` gem to version 4.18.1.
126
+
127
+ ### Removed
128
+ * Support for test data assets stored in Excel `.xls` has been removed because `.xls` files cannot be properly tracked
129
+ and diffed by source control tools like git.
130
+ * `ExcelData` and `ExcelDataSource` classes removed.
131
+ * Removed dependence on `spreadsheet` gem.
132
+ * Removed the following deprecated methods:
133
+ * `AppiumConnect.switch_to_default_context`
134
+ * `AppiumConnect.reset_app`
135
+ * `AppiumConnect.launch_app`
136
+ * `AppiumConnect.close_app`
137
+
138
+
139
+ ## [3.1.1] - 04-AUGUST-2022
140
+
141
+ ### Fixed
142
+ * `AppiumConnect.available_contexts` now correctly returns a list of native app and web contexts when testing hybrid apps
143
+ with WebViews on iOS simulators.
144
+
145
+
146
+ ## [3.1.0] - 02-AUGUST-2022
147
+
148
+ ### Added
149
+ * The `DRIVER` Environment Variable is now used to specify the `appium`, `browserstack`, `saucelabs`, `testingbot`,
150
+ or `lambdatest` driver.
151
+
152
+
153
+ ## [3.0.6] - 21-JUNE-2022
154
+
155
+ ### Fixed
156
+ * `AppButton.get_caption` correctly returns captions of React Native buttons on Android platform where button caption object
157
+ hierarchy is `//android.widget.Button/android.widget.ViewGroup/android.widget.TextView`.
158
+
159
+
160
+ ## [3.0.5] - 12-JUNE-2022
161
+
162
+ ### Fixed
163
+ * Fixed `gemspec` to no longer include specs and Cucumber tests as part of deployment package for the gem.
164
+
165
+
166
+ ## [3.0.4] - 02-JUNE-2022
167
+
168
+ ### Added
169
+ * Added `AppUIElement.wait_until_enabled` method.
170
+
171
+
172
+ ## [3.0.3] - 30-MAY-2022
173
+
174
+ ### Added
175
+ * Added `AppAlert.await_and_respond` method.
176
+
177
+
178
+ ## [3.0.2] - 26-MAY-2022
179
+
180
+ ### Fixed
181
+ * Added runtime dependencies `curb` and `json` to gemspec.
182
+ * Fixed CHANGELOG url in gemspec.
183
+
184
+
185
+ ## [3.0.1] - 26-MAY-2022
186
+
187
+ ### Added
188
+ * Added support for testing on cloud hosted iOS and Android simulators and real devices on BrowserStack, SauceLabs, and TestingBot services.
189
+ * `ScreenObject.load_page` method adds support for using deep links to directly load screens/pages of native apps.
190
+ * `AppiumConnect.upload_app` method adds support for uploading native apps to BrowserStack and TestingBot services prior to running tests.
191
+
192
+ ### Changed
193
+ * Ruby version 2.7 or greater is required.
data/LICENSE.md ADDED
@@ -0,0 +1,27 @@
1
+ Copyright (c) 2014-2024, Tony Mrozinski
2
+ All rights reserved.
3
+
4
+ Redistribution and use in source and binary forms, with or without
5
+ modification, are permitted provided that the following conditions are met:
6
+
7
+ 1. Redistributions of source code must retain the above copyright notice,
8
+ this list of conditions and the following disclaimer.
9
+
10
+ 2. Redistributions in binary form must reproduce the above copyright
11
+ notice, this list of conditions and the following disclaimer in the
12
+ documentation and/or other materials provided with the distribution.
13
+
14
+ 3. Neither the name of the copyright holder nor the names of its contributors
15
+ may be used to endorse or promote products derived from this software without
16
+ specific prior written permission.
17
+
18
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
19
+ ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
20
+ WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
21
+ IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
22
+ INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
23
+ NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA,
24
+ OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
25
+ WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
26
+ ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
27
+ POSSIBILITY OF SUCH DAMAGE.