eyes_selenium 3.17.5 → 3.17.11

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