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