testcentricity_apps 4.0.10

Sign up to get free protection for your applications and to get access to all the features.
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.