eyes_core 4.5.0.alpha → 4.5.0.beta
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 +4 -4
- data/lib/applitools/core/match_level.rb +2 -1
- data/lib/applitools/core/universal_eyes_checks.rb +4 -1
- data/lib/applitools/core/universal_eyes_open.rb +14 -8
- data/lib/applitools/core/universal_new_api.rb +5 -3
- data/lib/applitools/universal_sdk/universal_check_settings.rb +36 -0
- data/lib/applitools/universal_sdk/universal_client.rb +10 -4
- data/lib/applitools/universal_sdk/universal_eyes.rb +2 -2
- data/lib/applitools/universal_sdk/universal_eyes_config.rb +20 -1
- data/lib/applitools/version.rb +2 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: fb4470a9e790799f337bf3649c9d1d815b78933e1cdd394e14f02c1fcb1e9707
|
4
|
+
data.tar.gz: 8a54d18a05cafc611d51b689dcf3b47db26e7ee8c7be1fec3ff2e77b007ed2f2
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 9bbb9b54179c3d535a981e26d5ddfde2bc88be6e378074b635ff7796c2cf1ffa1b176b5d74a35e9b03b0d6d9e9ce6241149e92ccaf2b81e33ac59bb81f7e9568
|
7
|
+
data.tar.gz: 7052cf337483264abfaf9d495c3f6a6c83381266ae17cde752c589c193df264afd72f82178077400bbd67ac1b72f58e446a741046c793f06dbcf83c48e8f67fe
|
@@ -8,11 +8,12 @@ module Applitools
|
|
8
8
|
LAYOUT1 = 'Layout1'.freeze
|
9
9
|
LAYOUT2 = 'Layout2'.freeze
|
10
10
|
CONTENT = 'Content'.freeze
|
11
|
+
IGNORE_COLORS = 'IgnoreColors'.freeze
|
11
12
|
STRICT = 'Strict'.freeze
|
12
13
|
EXACT = 'Exact'.freeze
|
13
14
|
|
14
15
|
def enum_values
|
15
|
-
[NONE, LAYOUT, LAYOUT1, LAYOUT2, CONTENT, STRICT, EXACT]
|
16
|
+
[NONE, LAYOUT, LAYOUT1, LAYOUT2, CONTENT, IGNORE_COLORS, STRICT, EXACT]
|
16
17
|
end
|
17
18
|
end
|
18
19
|
end
|
@@ -13,9 +13,11 @@ module Applitools
|
|
13
13
|
|
14
14
|
raise Applitools::EyesNotOpenException.new('Eyes not open!') if @universal_eyes.nil?
|
15
15
|
Applitools::EyesLogger.logger.info "#{test_name} : check(#{name}) started ..."
|
16
|
+
settings = get_universal_check_settings(name, target)
|
17
|
+
image_target = settings[:image].nil? ? {} : { image: settings.delete(:image) }
|
16
18
|
# require 'pry'
|
17
19
|
# binding.pry
|
18
|
-
check_result = @universal_eyes.check(
|
20
|
+
check_result = @universal_eyes.check(settings, image_target)
|
19
21
|
if server_error?(check_result)
|
20
22
|
# require 'pry'
|
21
23
|
# binding.pry
|
@@ -29,6 +31,7 @@ module Applitools
|
|
29
31
|
end
|
30
32
|
|
31
33
|
logger.info 'Done!'
|
34
|
+
result
|
32
35
|
end
|
33
36
|
|
34
37
|
private
|
@@ -18,17 +18,19 @@ module Applitools
|
|
18
18
|
# trigger recording and frame handling
|
19
19
|
def universal_open(options = {})
|
20
20
|
original_driver = options.delete(:driver)
|
21
|
-
|
21
|
+
if self.class.name != 'Applitools::Images::Eyes'
|
22
|
+
Applitools::ArgumentGuard.not_nil original_driver, 'options[:driver]'
|
22
23
|
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
24
|
+
if respond_to?(:disabled?) && disabled?
|
25
|
+
logger.info('Ignored')
|
26
|
+
return original_driver
|
27
|
+
end
|
27
28
|
|
28
|
-
|
29
|
+
self.driver = Applitools::Selenium::SeleniumEyes.eyes_driver(original_driver, self)
|
30
|
+
end
|
29
31
|
|
30
32
|
update_config_from_options(options)
|
31
|
-
universal_driver_config = driver.universal_driver_config
|
33
|
+
universal_driver_config = driver.universal_driver_config if self.class.name != 'Applitools::Images::Eyes'
|
32
34
|
universal_eyes_manager = runner.get_universal_eyes_manager
|
33
35
|
|
34
36
|
universal_eyes_config = Applitools::UniversalEyesConfig.new
|
@@ -42,7 +44,11 @@ module Applitools
|
|
42
44
|
|
43
45
|
self.open = true if respond_to?(:open=, true)
|
44
46
|
self.running_session = true if respond_to?(:running_session=, true)
|
45
|
-
|
47
|
+
if self.class.name != 'Applitools::Images::Eyes'
|
48
|
+
driver
|
49
|
+
else
|
50
|
+
self.open?
|
51
|
+
end
|
46
52
|
rescue Applitools::EyesError => e
|
47
53
|
logger.error e.message
|
48
54
|
raise e
|
@@ -9,7 +9,9 @@ module Applitools
|
|
9
9
|
# minMatch?: number
|
10
10
|
# language?: string
|
11
11
|
# }
|
12
|
-
def extract_text(
|
12
|
+
def extract_text(*args)
|
13
|
+
image_target = args[0].is_a?(Hash) ? args[0] : nil
|
14
|
+
targets_array = args[0].is_a?(Hash) ? args[1].to_a : args[0]
|
13
15
|
targets_array.map do |target|
|
14
16
|
target['target'] = { elementId: target['target'].ref } if target['target'].is_a?(::Selenium::WebDriver::Element)
|
15
17
|
target['target']['x'] = target['target'].delete('left') if target['target']['left']
|
@@ -17,7 +19,7 @@ module Applitools
|
|
17
19
|
target[:region] = target.delete('target')
|
18
20
|
target
|
19
21
|
end
|
20
|
-
driver_target = driver.universal_driver_config
|
22
|
+
driver_target = respond_to?(:driver) ? driver.universal_driver_config : image_target
|
21
23
|
universal_eyes.extract_text(targets_array, driver_target)
|
22
24
|
end
|
23
25
|
|
@@ -29,7 +31,7 @@ module Applitools
|
|
29
31
|
# language?: string
|
30
32
|
# }
|
31
33
|
def extract_text_regions(patterns_array)
|
32
|
-
driver_target = driver.universal_driver_config
|
34
|
+
driver_target = respond_to?(:driver) ? driver.universal_driver_config : { image: patterns_array.delete('image') }
|
33
35
|
results = universal_eyes.extract_text_regions(patterns_array, driver_target)
|
34
36
|
Applitools::Utils.deep_stringify_keys(results)
|
35
37
|
end
|
@@ -84,6 +84,15 @@ module Applitools
|
|
84
84
|
json_fields :ufgOptions,
|
85
85
|
:userCommandId
|
86
86
|
|
87
|
+
# ImageTarget
|
88
|
+
json_fields :image
|
89
|
+
# :name,
|
90
|
+
# :source,
|
91
|
+
# :dom,
|
92
|
+
# :locationInViewport,
|
93
|
+
# :locationInView,
|
94
|
+
# :fullViewSize
|
95
|
+
|
87
96
|
def initialize(*args)
|
88
97
|
options = Applitools::Utils.extract_options! args
|
89
98
|
options.keys.select {|k| options[k] && respond_to?("#{k}=") }.each {|k| send("#{k}=", options[k]) }
|
@@ -104,6 +113,7 @@ module Applitools
|
|
104
113
|
def from_original_target(target, eyes)
|
105
114
|
# require('pry')
|
106
115
|
# binding.pry
|
116
|
+
return from_eyes_images(target, eyes) if eyes.class.name === 'Applitools::Images::Eyes'
|
107
117
|
|
108
118
|
self.accessibility_settings = eyes.accessibility_validation
|
109
119
|
self.disable_browser_fetching = eyes.dont_fetch_resources
|
@@ -166,11 +176,37 @@ module Applitools
|
|
166
176
|
self.visual_grid_options = from_target_options_or_eyes(:visual_grid_options, target.options, eyes)
|
167
177
|
self.ufg_options = self.visual_grid_options
|
168
178
|
self.user_command_id = self.variation_group_id
|
179
|
+
|
180
|
+
self.image = target.image if target.respond_to?(:image)
|
169
181
|
# rescue => e
|
170
182
|
# require('pry')
|
171
183
|
# binding.pry
|
172
184
|
end
|
173
185
|
|
186
|
+
def from_eyes_images(target, eyes)
|
187
|
+
self.accessibility_settings = eyes.accessibility_validation
|
188
|
+
self.disable_browser_fetching = eyes.dont_fetch_resources
|
189
|
+
self.accessibility_regions = target.accessibility_regions
|
190
|
+
self.floating_regions = target.floating_regions
|
191
|
+
|
192
|
+
self.ignore_regions = target.ignored_regions.map do |ir|
|
193
|
+
ir.is_a?(Proc) ? normalize_element_selector(ir.call(eyes.driver)) : ir
|
194
|
+
end
|
195
|
+
|
196
|
+
if target.region_to_check.is_a?(Hash)
|
197
|
+
self.region = target.region_to_check
|
198
|
+
elsif target.region_to_check.is_a?(String)
|
199
|
+
self.region = target.region_to_check
|
200
|
+
elsif target.region_to_check.is_a?(Proc)
|
201
|
+
el = target.region_to_check.call(eyes.driver)
|
202
|
+
self.region = normalize_element_selector(el) unless el.respond_to?(:empty?) && el.empty?
|
203
|
+
end
|
204
|
+
|
205
|
+
self.exact = (target.options[:exact] && target.options[:exact].to_hash) || (eyes.exact && eyes.exact.to_hash)
|
206
|
+
|
207
|
+
self.image = target.image
|
208
|
+
end
|
209
|
+
|
174
210
|
def to_hash
|
175
211
|
json_data.compact.reject do |_, v|
|
176
212
|
case v
|
@@ -157,7 +157,7 @@ module Applitools::Connectivity
|
|
157
157
|
command_with_result(EYES_MANAGER_CLOSE_ALL_EYES, {manager: manager, config: commands_config})
|
158
158
|
end
|
159
159
|
|
160
|
-
def eyes_check(eyes, settings)
|
160
|
+
def eyes_check(eyes, settings, image_target = {})
|
161
161
|
# interface CheckRequestPayload {
|
162
162
|
# eyes: Ref<Eyes>
|
163
163
|
# target?: ImageTarget | DriverTarget
|
@@ -166,7 +166,9 @@ module Applitools::Connectivity
|
|
166
166
|
# }
|
167
167
|
#
|
168
168
|
# type CheckResponsePayload = CheckResult[]
|
169
|
-
|
169
|
+
payload = {eyes: eyes, settings: settings, config: commands_config}
|
170
|
+
payload[:target] = image_target unless image_target.empty?
|
171
|
+
command_with_result(EYES_CHECK, payload)
|
170
172
|
end
|
171
173
|
|
172
174
|
def eyes_locate(eyes, settings, driver_target)
|
@@ -192,7 +194,9 @@ module Applitools::Connectivity
|
|
192
194
|
# }
|
193
195
|
#
|
194
196
|
# type LocateTextResponcePayload = Record<string, Array<{text: string, x: number, y: number, width: number, hieght: number}>>
|
195
|
-
|
197
|
+
payload = {eyes: eyes, target: driver_target, settings: settings, config: commands_config}
|
198
|
+
payload.delete(:target) if driver_target.nil? || driver_target.empty?
|
199
|
+
command_with_result(EYES_EXTRACT_TEXT_REGIONS, payload)
|
196
200
|
end
|
197
201
|
|
198
202
|
def eyes_extract_text(eyes, regions, driver_target)
|
@@ -204,7 +208,9 @@ module Applitools::Connectivity
|
|
204
208
|
# }
|
205
209
|
#
|
206
210
|
# type ExtractTextResponcePayload = string[]
|
207
|
-
|
211
|
+
payload = {eyes: eyes, target: driver_target, settings: regions, config: commands_config}
|
212
|
+
payload.delete(:settings) if regions.empty?
|
213
|
+
command_with_result(EYES_EXTRACT_TEXT, payload)
|
208
214
|
end
|
209
215
|
|
210
216
|
def eyes_close(eyes)
|
@@ -11,10 +11,10 @@ module Applitools
|
|
11
11
|
@universal_client = universal_client
|
12
12
|
end
|
13
13
|
|
14
|
-
def check(settings)
|
14
|
+
def check(settings, image_target = {})
|
15
15
|
elapsed_time_start = Time.now
|
16
16
|
# Applitools::EyesLogger.logger.debug "check settings: #{settings}"
|
17
|
-
check_result = @universal_client.eyes_check(@eyes, settings)
|
17
|
+
check_result = @universal_client.eyes_check(@eyes, settings, image_target)
|
18
18
|
# Applitools::EyesLogger.logger.debug "check_result: #{check_result}"
|
19
19
|
Applitools::EyesLogger.logger.info "Completed in #{format('%.2f', Time.now - elapsed_time_start)} seconds"
|
20
20
|
check_result
|
@@ -166,8 +166,27 @@ module Applitools
|
|
166
166
|
end
|
167
167
|
end
|
168
168
|
|
169
|
+
def from_eyes_images
|
170
|
+
FROM_ORIGINAL_EYES - [
|
171
|
+
:browsers_info,
|
172
|
+
:concurrent_sessions,
|
173
|
+
:debug_screenshots,
|
174
|
+
:force_full_page_screenshot,
|
175
|
+
:hide_caret,
|
176
|
+
:hide_scrollbars,
|
177
|
+
:send_dom,
|
178
|
+
:stitch_mode,
|
179
|
+
:visual_grid_options,
|
180
|
+
:wait_before_screenshots,
|
181
|
+
:wait_before_capture,
|
182
|
+
:stitching_overlap
|
183
|
+
]
|
184
|
+
|
185
|
+
end
|
186
|
+
|
169
187
|
def from_original_sdk(original_eyes)
|
170
|
-
|
188
|
+
from_eyes = original_eyes.class.name != 'Applitools::Images::Eyes' ? FROM_ORIGINAL_EYES : from_eyes_images
|
189
|
+
from_eyes.each {|m| copy_from(m, original_eyes) }
|
171
190
|
self.agent_id = original_eyes.base_agent_id if original_eyes.respond_to?(:base_agent_id)
|
172
191
|
self.agent_id = original_eyes.full_agent_id if original_eyes.respond_to?(:full_agent_id)
|
173
192
|
# self.display_name = original_eyes.app_name
|
data/lib/applitools/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: eyes_core
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 4.5.0.
|
4
|
+
version: 4.5.0.beta
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Applitools Team
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2022-11-
|
11
|
+
date: 2022-11-28 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: faraday
|