eyes_selenium 3.17.5 → 3.17.11
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/selenium/configuration.rb +7 -1
- data/lib/applitools/selenium/target.rb +6 -1
- data/lib/applitools/selenium/visual_grid/chrome_emulation_info.rb +6 -3
- data/lib/applitools/selenium/visual_grid/eyes_connector.rb +0 -1
- data/lib/applitools/selenium/visual_grid/ios_device_info.rb +4 -4
- data/lib/applitools/selenium/visual_grid/vg_match_window_data.rb +32 -1
- data/lib/applitools/selenium/visual_grid/visual_grid_eyes.rb +6 -1
- data/lib/applitools/version.rb +1 -1
- metadata +4 -5
- data/lib/applitools/selenium/visual_grid/ios_screen_orientation.rb +0 -14
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 179a2322de13d9299fdcc66e2a9dde36f4440a7a451a1ce53a7c5ca7da7b6c23
|
4
|
+
data.tar.gz: 4a2c18e3617073c3bdbab7272301b6159752458e6ce4b72a7386b0381fe9e8fb
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 2f7da3b0a527dd932b137f4c80f609083205282a1ef437d3bf1d90ef2fc5f31840655518dc34e1639e0cf10fa1e5f2abfbf24057c8a2c71c8e654d30a28e8871
|
7
|
+
data.tar.gz: b7d6cc9a3b7f3c42d338c1990c313c96f4a8e0ac5d17c798cfbaa4b47aca11091b1bdb9f4301f830367dc8f32a38e74a250724729fc127ba300e1d7f1b355acd
|
@@ -57,7 +57,13 @@ module Applitools
|
|
57
57
|
self
|
58
58
|
end
|
59
59
|
|
60
|
-
def add_browsers(browsers)
|
60
|
+
def add_browsers(*browsers)
|
61
|
+
browsers = case browsers.first
|
62
|
+
when Applitools::Selenium::IRenderBrowserInfo
|
63
|
+
browsers
|
64
|
+
when Array
|
65
|
+
browsers.first
|
66
|
+
end
|
61
67
|
browsers.each do |browser|
|
62
68
|
add_browser(browser)
|
63
69
|
end
|
@@ -21,7 +21,7 @@ module Applitools
|
|
21
21
|
|
22
22
|
attr_accessor :element, :frames, :region_to_check, :coordinate_type, :options, :ignored_regions,
|
23
23
|
:floating_regions, :frame_or_element, :regions, :layout_regions, :content_regions,
|
24
|
-
:strict_regions, :accessibility_regions
|
24
|
+
:strict_regions, :accessibility_regions, :convert_coordinates_block
|
25
25
|
|
26
26
|
private :frame_or_element, :frame_or_element=
|
27
27
|
|
@@ -33,6 +33,7 @@ module Applitools
|
|
33
33
|
script_hooks: { beforeCaptureScreenshot: '' }
|
34
34
|
}
|
35
35
|
self.regions = {}
|
36
|
+
self.convert_coordinates_block = nil
|
36
37
|
reset_for_fullscreen
|
37
38
|
end
|
38
39
|
|
@@ -374,6 +375,10 @@ module Applitools
|
|
374
375
|
nil
|
375
376
|
end
|
376
377
|
|
378
|
+
def convert_coordinates(&block)
|
379
|
+
self.convert_coordinates_block = block
|
380
|
+
end
|
381
|
+
|
377
382
|
private
|
378
383
|
|
379
384
|
def reset_for_fullscreen
|
@@ -25,18 +25,21 @@ module Applitools
|
|
25
25
|
# end
|
26
26
|
#
|
27
27
|
def initialize(*args)
|
28
|
-
|
28
|
+
options = Applitools::Utils.extract_options!(args.dup)
|
29
|
+
super(options)
|
29
30
|
case args[0]
|
30
31
|
when String
|
31
32
|
self.emulation_info = EmulationInfo.new.tap do |ei|
|
32
33
|
ei.device_name = args[0]
|
33
|
-
ei.screen_orientation = args[1] ||
|
34
|
+
ei.screen_orientation = args[1] || Orientation::PORTRAIT
|
34
35
|
end
|
35
36
|
when Hash
|
36
37
|
self.emulation_info = EmulationInfo.new.tap do |ei|
|
37
38
|
ei.device_name = args[0][:device_name]
|
38
|
-
ei.screen_orientation = args[0][:screen_orientation] ||
|
39
|
+
ei.screen_orientation = args[0][:screen_orientation] || Orientation::PORTRAIT
|
39
40
|
end
|
41
|
+
else
|
42
|
+
raise Applitools::EyesIllegalArgument, 'You should pass :device_name and :screen_orientation'
|
40
43
|
end
|
41
44
|
end
|
42
45
|
|
@@ -1,12 +1,12 @@
|
|
1
1
|
require_relative 'ios_device_name'
|
2
|
-
|
2
|
+
|
3
3
|
module Applitools
|
4
4
|
module Selenium
|
5
5
|
class IosDeviceInfo < IRenderBrowserInfo
|
6
6
|
DEFAULT_CONFIG = proc do
|
7
7
|
{
|
8
8
|
platform: 'ios',
|
9
|
-
browser_type:
|
9
|
+
browser_type: BrowserType::IOS_SAFARI,
|
10
10
|
# size_mode: 'full-page',
|
11
11
|
viewport_size: Applitools::RectangleSize.from_any_argument(width: 0, height: 0)
|
12
12
|
}
|
@@ -24,7 +24,7 @@ module Applitools
|
|
24
24
|
super
|
25
25
|
self.ios_device_info = EmulationInfo.new.tap do |ei|
|
26
26
|
ei.device_name = options[:device_name]
|
27
|
-
ei.screen_orientation = options[:screen_orientation] || options[:orientation] ||
|
27
|
+
ei.screen_orientation = options[:screen_orientation] || options[:orientation] || Orientation::PORTRAIT
|
28
28
|
end
|
29
29
|
end
|
30
30
|
|
@@ -40,7 +40,7 @@ module Applitools
|
|
40
40
|
|
41
41
|
class EmulationInfo < EmulationBaseInfo
|
42
42
|
enum_field :device_name, IosDeviceName.enum_values
|
43
|
-
enum_field :screen_orientation,
|
43
|
+
enum_field :screen_orientation, Orientation.enum_values
|
44
44
|
|
45
45
|
def json_data
|
46
46
|
{
|
@@ -3,6 +3,15 @@
|
|
3
3
|
module Applitools
|
4
4
|
module Selenium
|
5
5
|
class VgMatchWindowData < Applitools::MatchWindowData
|
6
|
+
CONVERT_COORDINATES = proc do |region, selector_regions|
|
7
|
+
begin
|
8
|
+
offset_region = selector_regions.last
|
9
|
+
new_location = region.location.offset_negative(Applitools::Location.new(offset_region['x'].to_i, offset_region['y'].to_i))
|
10
|
+
region.location = new_location
|
11
|
+
rescue
|
12
|
+
Applitools::EyesLogger.error("Failed to convert coordinates for #{region}")
|
13
|
+
end
|
14
|
+
end
|
6
15
|
class RegionCoordinatesError < ::Applitools::EyesError
|
7
16
|
attr_accessor :region
|
8
17
|
def initialize(region, message)
|
@@ -109,7 +118,11 @@ module Applitools
|
|
109
118
|
region = selector_regions[target.regions[region]]
|
110
119
|
raise RegionCoordinatesError.new(r, region['error']) if region['error']
|
111
120
|
retrieved_region = Applitools::Region.new(region['x'], region['y'], region['width'], region['height'])
|
112
|
-
result_region =
|
121
|
+
result_region = if r.padding_proc.is_a? Proc
|
122
|
+
r.padding_proc.call(retrieved_region)
|
123
|
+
else
|
124
|
+
retrieved_region
|
125
|
+
end
|
113
126
|
result << result_region
|
114
127
|
end
|
115
128
|
end
|
@@ -118,36 +131,54 @@ module Applitools
|
|
118
131
|
|
119
132
|
def convert_ignored_regions_coordinates
|
120
133
|
return unless @need_convert_ignored_regions_coordinates
|
134
|
+
if target.convert_coordinates_block.is_a?(Proc)
|
135
|
+
@ignored_regions.each { |r| target.convert_coordinates_block.call(r, selector_regions)}
|
136
|
+
end
|
121
137
|
self.ignored_regions = @ignored_regions.map(&:with_padding).map(&:to_hash)
|
122
138
|
@need_convert_ignored_regions_coordinates = false
|
123
139
|
end
|
124
140
|
|
125
141
|
def convert_floating_regions_coordinates
|
126
142
|
return unless @need_convert_floating_regions_coordinates
|
143
|
+
if target.convert_coordinates_block.is_a?(Proc)
|
144
|
+
@floating_regions.each { |r| target.convert_coordinates_block.call(r, selector_regions)}
|
145
|
+
end
|
127
146
|
self.floating_regions = @floating_regions
|
128
147
|
@need_convert_floating_regions_coordinates = false
|
129
148
|
end
|
130
149
|
|
131
150
|
def convert_layout_regions_coordinates
|
132
151
|
return unless @need_convert_layout_regions_coordinates
|
152
|
+
if target.convert_coordinates_block.is_a?(Proc)
|
153
|
+
@layout_regions.each { |r| target.convert_coordinates_block.call(r, selector_regions)}
|
154
|
+
end
|
133
155
|
self.layout_regions = @layout_regions
|
134
156
|
@need_convert_layout_regions_coordinates = false
|
135
157
|
end
|
136
158
|
|
137
159
|
def convert_strict_regions_coordinates
|
138
160
|
return unless @need_convert_strict_regions_coordinates
|
161
|
+
if target.convert_coordinates_block.is_a?(Proc)
|
162
|
+
@strict_regions.each { |r| target.convert_coordinates_block.call(r, selector_regions)}
|
163
|
+
end
|
139
164
|
self.strict_regions = @strict_regions
|
140
165
|
@need_convert_strict_regions_coordinates = false
|
141
166
|
end
|
142
167
|
|
143
168
|
def convert_content_regions_coordinates
|
144
169
|
return unless @need_convert_content_regions_coordinates
|
170
|
+
if target.convert_coordinates_block.is_a?(Proc)
|
171
|
+
@content_regions.each { |r| target.convert_coordinates_block.call(r, selector_regions)}
|
172
|
+
end
|
145
173
|
self.content_regions = @content_regions
|
146
174
|
@need_convert_content_regions_coordinates = false
|
147
175
|
end
|
148
176
|
|
149
177
|
def convert_accessibility_regions_coordinates
|
150
178
|
return unless @need_convert_accessibility_regions_coordinates
|
179
|
+
if target.convert_coordinates_block.is_a?(Proc)
|
180
|
+
@accessibility_regions.each { |r| target.convert_coordinates_block.call(r, selector_regions)}
|
181
|
+
end
|
151
182
|
self.accessibility_regions = @accessibility_regions
|
152
183
|
@need_convert_accessibility_regions_coordinates = false
|
153
184
|
end
|
@@ -63,7 +63,7 @@ module Applitools
|
|
63
63
|
config.test_name = options[:test_name] if config.test_name.nil? || config.test_name && config.test_name.empty?
|
64
64
|
|
65
65
|
if config.viewport_size.nil? || config.viewport_size && config.viewport_size.empty?
|
66
|
-
config.viewport_size = Applitools::RectangleSize.from_any_argument(options[:viewport_size])
|
66
|
+
config.viewport_size = Applitools::RectangleSize.from_any_argument(options[:viewport_size]) if options[:viewport_size]
|
67
67
|
end
|
68
68
|
|
69
69
|
self.driver = Applitools::Selenium::SeleniumEyes.eyes_driver(options.delete(:driver), self)
|
@@ -154,6 +154,7 @@ module Applitools
|
|
154
154
|
mod = Digest::SHA2.hexdigest(script_thread_result[:script_result])
|
155
155
|
|
156
156
|
region_x_paths = get_regions_x_paths(target_to_check)
|
157
|
+
|
157
158
|
render_task = RenderTask.new(
|
158
159
|
"Render #{config.short_description} - #{tag}",
|
159
160
|
script_thread_result[:result]['value'],
|
@@ -169,6 +170,10 @@ module Applitools
|
|
169
170
|
)
|
170
171
|
end
|
171
172
|
|
173
|
+
if size_mod == 'selector'
|
174
|
+
target_to_check.convert_coordinates(&Applitools::Selenium::VgMatchWindowData::CONVERT_COORDINATES)
|
175
|
+
end
|
176
|
+
|
172
177
|
title = begin
|
173
178
|
driver.title
|
174
179
|
rescue StandardError => e
|
data/lib/applitools/version.rb
CHANGED
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: 3.17.
|
4
|
+
version: 3.17.11
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Applitools Team
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2020-06-
|
11
|
+
date: 2020-06-25 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: 3.17.
|
19
|
+
version: 3.17.11
|
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: 3.17.
|
26
|
+
version: 3.17.11
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
28
|
name: selenium-webdriver
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
@@ -156,7 +156,6 @@ files:
|
|
156
156
|
- lib/applitools/selenium/visual_grid/i_render_browser_info.rb
|
157
157
|
- lib/applitools/selenium/visual_grid/ios_device_info.rb
|
158
158
|
- lib/applitools/selenium/visual_grid/ios_device_name.rb
|
159
|
-
- lib/applitools/selenium/visual_grid/ios_screen_orientation.rb
|
160
159
|
- lib/applitools/selenium/visual_grid/render_browser_info.rb
|
161
160
|
- lib/applitools/selenium/visual_grid/render_info.rb
|
162
161
|
- lib/applitools/selenium/visual_grid/render_request.rb
|