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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 119f032b65d1a768ae420679f6cb509480505767691d86b7417f3cb210fb7e8d
4
- data.tar.gz: 100b6606ffb9a405d5e042a7d424fedd96599a426235ba1056792056c26d771e
3
+ metadata.gz: 179a2322de13d9299fdcc66e2a9dde36f4440a7a451a1ce53a7c5ca7da7b6c23
4
+ data.tar.gz: 4a2c18e3617073c3bdbab7272301b6159752458e6ce4b72a7386b0381fe9e8fb
5
5
  SHA512:
6
- metadata.gz: c48cea011af489db8c29a06b1b6b7ac3a10ab733f22fe46e9dc70ac9a0bd587bc5ed960c98692f34f39521e99f14d8dc3c7eb559de8ed3b9eb0adec2da41e5c6
7
- data.tar.gz: 4388fbfb94018ef6629f019ece08eee0186bdcad74dcad6b83815aafb4a4c44b04233522d73b1f18bd829c395781b7e1610c7d419514abf3c0a772b01ae4cd61
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
- super
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] || Orientations::PORTRAIT
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] || Orientations::PORTRAIT
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
 
@@ -54,7 +54,6 @@ module Applitools
54
54
  logger.error "Error retrieving coordinates for region #{e.region}"
55
55
  logger.error e.message
56
56
  end
57
-
58
57
  check_result = check_window_base(
59
58
  dummy_region_provider, timeout, match_data
60
59
  )
@@ -1,12 +1,12 @@
1
1
  require_relative 'ios_device_name'
2
- require_relative 'ios_screen_orientation'
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: BrowserTypes::IOS_SAFARI,
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] || IosScreenOrientation::PORTRAIT
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, IosScreenOrientation.enum_values
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 = r.padding_proc.call(retrieved_region) if r.padding_proc.is_a? Proc
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
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: false
2
2
 
3
3
  module Applitools
4
- VERSION = '3.17.5'.freeze
4
+ VERSION = '3.17.11'.freeze
5
5
  end
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.5
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-15 00:00:00.000000000 Z
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.5
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.5
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
@@ -1,14 +0,0 @@
1
- module IosScreenOrientation
2
- extend self
3
- PORTRAIT ='portrait'
4
- LANDSCAPE_LEFT = 'landscapeLeft'
5
- LANDSCAPE_RIGHT = 'landscapeRight'
6
-
7
- def enum_values
8
- [
9
- PORTRAIT,
10
- LANDSCAPE_LEFT,
11
- LANDSCAPE_RIGHT
12
- ]
13
- end
14
- end