eyes_selenium 5.0.0 → 6.0.1

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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 8441f0a1de233ae7ad4354b2eb6d1a9b6657145d8f6e556c50482edcd96371d3
4
- data.tar.gz: 2cb0048ca6f1dadf69250bc2e730cdfacadb73123dd32fc42e31ae4aadd22de4
3
+ metadata.gz: 8301350ade5d851a42d2961207e64eb28fad868542a8e945bdb3fca87d41607a
4
+ data.tar.gz: 505352470ad401bbf4cc696c203b0707a1e51ac95221eddae15c3dd51563462e
5
5
  SHA512:
6
- metadata.gz: 44c58f47ba81960692c784299984a956c3e9af4aacae7c25690dcaf89efca2a14a734def1dcfba530b63e2ab51b90bdedb231481da439fed15983fa2520c59c3
7
- data.tar.gz: b1ddee32a88320f387ecfa3493b4cc185599fcdc27f19ebf4d1b9781de8201175ea680a0b514ad26ea56edd0d2eea66667cb45a3d805a90c97649e9a083acee5
6
+ metadata.gz: 8ca75a2b4a088d99cba81dd989229868191e5a525550fb00427f936897d6e1f26f446531ff7b6faac435e4d367015f5770f72a7ad11292d9dc338dcc487d38aa
7
+ data.tar.gz: 932f0cc3b6396bd556406e55fa823e1252eff3a4db0f0c082cef5a882a8544f6d8f97b4c8e02b8876e7daf4e0ab6700aa42747c79571c707792dc02e26e51f81
data/CHANGELOG.md ADDED
@@ -0,0 +1,508 @@
1
+ # Changelog
2
+
3
+ ## [6.0.1] (2023-12-13)
4
+ ### Bug Fixes
5
+ * fix code loading error (NameError in environment_sdk)
6
+
7
+ ## [6.0.0] (2023-12-13)
8
+
9
+ ### Dependencies
10
+
11
+ ### Breaking Changes:
12
+ * #### Features
13
+ * Update version of Universal SDK Core to v4
14
+
15
+ * #### Added
16
+ * new api eyes.get_results to get results
17
+
18
+ * #### Removed
19
+ * eyes.checks now returns nil (added new eyes.get_results to get a results)
20
+
21
+ ### Features
22
+ * added notification about outdated sdk version
23
+ * log driver environment info to splank
24
+ * show aborted tests in Eyes dashboard
25
+ * allowed running multiple classic test with different devices for applitoolsified native apps
26
+ * add more logs for tunnel worker
27
+ * added warning when driver used with capabilities that may conflict with applitools lib workflow
28
+ ### Bug Fixes
29
+ * fix custom sequence_name in BatchInfo
30
+ * suppport coded regions with layoutBreakpoints reload
31
+ * update dom-snapshot to support xml pages and parens inside css URLs
32
+ * upgrade dom-capture to get font-family in DOM
33
+ * change expiration time of the tunnel
34
+ * async cache should wait for upload
35
+ * async cache race condition
36
+ * allow css scrolling when taking screenshot of the webview
37
+ * generate safe selectors as close as possible to taking dom snapshot
38
+ * added retries on ufg requests that respond with 503 status code
39
+ * fix incorrect stitchMode mapping in checkSettings
40
+ * handled duplicated style properties in inline style tags
41
+ * fixed issue that caused dom snapshots to be taken for different viewport sizes when layout breakpoints were explicitly turned off
42
+ * remove some connection timeout in case of a long running tasks
43
+ * return result when error in the ufg
44
+ * send devtool commands in chromium
45
+ * preserve css declarations order in dom-snapshot
46
+ * do not block concurrency when server response is 503
47
+ ### Code Refactoring
48
+ * reorganized code between gems
49
+
50
+ ## [5.0.0] - 2023-07-11
51
+ ### Breaking Changes:
52
+ - get_all_test_results return TestResultSummary with additional info
53
+ - TestResults Array now in get_all_test_results.results or can be accessed old-style with get_all_test_results[0]
54
+ - eyes.close always return first result, even when have failed check
55
+ - eyes.abort on closed/aborted eye now return nil
56
+ ### Added
57
+ - Add support for reloading the page when using layout_breakpoints
58
+ - add errors to TestResults
59
+ ### Updated
60
+ - Update version of Universal SDK Core to 3.6.0
61
+ ### Features
62
+ - ability to skip deserialize dom snapshot
63
+ - prevent animated gif images from playing in ufg
64
+ - support custom property per renderer
65
+ ### Bug fixes
66
+ - fixed issue that caused creation of unnecessary tunnels
67
+ - start tunnels with proper regional server
68
+ ## [4.6.3] - 2023-07-04
69
+ ### Updated
70
+ - Update version of Universal SDK Core to 3.4.0
71
+ ### Added
72
+ - Add api for mobile (set_nmg_capabilities, set_mobile_capabilities, use_system_screenshot)
73
+ ### Features
74
+ - Drop support of legacy vhs extraction
75
+ - Add an API to send logEvents
76
+ - Add support for reloading the page when using layoutBreakpoints
77
+ - Fixed issue with failed find element responses in EC
78
+ - Fixed issue when on certain browser versions test didn't target a previously created baseline
79
+ - added a new mode for taking native app screenshots
80
+ ### Bug fixes
81
+ - Increase timeout for rendering results polling
82
+ - Fixed issue when logs are not show up
83
+ - Add isProcess property when calling makeCoreServer
84
+ - Fixed issue with Safari mobile screenshots
85
+ - Fixed issue with default settings in extractText
86
+ - Fixed issue with viewport information extraction when switched to webview
87
+ - apply default scrolling mode
88
+ ## [4.6.2] - 2023-05-10
89
+ ### Added
90
+ - Add remove_duplicate_tests option & set_remove_duplicate_tests method to eyes runner
91
+ ### Updated
92
+ - Update version of Universal SDK Core to 2.5.8
93
+ ### Features
94
+ - Added functional session feature
95
+ - Add a timeout and max concurrency for fetching resources
96
+ ### Bug fixes
97
+ - Fixed issue in dom snapshot that prevented urls that start with a whitespace to be mapped
98
+ - Improved appium prefixed capabilities parsing
99
+ - Fix issue when locate return wrong type of the region, with left and top properties instead of x and y
100
+ - Fixed issue with when webview were wasn't recognized as web compatible world
101
+ - Fixed the issue with session metadata extraction
102
+ - Fixed functional test feature issues in ec client
103
+ - Fixed typo in ec custom property
104
+ - Fixed issue with hanging requests
105
+ - Fixed platform name formatting
106
+ - Prevented driver metadata extraction during check in ufg eyes
107
+ - Fixed dynamic import issue in universal binaries
108
+ - Fixed detection of emulated mobile drivers
109
+ - Remove 'Execution Cloud' custom property
110
+ ## [4.6.1] - 2023-04-12
111
+ ### Changed
112
+ - Packaging server core inside eyes_universal
113
+ ### Updated
114
+ - Update version of Universal SDK Core to 2.4.8
115
+ ### Features
116
+ - Added removeDuplicateTests property to the GetManagerResultsSettings
117
+ - Changed makeManager api to accept settings
118
+ - Improved extraction of nml element
119
+ - Update broker url using last response instead of using driver
120
+ ### Bug fixes
121
+ - Fixed screenshot framing
122
+ - Fixed issue with css fetching for dom capture
123
+ - Fixed issue with emulation driver detection
124
+ - Fixed relative url resolution in css files
125
+ - Added timeout to css fetching during preparing dom capture
126
+ - Improve performance in DOM snapshot
127
+ - Fixed retry interval during poll requests to eyes back-end
128
+ - Fixed issue with concurrency of the renders in ufg mode
129
+ - Fixed issue with concurrency of the renders in ufg mode
130
+ - Fixed ufg concurrency regression
131
+ - Replaced broker url cache with nml element cache
132
+ - Fixed selector transformation for scroll root elements for ufg
133
+ - Upgrade tunnel version
134
+ ## [4.6.0] - 2023-03-06
135
+ ### Changed
136
+ - change server package to @applitools/core
137
+ ### Updated
138
+ - Improve logging in core server
139
+ - Passing density metric for PPI support in the sdk
140
+ ### Added
141
+ - Integrate universal protocol to run core via transport
142
+ - Added Resize stitch mode value
143
+ - Add NML support for Android
144
+ - Add makeECClient api
145
+ ### Bug fixes
146
+ - upgrade dom-snapshot with a fix to CSP
147
+ - Fixed issue when .visualgrid was not added to agent id
148
+ - Fixed issue with aborting ufg tests
149
+ ## [4.5.5] - 2023-01-06
150
+ ### Updated
151
+ - Update version of Universal SDK to 3.2.2
152
+ ## [4.5.4] - 2023-01-04
153
+ ### Updated
154
+ - Update version of Universal SDK to 3.2.1
155
+ - Update arm64-darwin server recognition
156
+ ### Features
157
+ - Filter styles and resources with non-screen media queries
158
+ ### Bug fixes
159
+ - Fixed issue with parsing capabilities for iOS with native app
160
+ ## [4.5.3] - 2022-12-30
161
+ ### Fixed
162
+ - skip yanked gem versions
163
+ ## [4.5.2] - 2022-12-30
164
+ ### Updated
165
+ - Update version of Universal SDK to 3.2.0
166
+ ### Added
167
+ - Add dont_close_batches flag to eyes [Trello 3093](https://trello.com/c/3E0ilb0A)
168
+ ### Features
169
+ - Add server support for arm
170
+ - Additional internal event logs
171
+ ### Bug fixes
172
+ - Fixed OCR functionality with latest eyes server
173
+ - Fixed issue when helper lib inputs were not cleaned up before calling new command
174
+ - Fixed issue with element scroll position not being restored after screenshot is taken on native platforms
175
+ - Handed error during polling in long requests to eyes server
176
+ - Handle fake shadowRoot with UFG
177
+ ## [4.5.1] - 2022-11-28
178
+ ### Fixed
179
+ - releasing as stable all eyes
180
+ ## [4.0.0.alpha-eyes-images] - 2022-11-28
181
+ ### Added
182
+ - eyes_images updated to universal server sdk(v3)
183
+ ### Deprecated (eyes_images)
184
+ - eyes_images inputs Applitools::Screenshot and ChunkyPNG::Image now are image_path and image (examples in spec/images/eyes_images_functional_spec.rb)
185
+ ### Added (eyes_images)
186
+ - eyes_images: Applitools::MatchLevel::IGNORE_COLORS
187
+ ## [4.5.0.alpha] - 2022-11-23
188
+ - Update version of Universal SDK to v3 (sdk: 3.0.2)
189
+ ## [4.4.1] - 2022-10-03
190
+ ### Added
191
+ - Added iPhone 14 and iPhone 14 Pro Max devices [Trello 73](https://trello.com/c/M1YiwtHb)
192
+ ## [4.4.0] - 2022-09-16
193
+ ### Updated
194
+ - Update version of Universal SDK to 2.12.3
195
+ ### Added
196
+ - Created testing client for eyes-universal
197
+ ### Fixed
198
+ - Using lazyLoad.waitingTime as a delay between stitches by default
199
+ - Using proxy while polling for the result of the nml command
200
+ ## [4.3.0] - 2022-09-16
201
+ ### Updated
202
+ - Update version of Universal SDK to 2.12.0
203
+ ### Added
204
+ - Add proxy support when using NML for NMG
205
+ - Add NML NMG support for iOS
206
+ - Added support for lazy loading views in android native apps
207
+ - tests for alpine
208
+ ### Fixed
209
+ - Sending correct commands with android helper lib
210
+ - Fixed issue that prevented NMG from working when NML was enabled
211
+ ## [4.2.0] - 2022-09-05
212
+ ### Removed
213
+ - removed device name Galaxy S8, S8 Plus, Note 8
214
+ ## [4.1.4] - 2022-09-02
215
+ ### Updated
216
+ - Update version of Universal SDK to 2.10.8
217
+ ### Changed
218
+ - U-SDK server spawn once per process
219
+ - U-SDK server shutdown-mode changed
220
+ ## [4.1.4.alpha] - 2022-08-15
221
+ ### Updated
222
+ - Update version of Universal SDK to 2.10.5
223
+ ### Changed
224
+ - ci moved to github
225
+ ## [4.1.3] - 2022-08-04
226
+ ### Added
227
+ - add enum for edge-2 (EDGE_CHROMIUM_TWO_VERSIONS_BACK)
228
+ - Android 12 device name [Trello 54](https://trello.com/c/SZAPDKSI)
229
+ ### Updated
230
+ - Update version of Universal SDK to 2.10.3
231
+ ## [4.1.2] - 2022-07-07
232
+ ### Added
233
+ - add padding support for regions [Trello 2929](https://trello.com/c/kHbnEdC7), [Trello 42](https://trello.com/c/PYKqJLbg)
234
+ - add custom region id support for regions [Trello 47](https://trello.com/c/pv51sCYA)
235
+ ### Updated
236
+ - Update version of Universal SDK to 2.9.5
237
+ ### Fixed
238
+ - fix freeze in communication with universal server
239
+ - fix floating region bounds option(as 4 numbers) parsing
240
+ ## [4.1.1] - 2022-06-16
241
+ ### Added
242
+ - add support lazy loading as part of the check-api [Trello](https://trello.com/c/BIHFMhVk)
243
+ ### Updated
244
+ - Update version of Universal SDK to 2.8.0
245
+ ## [4.1.0] - 2022-06-16
246
+ ### Removed
247
+ - alpha flag from version number
248
+ ## [4.1.0.alpha] - 2022-06-13
249
+ ### Updated
250
+ - Update version of Universal SDK to 2.7.2
251
+ ## Removed
252
+ - removed eventmachine from eyes_core
253
+ ## [4.0.5.4] - 2022-06-10
254
+ ### Updated
255
+ - Update version of Universal SDK to 2.7.1
256
+ ### Fixed
257
+ - Fix default boolean field transition to server(like full page screenshot)
258
+ ## [4.0.5.3] - 2022-06-02
259
+ ### Updated
260
+ - Update version of Universal SDK to 2.5.19
261
+ ### Fixed
262
+ - fix ruby-3.1 installation collision
263
+ ## [4.0.5.2] - 2022-05-24
264
+ ### Updated
265
+ - Update version of Universal SDK to 2.5.17
266
+ ### Fixed
267
+ - Fix closing batches with closeManager
268
+ ## Removed
269
+ - removed nokogiri frozen version
270
+ - remove old&unused js(now processed by universal server)
271
+ ## [4.0.5.1] - 2022-05-18
272
+ ### Fixed
273
+ - Fix wrong gem yank
274
+ ## [4.0.5] - 2022-05-18
275
+ ### Updated
276
+ - Update version of Universal SDK to 2.5.11
277
+ ### Fixed
278
+ - Fix for default notify_on_completion value(moved to universal server)
279
+ ## [4.0.4] - 2022-05-13
280
+ ### Fixed
281
+ - Fix for mingw
282
+ ## [4.0.3] - 2022-05-13
283
+ ### Updated
284
+ - Update version of Universal SDK to 2.5.7
285
+ ### Added
286
+ - added api: wait_before_capture, page_id
287
+ - api for native ufg: add_mobile_device, add_mobile_devices
288
+ - new ios devices
289
+ - AndroidDeviceName and AndroidDeviceInfo
290
+ ### Fixed
291
+ - Fix installing universal server issues on windows
292
+ - fix getting connection info for universal server on ci
293
+ ## Removed
294
+ - png processing lib dependecies
295
+ ## [4.0.2] - 2022-02-08
296
+ ### Updated
297
+ - Update version of Universal SDK to 1.0.9
298
+ ### Fixed
299
+ - Fix installing issues with latest ruby version and installing on windows
300
+ ## [4.0.1] - 2022-02-08 - unreleased
301
+ ### Updated
302
+ - Update version of Universal SDK to 1.0.7
303
+ ## [4.0.0] - 2022-01-24
304
+ ### Changed
305
+ - Library is now based on Universal SDK
306
+ ## [3.18.4] - 2021-08-31
307
+ ### Fixed
308
+ - Fix Appium runner option [Trello 2697](https://trello.com/c/F6dLF1VF)
309
+ - Fix parsing css transition [Trello 2647](https://trello.com/c/CIzoKPNY)
310
+ - Fix require warning: No such file or directory @ dir_chdir - lib/applitools/selenium/scripts/node_modules [Trello 2148](https://trello.com/c/j5sAPSBa)
311
+ ## [3.18.3] - 2021-06-24
312
+ ### Added
313
+ - Support cross origin iframes in UFG [Trello 2259](https://trello.com/c/iJKPvd75), [Trello 2584](https://trello.com/c/QyLzmnGl)
314
+ ## [3.18.2] - 2021-05-05
315
+ ### Added
316
+ - Support variation_group_id and agentRunId [Trello 2527](https://trello.com/c/6SyxJXVZ)
317
+ ## [3.18.1] - 2021-04-28
318
+ ### Added
319
+ - Allow defining custom properties at the batch level [Trello 2445](https://trello.com/c/IKTydXLv)
320
+ ## [3.18.0] - 2021-04-20
321
+ ### Fixed
322
+ - Fix Selenium and Appium libraries conflict [Trello 2500](https://trello.com/c/UOwzI2s8)
323
+ ## Deprecated
324
+ - Ruby 1.9 support for Appium lib (Requirement 2.2+)
325
+ ## [3.17.23] - 2021-01-22
326
+ ### Fixed
327
+ - Fix viewport rect of a native app at some android devices [Trello 2079](https://trello.com/c/sQJLgtUL)
328
+ ### Updated
329
+ - Update Ruby Coverege Tests to v2
330
+ ## [3.17.22] - 2021-01-12
331
+ ### Added
332
+ - Supporting check full element with ufg [Trello 2145](https://trello.com/c/8tPAnz66)
333
+ ### Updated
334
+ - Supporting iPhone 12 in `IosDeviceName` class. [Trello 2269](https://trello.com/c/yWFy2pRE)
335
+ ### Fixed
336
+ - Restart on calling eyes.open with started driver [Trello 2162](https://trello.com/c/1SCQUUnW), [Trello 2233](https://trello.com/c/yPY3jhjW)
337
+ ## [3.17.21] - 2020-08-20
338
+ ### added
339
+ - UFG: the ability to set :visual_grid_options for the UFG SDK (Both globally and through the fluent interface) [Trello_2089](https://trello.com/c/d4zggQes/2089-ufg-sdks-visualgridoptionspolyfilladoptedstylesheets)
340
+ ## [3.17.20] - 2020-08-20
341
+ ### fixed
342
+ - Skip resources list: the errorStatusCode is passed to the server for UFG resources (if present) [Trello_2101](https://trello.com/c/vw3Ag8eO/2101-sdk-doesnt-pass-errorstatuscode-for-ufg-resources-if-an-error-occurred)
343
+ ## [3.17.19] - 2020-08-18
344
+ ### Updated
345
+ - Skip resources list for UFG is implemented [Trello_1974](https://trello.com/c/44xq8dze/1974-dom-snapshot-should-accept-a-skip-list-for-fetched-resources)
346
+ ## [3.17.18] - 2020-08-01
347
+ ### Fixed
348
+ - appium region screenshot issue [Trello_1996](https://trello.com/c/bmD4fCbs/1996-appium-native-ruby-error-with-png-signature-for-targetregion)
349
+ ## [3.17.17] - 2020-07-29
350
+ ### Fixed
351
+ - The availability to set :notify_on_completion manually for Applitools::BatchInfo. [Trello_2012](https://trello.com/c/OdYXtkFI/2012-batch-sequence-and-batch-notifications-are-not-working-in-the-ruby-selenium-sdk)
352
+ ### Updated
353
+ - Screenshot retry mechanism is now more efficient. [Trello 1866](https://trello.com/c/KyxkI6Bu)
354
+ ## [3.17.16] - 2020-07-16
355
+ ### Fixed
356
+ - The test name is not updated in case of double open->check->close call. [Trello 2011](https://trello.com/c/7UN1AbYU/2011-ruby-ufg-tests-creates-tests-out-of-order-when-classic-eyesopen-is-used)
357
+ ## [3.17.15] - 2020-07-16
358
+ ### Added
359
+ - Added `VisualViewport` for UFG client. [Trello 1957](https://trello.com/c/jWvdBwex/1957-add-visual-viewport-support-in-the-ui-for-mobile-devices)
360
+ ## [3.17.14] - 2020-07-9
361
+ ### Updated
362
+ - Added missing `StitchingService` URI field in `RenderRequest`. [Trello 1988](https://trello.com/c/Yr6EsUlL)
363
+ ## [3.17.13] - 2020-07-03
364
+ ## Fixed
365
+ - eyes_appium: Coded Floating Regions Incorrectly Placed [Trello_1960](https://trello.com/c/j6nJh1LS/1960-ruby-native-app-coded-floating-regions-incorrectly-placed)
366
+ - eyes_images: Simple eyes_images test is broken [Trello_1949](https://trello.com/c/dHQbz96i/1949-eyesimages-seem-to-be-broken)
367
+ ## [3.17.12] - 2020-07-02
368
+ ## Fixed
369
+ - :match_timeout property is moved to configuration object [Trello_1935](https://trello.com/c/2Z070Qgs/1935-ruby-selenium-matchtimeout-not-available-in-the-configuration-object)
370
+ ## [3.17.11] - 2020-06-25
371
+ ## Fixed
372
+ - IosDeviceOrientation is replaced by Orientation [Trello_1944](https://trello.com/c/EzyG7525/1944-ufg-safari-on-ios-orientations-changes)
373
+ ## [Eyes.sdk.ruby 3.17.10] - 2020-06-20
374
+ ## Fixed
375
+ - a configuration shared between Eyes instances in Rspec [Trello_1938](https://trello.com/c/qOQkbDO7/1938-a-configuration-shared-between-eyes-instances-in-rspec)
376
+ ## [Eyes.sdk.ruby 3.17.9] - 2020-06-19
377
+ ## Fixed
378
+ - Call :clone on a NilClass for ruby 2.3 [Trello_1855](https://trello.com/c/LCBhnTMd/1885-selenium-ruby-cant-clone-nilclass)
379
+ ## [Eyes.sdk.ruby 3.17.7] - 2020-06-18
380
+ ## Added
381
+ - eyes.ignore_displacements= and eyes.ignore_displacements methods [Trello_841](https://trello.com/c/uwrYb1Vj/841-add-a-general-method-for-ignoredisplacements?menu=filter&filter=visual%20loca,due:notdue)
382
+ ## Fixed
383
+ - Encoded regions for 'selector' mode [Trello_1915](https://trello.com/c/BQIrbCfC/1915-ruby-ultrafast-grid-incorrect-placement-of-coded-regions-for-targetregion)
384
+ ## [Eyes.sdk.ruby 3.17.6] - 2020-06-16
385
+ ## Fixed
386
+ - config.add_device_emulation(name, orientation) is fixed [Trello_1914](https://trello.com/c/l7WRvhSP/1914-ruby-ultrafast-grid-adddeviceemulation-throws-error-after-upgrading-to-3175?menu=filter&filter=due:notdue)
387
+ ## Added
388
+ - Appium driver support is ectended (Applitools::Appium::Eyes.new(driver: Appium::Driver.new)) [Trello_1913](https://trello.com/c/wQTgRNrN/1913-appium-ruby-regression-unknown-driver-appiumdriver0x00007fbaf9903448-applitoolseyeserror?menu=filter&filter=due:notdue)
389
+ ## [Eyes.sdk.ruby 3.17.5] - 2020-06-15
390
+ ## Added
391
+ - The ability to set :baseline_env_name for DesktopBrowserInfo, IosDeviceInfo and ChromeEmulationInfo
392
+ ## Fixed
393
+ - IosScreenOrientation instead of the IosScreenshotOrientation
394
+ ## [Eyes.sdk.ruby 3.17.4] - 2020-06-11
395
+ ## Fixed
396
+ - restricted to set emulation_info && ios_device_info for DesktopBrowserInfo
397
+ ## [Eyes.sdk.ruby 3.17.3] - 2020-06-06
398
+ ## Deprecated
399
+ - BrowserTypes module is deprecated in a favor of BrowserType
400
+ - Orientations module is deprecated in a favor of Orientation
401
+ ## Fixed
402
+ - IosDeviceOrientation instead of IosDeviceOrientations(plural)
403
+ ## Deprecated
404
+ ## [Eyes.sdk.ruby 3.17.2] - 2020-06-06
405
+ ## Added
406
+ - safari on ios device emulation for UFG [Trello_1872](https://trello.com/c/bykk2rzB/1872-ufg-safari-on-ios-simulators-support)
407
+ ## [Eyes.sdk.ruby 3.17.1] - 2020-05-26
408
+ ## Fixed
409
+ - eyes.properties for VG [Trello_1804](https://trello.com/c/Jt2BYz0e/1804-ruby-selenium-addproperty-method-not-recognized-when-running-with-visualgridrunner)
410
+ - SessionStartInfo parameters were not passed to Json correctly
411
+ ## [Eyes.sdk.ruby 3.17.0] - 2020-05-18
412
+ ## Added
413
+ - eyes.accessibility_validation(Applitools::AccessibilitySettings.new(Applitools::AccessibilityLevel::AA, Applitools::AccessibilityVersion::WCAG_2_0)) - [Trello_1767](https://trello.com/c/gq69woeK/1767-all-sdks-accessibility-accessiblity-guidelines-version-support-and-additional-verifications?menu=filter&filter=due:notdue)
414
+ ## Removed
415
+ - eyes.accessibility_level
416
+ ## [Eyes.sdk.ruby 3.16.16] - 2020-04-28
417
+ ## Added
418
+ - Regions support for eyes_appium (Target#ignore, Target#floating, Target#accessibility, Target#layout, etc.)
419
+ ## [Eyes.sdk.ruby 3.16.15] - 2020-04-24
420
+ ## Deprecated
421
+ - BrowserTypes::EDGE is deprecated. Please change it to either "EDGE_LEGACY" for the legacy version or to "EDGE_CHROMIUM" for the new Chromium-based version. [Trello 1757](https://trello.com/c/LUe43aee/1757-all-ultrafast-sdks-edge-chromium-support)
422
+ ## [Eyes.sdk.ruby 3.16.14] - 2020-04-10
423
+ ## Added
424
+ - new_session? flag is taken from start_session server response with fallback to the status code [Trello_1715](https://trello.com/c/DcVzWbeR/1715-all-sdks-updated-long-running-task-mode-for-startsession)
425
+ ## [Eyes.sdk.ruby 3.16.13] - 2020-04-06
426
+ ## Fixed
427
+ - eyes#hide_scrollbars is true by default [Trello 1592](https://trello.com/c/MXixwLnj/1592-upload-dom-directly-to-azure)
428
+ - eyes#ignore_caret has been included tothe configuration object [Trello)_1706](https://trello.com/c/16JqYlYb/1706-ignorecaret-globally-is-missing-ruby)
429
+ - Irrelevant URLs are excluded from SVG resource parsing results [Trello 1691](https://trello.com/c/EAIpEh8s/1691-ruby-vg-parsing-of-irrelevant-urls-from-css-and-svg-resources)
430
+ ## Added
431
+ - x-applitools-eyes-client header for all API requests [Trello_1697](https://trello.com/c/CzhUxOqE/1697-all-sdks-should-report-their-version-in-all-requests-to-the-eyes-server)
432
+ ## [Eyes.sdk.ruby 3.16.12] - 2020-03-30
433
+ ## Fixed
434
+ - eyes#send_dom didn't work [Trello 1659](https://trello.com/c/9CfD0fhn/1659-disable-dom-capturing-is-not-working-on-the-test-level-ruby)
435
+ ## [Eyes.sdk.ruby 3.16.11] - 2020-03-27
436
+ ## Fixed
437
+ - dom_capture threw an exception on a particular page [Trello 1658](https://trello.com/c/x0uYFwx0/1658-test-is-being-aborted-when-trying-to-capture-dom-ruby)
438
+ ## [Eyes.sdk.ruby 3.16.10] - 2020-03-24
439
+ ## Added
440
+ - The ability to use different Faraday adapters instead the default one [Trello 1683](https://trello.com/c/6IASHoBB/1683-add-http2-support-to-the-communication-library)
441
+ - The ability to set up timeout for HTTP request
442
+ - The ability to set up timeout for an Applitools::Future
443
+ ## [Eyes.sdk.ruby 3.16.9] - 2020-03-17
444
+ ## Fixed
445
+ - Agent ID for eyes_appium set to eyes.appium.ruby/version
446
+ ## [Eyes.sdk.ruby 3.16.8] - 2020-03-13
447
+ ## Fixed
448
+ - SDK fetch resources: the request header 'Accept-Language' is used along with 'User-Agent'
449
+ - Timeout for Thread.join is increased up to Faraday's connection timeout
450
+ - Error handling for resources that failed to fetch
451
+ ## Added
452
+ - Log messages for resource fetching now include the URL and status code
453
+ ## [Eyes.sdk.ruby 3.16.7] - 2020-03-06
454
+ ### Added
455
+ - dom_snapshot is uploaded directly to Azure storage
456
+ ### Fixed
457
+ - dom_snapshot script updated to 7.1.3
458
+ - send_dom is true by default for EyesSelenium
459
+ ## [Eyes.sdk.ruby 3.16.6] - 2020-03-05
460
+ ### Fixed
461
+ - eyes#check might be called as #check(tag, target) as well as #check(target)
462
+ - Selenium Eyes: ignore regions in the current target caused an exception
463
+ ## [Eyes.sdk.ruby 3.16.5] - 2020-03-02
464
+ ### Fixed
465
+ - double slash issue for custom server URL
466
+ ## [Eyes.sdk.ruby 3.16.2] - 2020-02-06
467
+ ### Fixed
468
+ - DefaultMatchSettings being overridden incorrectly by ImageMatchSettings
469
+ ## [Eyes.sdk.ruby 3.16.1] - 2020-01-29
470
+ ### Fixed
471
+ - eyes_appium crashed trying to get viewport_size
472
+ ### Added
473
+ - long_requests are used for start session
474
+ ## [Eyes.sdk.ruby 3.16.0] - 2020-01-24
475
+ ### Added
476
+ - Screenshot uploading direct to cloud store
477
+ ## [Eyes.sdk.ruby 3.15.48] - 2020-01-20
478
+ ### Added
479
+ - New browser types for the VisualGrid (CHROME, CHROME_ONE_VERSION_BACK, CHROME_TWO_VERSIONS_BACK, FIREFOX, FIREFOX_ONE_VERSION_BACK, FIREFOX_TWO_VERSIONS_BACK, SAFARI, SAFARI_ONE_VERSION_BACK, SAFARI_TWO_VERSIONS_BACK, IE_10, IE_11, EDGE)
480
+ ## [Eyes.sdk.ruby 3.15.47] - 2020-01-08
481
+ ### Fixed
482
+ - eyes_images throws "undefined method `each' for nil:NilClass (NoMethodError)"
483
+ ## [Eyes.sdk.ruby 3.15.43] - 2019-12-20
484
+ ### Removed
485
+ - delta compression for screenshots
486
+ ## [Eyes.sdk.ruby 3.15.43] - 2019-12-19
487
+ ### Added
488
+ - eyes.abort_async method implementation
489
+ ### Fixed
490
+ - save_new_tests is true by default
491
+ - tests are aborted instead of being closed on render fail
492
+ ## [Eyes.sdk.ruby 3.15.43] - 2019-12-12
493
+ ### Added
494
+ - Return empty test if the render fails
495
+ - eyes.abort method
496
+ ## [Eyes.sdk.ruby 3.15.42] - 2019-12-10
497
+ ### Fixed
498
+ - CSS paring & fetching font urls
499
+ - VisualGridEyes#config renamed to #configuration
500
+ - VisualGridEyes.configuration returns a clone of a configuration object
501
+ ## [Eyes.sdk.ruby 3.15.41] - 2019-11-06
502
+ ### Fixed
503
+ - Various VG related bugs
504
+ ## [Eyes.sdk.ruby 3.15.39] - 2019-11-06
505
+ ### Added
506
+ - This CHANGELOG file.
507
+ ### Fixed
508
+ - Chrome 78 css stitching bug
data/Rakefile ADDED
@@ -0,0 +1,86 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'rake/clean'
4
+ require 'securerandom'
5
+
6
+ require 'bundler/gem_helper'
7
+ # Monkey patch the Bundler release class to change tags for eyes_images
8
+ module Bundler
9
+ class GemHelper
10
+
11
+ def version_tag
12
+ ruby_tag = "@applitools/ruby"
13
+ "#{ruby_tag}/#{gemspec.name}@#{version}"
14
+ end
15
+
16
+ end
17
+ end
18
+
19
+ Bundler::GemHelper.install_tasks
20
+
21
+ namespace 'github' do
22
+ task :set_batch_info do
23
+ batch_id = SecureRandom.uuid
24
+ # next if ENV['APPLITOOLS_BATCH_ID'] && !ENV['APPLITOOLS_BATCH_ID'].empty?
25
+ ENV['APPLITOOLS_DONT_CLOSE_BATCHES'] = 'true'
26
+ ENV['APPLITOOLS_BATCH_ID'] = batch_id unless ENV['APPLITOOLS_BATCH_ID'] && !ENV['APPLITOOLS_BATCH_ID'].empty?
27
+ ENV['APPLITOOLS_BATCH_NAME'] = "Eyes Ruby SDK(#{RUBY_VERSION} | #{RUBY_PLATFORM})"
28
+ end
29
+
30
+ task :check do
31
+ puts "Batch ID: #{ENV['APPLITOOLS_BATCH_ID']}"
32
+ puts "Batch NAME: #{ENV['APPLITOOLS_BATCH_NAME']}"
33
+ end
34
+
35
+ # require 'rspec/core/rake_task'
36
+ # namespace :unit_tests do
37
+ # RSpec::Core::RakeTask.new(:core) do |t|
38
+ # t.pattern = 'spec/core'
39
+ # end
40
+ #
41
+ # RSpec::Core::RakeTask.new(:visual_grid) do |t|
42
+ # t.pattern = 'spec/visual_grid'
43
+ # end
44
+ #
45
+ # RSpec::Core::RakeTask.new(:selenium) do |t|
46
+ # t.pattern = 'spec/selenium'
47
+ # end
48
+ #
49
+ # RSpec::Core::RakeTask.new(:regression) do |t|
50
+ # t.pattern = 'spec/regression'
51
+ # end
52
+ #
53
+ # RSpec::Core::RakeTask.new(:bugfix) do |t|
54
+ # t.pattern = 'spec/bugfix'
55
+ # end
56
+ #
57
+ # RSpec::Core::RakeTask.new(:calabash) do |t|
58
+ # t.pattern = 'spec/calabash'
59
+ # end
60
+ #
61
+ # RSpec::Core::RakeTask.new(:images) do |t|
62
+ # t.pattern = 'spec/images'
63
+ # end
64
+ #
65
+ # task :github => [:regression, :bugfix, :core, :selenium, :visual_grid, :calabash, :images]
66
+ # end
67
+ #
68
+ # task :unit_tests => [:set_batch_info, :check, 'unit_tests:github']
69
+ #
70
+ # task :vg_tests => [:set_batch_info, :check] do
71
+ # sh('bundle exec parallel_rspec -n 1 -- --tag visual_grid -- spec/integration/*_spec.rb')
72
+ # end
73
+
74
+ # task :travis_selenium => ['webdrivers:chromedriver:update', :set_batch_info, :check] do
75
+ # sh('bundle exec parallel_rspec -n 4 -- --tag selenium -- spec/integration/*_spec.rb')
76
+ # end
77
+ #
78
+ # task :travis_vg => ['webdrivers:chromedriver:update', :set_batch_info, :check] do
79
+ # sh('bundle exec parallel_rspec -n 1 -- --tag visual_grid -- spec/integration/*_spec.rb')
80
+ # end
81
+
82
+ # task :vg_tests => ['webdrivers:chromedriver:update', :set_batch_info, :check] do
83
+ # sh('bundle exec parallel_rspec -n 1 -- --tag visual_grid -- spec/integration/*_spec.rb')
84
+ # end
85
+
86
+ end
@@ -0,0 +1,33 @@
1
+ # frozen_string_literal: true
2
+
3
+ lib = File.expand_path('../lib', __FILE__)
4
+ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
5
+
6
+ require 'applitools/eyes_selenium/version'
7
+
8
+ Gem::Specification.new do |spec|
9
+ spec.name = 'eyes_selenium'
10
+ spec.version = Applitools::EyesSelenium::VERSION
11
+ spec.authors = ['Applitools Team']
12
+ spec.email = ['team@applitools.com']
13
+ spec.description = 'Provides SDK for writing Applitools Selenium-based tests'
14
+ spec.summary = 'Applitools Ruby Selenium SDK'
15
+ spec.homepage = 'https://www.applitools.com'
16
+ spec.license = 'Applitools'
17
+
18
+ spec.files = `git ls-files lib/applitools/selenium`.split($RS) + [
19
+ 'lib/eyes_selenium.rb',
20
+ 'lib/applitools/eyes_selenium/version.rb',
21
+ 'CHANGELOG.md',
22
+ 'eyes_selenium.gemspec',
23
+ 'Rakefile',
24
+ ]
25
+ spec.executables = spec.files.grep(%r{^bin/}) { |f| File.basename(f) }
26
+ spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
27
+ spec.require_paths = %w(lib)
28
+ spec.add_dependency 'eyes_core', "= #{Applitools::EyesSelenium::VERSION}"
29
+ spec.add_dependency 'selenium-webdriver', '>= 3'
30
+ spec.add_dependency 'css_parser'
31
+ spec.add_dependency 'crass'
32
+ spec.add_dependency 'state_machine'
33
+ end
@@ -0,0 +1,8 @@
1
+ # frozen_string_literal: false
2
+
3
+ module Applitools
4
+ module EyesSelenium
5
+ VERSION = '6.0.1'.freeze
6
+ # UNIVERSAL_CORE_VERSION = '3.6.4'.freeze
7
+ end
8
+ end
@@ -23,6 +23,7 @@ module BrowserType
23
23
  SAFARI = :'safari'
24
24
  SAFARI_ONE_VERSION_BACK = :'safari-one-version-back'
25
25
  SAFARI_TWO_VERSIONS_BACK = :'safari-two-versions-back'
26
+ SAFARI_EARLY_ACCESS = :'safari-earlyaccess'
26
27
  IOS_SAFARI = :safari
27
28
 
28
29
  EDGE_CHROMIUM = :'edgechromium'
@@ -61,6 +62,7 @@ module BrowserType
61
62
  SAFARI,
62
63
  SAFARI_ONE_VERSION_BACK,
63
64
  SAFARI_TWO_VERSIONS_BACK,
65
+ SAFARI_EARLY_ACCESS,
64
66
  IE_11,
65
67
  EDGE_LEGACY,
66
68
  IE_10,
@@ -131,6 +131,13 @@ module Applitools::Selenium
131
131
  self.utils = Applitools::Utils::EyesSeleniumUtils
132
132
  end
133
133
 
134
+ def self.environment_sdk
135
+ {
136
+ name: :eyes_selenium,
137
+ currentVersion: Applitools::EyesSelenium::VERSION
138
+ }
139
+ end
140
+
134
141
  def ensure_config
135
142
  self.config = Applitools::Selenium::Configuration.new
136
143
  end
@@ -329,7 +329,11 @@ module Applitools
329
329
  end
330
330
 
331
331
  def layout_breakpoints(value = true)
332
- options[:layout_breakpoints] = value.is_a?(Array) ? value : value
332
+ if value.is_a?(Hash) && (value.has_key?(:breakpoints) || value.has_key?('breakpoints'))
333
+ options[:layout_breakpoints] = value
334
+ else
335
+ options[:layout_breakpoints] = { breakpoints: value }
336
+ end
333
337
  self
334
338
  end
335
339
 
@@ -53,6 +53,13 @@ module Applitools
53
53
  self.utils = Applitools::Utils::EyesSeleniumUtils
54
54
  end
55
55
 
56
+ def self.environment_sdk
57
+ {
58
+ name: :eyes_selenium,
59
+ currentVersion: Applitools::EyesSelenium::VERSION
60
+ }
61
+ end
62
+
56
63
  def ensure_config
57
64
  self.config = Applitools::Selenium::Configuration.new
58
65
  self.send_dom = true
@@ -325,15 +332,18 @@ module Applitools
325
332
  logger.info "close(#{throw_exception})"
326
333
  logger.info 'Ending server session...'
327
334
 
335
+ raise Applitools::EyesNotOpenException.new 'Eyes not open' unless open?
328
336
  universal_results = universal_eyes.close # Array even for one test
329
- universal_results = universal_eyes.eyes_get_results # Array even for one test
330
- # require 'pry'
331
- # binding.pry
332
- raise Applitools::EyesError.new("Request failed: #{universal_results[:message]}") if server_error?(universal_results)
333
- results = universal_results.map {|result| Applitools::TestResults.new(result) }
334
- # results = results.first if results.size == 1
335
- # session_results_url = results.url
336
- all_results = results.compact
337
+ self.opened = false
338
+ all_results = get_results(throw_exception)
339
+ # universal_results = universal_eyes.eyes_get_results # Array even for one test
340
+ # # require 'pry'
341
+ # # binding.pry
342
+ # raise Applitools::EyesError.new("Request failed: #{universal_results[:message]}") if server_error?(universal_results)
343
+ # results = universal_results.map {|result| Applitools::TestResults.new(result) }
344
+ # # results = results.first if results.size == 1
345
+ # # session_results_url = results.url
346
+ # all_results = results.compact
337
347
 
338
348
 
339
349
  # return false if test_list.empty?
@@ -351,7 +361,30 @@ module Applitools
351
361
  # end
352
362
  #
353
363
  # all_results = test_list.map(&:test_result).compact
354
- failed_results = all_results.select { |r| !r.as_expected? }
364
+ # failed_results = all_results.select { |r| !r.as_expected? }
365
+ #
366
+ # if throw_exception
367
+ # all_results.each do |r|
368
+ # raise Applitools::NewTestError.new new_test_error_message(r), r if r.new?
369
+ # raise Applitools::DiffsFoundError.new diffs_found_error_message(r), r if r.unresolved? && !r.new?
370
+ # raise Applitools::TestFailedError.new test_failed_error_message(r), r if r.failed?
371
+ # end
372
+ # end
373
+
374
+ # failed_results.empty? ? all_results.first : failed_results.first
375
+ all_results.first
376
+ end
377
+
378
+ def get_results(throw_exception = true)
379
+ logger.info "get_results(#{throw_exception})"
380
+ logger.info 'Getting results...'
381
+
382
+ universal_results = universal_eyes.eyes_get_results # Array even for one test
383
+ # require 'pry'
384
+ # binding.pry
385
+ raise Applitools::EyesError.new("Request failed: #{universal_results[:message]}") if server_error?(universal_results)
386
+ results = universal_results.map {|result| Applitools::TestResults.new(result) }
387
+ all_results = results.compact
355
388
 
356
389
  if throw_exception
357
390
  all_results.each do |r|
@@ -360,9 +393,7 @@ module Applitools
360
393
  raise Applitools::TestFailedError.new test_failed_error_message(r), r if r.failed?
361
394
  end
362
395
  end
363
-
364
- # failed_results.empty? ? all_results.first : failed_results.first
365
- all_results.first
396
+ all_results
366
397
  end
367
398
 
368
399
  def abort_async
data/lib/eyes_selenium.rb CHANGED
@@ -12,8 +12,11 @@ module Applitools
12
12
  module Selenium
13
13
  extend Applitools::RequireUtils
14
14
  class UnsupportedCoordinateType < EyesError; end
15
- def self.load_dir
16
- File.dirname(File.expand_path(__FILE__))
15
+ def self.require_dir(dir)
16
+ load_dir = File.dirname(File.expand_path(__FILE__))
17
+ Dir[File.join(load_dir, 'applitools', dir, '*.rb')].sort.each do |f|
18
+ require f
19
+ end
17
20
  end
18
21
  end
19
22
  end
@@ -21,6 +24,7 @@ end
21
24
  Applitools::Selenium.require_dir 'selenium/concerns'
22
25
  Applitools::Selenium.require_dir 'selenium/scripts'
23
26
  Applitools::Selenium.require_dir 'selenium'
27
+ Applitools::Selenium.require_dir 'eyes_selenium'
24
28
  Applitools::Selenium.require_dir 'selenium/visual_grid'
25
29
  Applitools::Selenium.require_dir 'selenium/dom_capture'
26
30
  Applitools::Selenium.require_dir 'selenium/css_parser'
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: eyes_selenium
3
3
  version: !ruby/object:Gem::Version
4
- version: 5.0.0
4
+ version: 6.0.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Applitools Team
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2023-07-11 00:00:00.000000000 Z
11
+ date: 2023-12-13 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: eyes_core
@@ -16,14 +16,14 @@ dependencies:
16
16
  requirements:
17
17
  - - '='
18
18
  - !ruby/object:Gem::Version
19
- version: 5.0.0
19
+ version: 6.0.1
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
24
  - - '='
25
25
  - !ruby/object:Gem::Version
26
- version: 5.0.0
26
+ version: 6.0.1
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: selenium-webdriver
29
29
  requirement: !ruby/object:Gem::Requirement
@@ -87,6 +87,10 @@ executables: []
87
87
  extensions: []
88
88
  extra_rdoc_files: []
89
89
  files:
90
+ - CHANGELOG.md
91
+ - Rakefile
92
+ - eyes_selenium.gemspec
93
+ - lib/applitools/eyes_selenium/version.rb
90
94
  - lib/applitools/selenium/border_aware_element_content_location_provider.rb
91
95
  - lib/applitools/selenium/browser.rb
92
96
  - lib/applitools/selenium/browser_types.rb
@@ -127,7 +131,6 @@ files:
127
131
  - lib/applitools/selenium/scripts/.gitignore
128
132
  - lib/applitools/selenium/scripts/get_element_xpath.rb
129
133
  - lib/applitools/selenium/scripts/package.json
130
- - lib/applitools/selenium/scripts/templates.rb
131
134
  - lib/applitools/selenium/scroll_position_provider.rb
132
135
  - lib/applitools/selenium/selenium_eyes.rb
133
136
  - lib/applitools/selenium/stitch_modes.rb
@@ -161,7 +164,6 @@ files:
161
164
  - lib/applitools/selenium/visual_grid/visual_grid_eyes.rb
162
165
  - lib/applitools/selenium/visual_grid/visual_grid_runner.rb
163
166
  - lib/applitools/selenium/visual_grid/web_element_region.rb
164
- - lib/applitools/version.rb
165
167
  - lib/eyes_selenium.rb
166
168
  homepage: https://www.applitools.com
167
169
  licenses:
@@ -182,7 +184,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
182
184
  - !ruby/object:Gem::Version
183
185
  version: '0'
184
186
  requirements: []
185
- rubygems_version: 3.3.14
187
+ rubygems_version: 3.0.3.1
186
188
  signing_key:
187
189
  specification_version: 4
188
190
  summary: Applitools Ruby Selenium SDK
@@ -1,34 +0,0 @@
1
- module Applitools
2
- module Selenium
3
- module ScriptTemplates
4
- extend self
5
- def get_script_by_file_name(fname)
6
- script = nil
7
- return script unless Dir.exist?(Applitools::JS_PATH)
8
- begin
9
- Dir.chdir(Applitools::JS_PATH) do
10
- script = File.open(File.join('@applitools', 'dom-snapshot', 'dist', "#{fname}.js"), 'r').read
11
- end
12
- rescue StandardError => e
13
- puts e.class
14
- puts e.message
15
- script = ''
16
- end
17
- script
18
- end
19
-
20
- # JS_FILES_PATH = File.join(Applitools::JS_PATH, '@applitools', 'dom-snapshot', 'dist')
21
- # PROCESS_PAGE_AND_POLL_RB = <<"SCRIPT"
22
- # module Applitools
23
- # module Selenium
24
- # module Scripts
25
- # PROCESS_PAGE_AND_POLL = <<'END'
26
- # #{get_script_by_file_name('processPageAndSerializePoll')}
27
- # END
28
- # end
29
- # end
30
- # end
31
- # SCRIPT
32
- end
33
- end
34
- end
@@ -1,8 +0,0 @@
1
- # frozen_string_literal: false
2
-
3
- module Applitools
4
- VERSION = '5.0.0'.freeze
5
- IMAGES_VERSION = '5.0.0'.freeze
6
- UNIVERSAL_VERSION = '3.6.0'.freeze
7
- UNIVERSAL_CORE_VERSION = '3.6.0'.freeze
8
- end