eyes_core 5.0.0 → 6.0.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (62) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +508 -0
  3. data/Rakefile +35 -0
  4. data/eyes_core.gemspec +60 -0
  5. data/lib/applitools/core/batch_info.rb +2 -0
  6. data/lib/applitools/core/eyes_base.rb +106 -18
  7. data/lib/applitools/core/eyes_base_configuration.rb +9 -3
  8. data/lib/applitools/core/eyes_runner.rb +3 -2
  9. data/lib/applitools/core/test_results.rb +6 -1
  10. data/lib/applitools/core/universal_eyes_checks.rb +2 -1
  11. data/lib/applitools/core/universal_eyes_open.rb +2 -1
  12. data/lib/applitools/eyes_core/version.rb +10 -0
  13. data/lib/applitools/universal_sdk/universal_client.rb +26 -10
  14. data/lib/applitools/universal_sdk/universal_eyes_config.rb +10 -9
  15. data/lib/eyes_core.rb +2 -3
  16. metadata +14 -58
  17. data/ext/eyes_core/extconf.rb +0 -5
  18. data/ext/eyes_core/eyes_core.c +0 -252
  19. data/ext/eyes_core/eyes_core.h +0 -28
  20. data/lib/applitools/appium/android_region_provider.rb +0 -32
  21. data/lib/applitools/appium/android_screenshot.rb +0 -21
  22. data/lib/applitools/appium/driver.rb +0 -12
  23. data/lib/applitools/appium/eyes.rb +0 -189
  24. data/lib/applitools/appium/ios_region_provider.rb +0 -25
  25. data/lib/applitools/appium/ios_screenshot.rb +0 -10
  26. data/lib/applitools/appium/region_provider.rb +0 -51
  27. data/lib/applitools/appium/screenshot.rb +0 -30
  28. data/lib/applitools/appium/target.rb +0 -240
  29. data/lib/applitools/appium/utils.rb +0 -64
  30. data/lib/applitools/calabash/calabash_element.rb +0 -64
  31. data/lib/applitools/calabash/calabash_screenshot_provider.rb +0 -83
  32. data/lib/applitools/calabash/environment_detector.rb +0 -25
  33. data/lib/applitools/calabash/eyes.rb +0 -194
  34. data/lib/applitools/calabash/eyes_calabash_android_screenshot.rb +0 -68
  35. data/lib/applitools/calabash/eyes_calabash_ios_screenshot.rb +0 -30
  36. data/lib/applitools/calabash/eyes_calabash_screenshot.rb +0 -80
  37. data/lib/applitools/calabash/eyes_hooks.rb +0 -51
  38. data/lib/applitools/calabash/eyes_settings.rb +0 -45
  39. data/lib/applitools/calabash/full_page_capture_algorithm/android_scroll_view.rb +0 -95
  40. data/lib/applitools/calabash/full_page_capture_algorithm/base.rb +0 -51
  41. data/lib/applitools/calabash/full_page_capture_algorithm/ios_ui_table_view.rb +0 -150
  42. data/lib/applitools/calabash/full_page_capture_algorithm.rb +0 -26
  43. data/lib/applitools/calabash/os_versions.rb +0 -25
  44. data/lib/applitools/calabash/rspec_matchers.rb +0 -25
  45. data/lib/applitools/calabash/steps/android_eyes_session.rb +0 -37
  46. data/lib/applitools/calabash/steps/android_matchers.rb +0 -36
  47. data/lib/applitools/calabash/steps/eyes_session.rb +0 -42
  48. data/lib/applitools/calabash/steps/eyes_settings.rb +0 -59
  49. data/lib/applitools/calabash/steps/ios_eyes_session.rb +0 -15
  50. data/lib/applitools/calabash/steps/ios_matchers.rb +0 -17
  51. data/lib/applitools/calabash/steps/matchers.rb +0 -71
  52. data/lib/applitools/calabash/target.rb +0 -69
  53. data/lib/applitools/calabash/utils.rb +0 -74
  54. data/lib/applitools/calabash_steps.rb +0 -16
  55. data/lib/applitools/capybara/capybara_settings.rb +0 -25
  56. data/lib/applitools/capybara/driver.rb +0 -39
  57. data/lib/applitools/rspec/target_matcher.rb +0 -25
  58. data/lib/applitools/universal_sdk/executable_finder.rb +0 -57
  59. data/lib/applitools/universal_sdk/universal_server_control.rb +0 -79
  60. data/lib/applitools/version.rb +0 -8
  61. data/lib/eyes_consts.rb +0 -4
  62. data/lib/eyes_rspec.rb +0 -4
@@ -1,240 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module Applitools
4
- module Appium
5
- class Target < Applitools::Selenium::Target
6
-
7
- def ignore(*args)
8
- if args.empty?
9
- reset_ignore
10
- else
11
- value = convert_to_universal(args)
12
- value = { type: args[0], selector: args[1] } if value.nil?
13
- # value = value[:selector] if value.is_a?(Hash) && (value[:type].to_s === 'id') && !is_a?(Applitools::Appium::Target)
14
- ignored_regions << value
15
- end
16
- self
17
- end
18
-
19
- def region(*args)
20
- value = convert_to_universal(args)
21
- value = { type: args[0], selector: args[1] } if value.nil?
22
- # value = value[:selector] if value.is_a?(Hash) && (value[:type].to_s === 'id') && !is_a?(Applitools::Appium::Target)
23
- self.region_to_check = value
24
- self.coordinate_type = Applitools::EyesScreenshot::COORDINATE_TYPES[:context_relative]
25
- options[:timeout] = nil
26
- reset_ignore
27
- reset_floating
28
- self
29
- end
30
-
31
- def webview(value = true)
32
- options[:webview] = value.is_a?(String) ? value : !!value
33
- # options[:stitch_content] = false if options[:stitch_content].nil?
34
- self
35
- end
36
-
37
- # class Target
38
- # include Applitools::FluentInterface
39
- # attr_accessor :region_to_check, :options, :ignored_regions, :floating_regions, :layout_regions, :content_regions, :strict_regions, :accessibility_regions
40
- #
41
- # class << self
42
- # def window
43
- # new
44
- # end
45
- #
46
- # def region(*args)
47
- # new.region(*args)
48
- # end
49
- # end
50
- #
51
- # def initialize
52
- # self.region_to_check = proc { Applitools::Region::EMPTY }
53
- # self.ignored_regions = []
54
- # self.floating_regions = []
55
- # self.layout_regions = []
56
- # self.content_regions = []
57
- # self.strict_regions = []
58
- # self.accessibility_regions = []
59
- # self.options = {}
60
- # end
61
- #
62
- # def region(*args)
63
- # self.region_to_check = case args.first
64
- # when ::Selenium::WebDriver::Element
65
- # proc { args.first }
66
- # else
67
- # proc do |driver|
68
- # driver.find_element(*args)
69
- # end
70
- # end
71
- # self
72
- # end
73
- #
74
- # def ignore(*args)
75
- # requested_padding = if args.last.is_a? Applitools::PaddingBounds
76
- # args.pop
77
- # else
78
- # Applitools::PaddingBounds::ZERO_PADDING
79
- # end
80
- # ignored_regions << case (first_argument = args.first)
81
- # when ::Selenium::WebDriver::Element
82
- # proc do
83
- # Applitools::Region
84
- # .from_location_size(first_argument.location, first_argument.size)
85
- # .padding(requested_padding)
86
- # end
87
- # when Applitools::Region
88
- # result = first_argument.padding(requested_padding)
89
- # if Applitools::Appium::Utils.ios?(Applitools::Appium::Driver::AppiumLib)
90
- # def result.converted?
91
- # true
92
- # end
93
- # end
94
- # result
95
- # else
96
- # proc do |driver|
97
- # element = driver.find_element(*args)
98
- # Applitools::Region
99
- # .from_location_size(element.location, element.size)
100
- # .padding(requested_padding)
101
- # end
102
- # end
103
- # self
104
- # end
105
- #
106
- # def floating(*args)
107
- # value = case args.first
108
- # when Applitools::FloatingRegion
109
- # args.first
110
- # when Applitools::Region
111
- # result = Applitools::FloatingRegion.any(*args)
112
- # if Applitools::Appium::Utils.ios?(Applitools::Appium::Driver::AppiumLib)
113
- # def result.converted?
114
- # true
115
- # end
116
- # end
117
- # result
118
- # when ::Selenium::WebDriver::Element
119
- # args_dup = args.dup
120
- # Applitools::FloatingRegion.any(*args_dup)
121
- # else
122
- # proc do |driver|
123
- # args_dup = args.dup
124
- # region = driver.find_element(args_dup.shift, args_dup.shift)
125
- # Applitools::FloatingRegion.any(
126
- # region, *args_dup
127
- # )
128
- # end
129
- # end
130
- # floating_regions << value
131
- # self
132
- # end
133
- #
134
- # def layout
135
- # return match_level(Applitools::MatchLevel::LAYOUT) if args.empty?
136
- # region = process_region(*args)
137
- # layout_regions << region
138
- # self
139
- #
140
- # end
141
- #
142
- # def content(*args)
143
- # return match_level(Applitools::MatchLevel::CONTENT) if args.empty?
144
- # region = process_region(*args)
145
- # content_regions << region
146
- # self
147
- # end
148
- #
149
- # def strict(*args)
150
- # return match_level(Applitools::MatchLevel::STRICT) if args.empty?
151
- # region = process_region(*args)
152
- # strict_regions << region
153
- # self
154
- # end
155
- #
156
- # def exact(*args)
157
- # match_level(Applitools::MatchLevel::EXACT, *args)
158
- # end
159
- #
160
- # def accessibility(*args)
161
- # options = Applitools::Utils.extract_options! args
162
- # unless options[:type]
163
- # raise Applitools::EyesError,
164
- # 'You should call Target.accessibility(region, type: type). The region_type option is required'
165
- # end
166
- # unless Applitools::AccessibilityRegionType.enum_values.include?(options[:type])
167
- # raise Applitools::EyesIllegalArgument,
168
- # "The region type should be one of [#{Applitools::AccessibilityRegionType.enum_values.join(', ')}]"
169
- # end
170
- #
171
- # accessibility_regions << case args.first
172
- # when ::Selenium::WebDriver::Element
173
- # element = args.first
174
- # Applitools::AccessibilityRegion.new(
175
- # element,
176
- # options[:type]
177
- # )
178
- # when Applitools::Region
179
- # result = Applitools::AccessibilityRegion.new(
180
- # args.first, options[:type]
181
- # )
182
- # if Applitools::Appium::Utils.ios?(Applitools::Appium::Driver::AppiumLib)
183
- # def result.converted?
184
- # true
185
- # end
186
- # end
187
- # result
188
- # when String
189
- # proc do |driver|
190
- # element = driver.find_element(name_or_id: args.first)
191
- # Applitools::AccessibilityRegion.new(
192
- # element,
193
- # options[:type]
194
- # )
195
- # end
196
- # else
197
- # proc do |driver|
198
- # elements = driver.find_elements(*args)
199
- # elements.map do |e|
200
- # Applitools::AccessibilityRegion.new(
201
- # e,
202
- # options[:type]
203
- # )
204
- # end
205
- # end
206
- # end
207
- # self
208
- # end
209
- #
210
- # def finalize
211
- # self
212
- # end
213
- #
214
- # private
215
- #
216
- # def process_region(*args)
217
- # r = args.first
218
- # case r
219
- # when ::Selenium::WebDriver::Element
220
- # proc do |driver|
221
- # Applitools::Region.from_location_size(r.location, r.size)
222
- # end
223
- # when Applitools::Region
224
- # if Applitools::Appium::Utils.ios?(Applitools::Appium::Driver::AppiumLib)
225
- # def r.converted?
226
- # true
227
- # end
228
- # end
229
- # r
230
- # else
231
- # proc do |driver|
232
- # element = driver.find_element(*args)
233
- # Applitools::Region.from_location_size(element.location, element.size)
234
- # end
235
- # end
236
- # end
237
- #
238
- end
239
- end
240
- end
@@ -1,64 +0,0 @@
1
- # frozen_string_literal: false
2
-
3
- module Applitools::Appium
4
- module Utils
5
- include Applitools::Utils::EyesSeleniumUtils
6
- extend self
7
-
8
- # true if test is running on mobile device
9
- def mobile_device?(driver)
10
- defined?(Appium::Driver) &&
11
- defined?(Applitools::Appium::Driver::AppiumLib) &&
12
- Applitools::Appium::Driver::AppiumLib
13
- end
14
-
15
- # true if test is running on Android device
16
- def android?(driver)
17
- driver.respond_to?(:device_is_android?) && driver.device_is_android?
18
- end
19
-
20
- # true if test is running on iOS device
21
- def ios?(driver)
22
- driver.respond_to?(:device_is_ios?) && driver.device_is_ios?
23
- end
24
-
25
- # @param [Applitools::Selenium::Driver] driver
26
- def platform_version(driver)
27
- driver.respond_to?(:platform_version) && driver.platform_version
28
- end
29
-
30
- # @param [Applitools::Selenium::Driver] executor
31
- def device_pixel_ratio(executor)
32
- session_info = session_capabilities(executor)
33
- return session_info['pixelRatio'].to_f if session_info['pixelRatio']
34
- 1
35
- end
36
-
37
- def status_bar_height(executor)
38
- session_info = session_capabilities(executor)
39
- return session_info['statBarHeight'].to_i if session_info['statBarHeight']
40
- 0
41
- end
42
-
43
- def viewport_rect(executor)
44
- session_info = session_capabilities(executor)
45
- return session_info['viewportRect'] if session_info['viewportRect']
46
- {
47
- 'left' => 0,
48
- 'top' => 0,
49
- 'width' => 0,
50
- 'height' => 0
51
- }
52
- end
53
-
54
- def session_capabilities(executor)
55
- executor.session_capabilities if executor.respond_to? :session_capabilities
56
- end
57
-
58
- def current_scroll_position(driver)
59
- super
60
- rescue
61
- Applitools::Location::TOP_LEFT
62
- end
63
- end
64
- end
@@ -1,64 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module Applitools
4
- module Calabash
5
- class CalabashElement
6
- extend Forwardable
7
- attr_reader :original_element, :element_query
8
- def_delegators :@original_element, :[], :keys, :values
9
-
10
- def initialize(element, element_query)
11
- raise Applitools::EyesIllegalArgument, "Invalid element passed! (#{element})" unless valid_element?(element)
12
- @original_element = element
13
- @element_query = element_query
14
- end
15
-
16
- def left
17
- self['rect']['x']
18
- end
19
-
20
- alias x left
21
-
22
- def top
23
- self['rect']['y']
24
- end
25
-
26
- alias y top
27
-
28
- def width
29
- self['rect']['width']
30
- end
31
-
32
- def height
33
- self['rect']['height']
34
- end
35
-
36
- def location
37
- Applitools::Location.from_struct(self)
38
- end
39
-
40
- def size
41
- Applitools::RectangleSize.from_struct(self)
42
- end
43
-
44
- def region
45
- Applitools::Region.from_location_size(location, size)
46
- end
47
-
48
- def to_s
49
- @original_element
50
- end
51
-
52
- private
53
-
54
- def valid_element?(element)
55
- result = true
56
- result &&= element.is_a?(Hash)
57
- result &&= element.key?('rect')
58
- result &&= (rect = element['rect']).is_a?(Hash)
59
- result &&= (%w(height width y x center_x center_y) - rect.keys).empty?
60
- result
61
- end
62
- end
63
- end
64
- end
@@ -1,83 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module Applitools
4
- module Calabash
5
- class CalabashScreenshotProvider
6
- WAIT_BEFORE_SCREENSHOT = 1
7
- attr_reader :density, :context, :debug_screenshot_provider
8
-
9
- def initialize(_options = {})
10
- @density = 1
11
- end
12
-
13
- def with_density(value)
14
- @density = value
15
- self
16
- end
17
-
18
- def using_context(value)
19
- @context = value
20
- self
21
- end
22
-
23
- def with_debug_screenshot_provider(value)
24
- Applitools::ArgumentGuard.is_a?(
25
- value,
26
- 'debug_screenshot_provider',
27
- Applitools::DebugScreenshotProvider
28
- )
29
- @debug_screenshot_provider = value
30
- self
31
- end
32
-
33
- private
34
-
35
- def save_debug_screenshot(screenshot, suffix)
36
- suffix = suffix.join('_') if suffix.respond_to? :join
37
- debug_screenshot_provider.save(screenshot, suffix || '') if debug_screenshot_provider
38
- end
39
- end
40
-
41
- class AndroidScreenshotProvider < CalabashScreenshotProvider
42
- include Singleton
43
-
44
- def capture_screenshot(options = {})
45
- sleep WAIT_BEFORE_SCREENSHOT
46
- result = nil
47
- # Applitools::Calabash::Utils.using_screenshot(context) do |screenshot_path|
48
- # screenshot = ::ChunkyPNG::Image.from_file(screenshot_path)
49
- # save_debug_screenshot(screenshot, ['original', options[:debug_suffix]])
50
- # viewport_size = Applitools::Calabash::EyesSettings.instance.viewport_size
51
- # screenshot.crop!(0, 0, viewport_size[:width], viewport_size[:height])
52
- # save_debug_screenshot(screenshot, ['cropped', options[:debug_suffix]])
53
- # result = Applitools::Calabash::EyesCalabashAndroidScreenshot.new(
54
- # Applitools::Screenshot.from_image(
55
- # screenshot
56
- # ),
57
- # density: density
58
- # )
59
- # end
60
- result
61
- end
62
- end
63
-
64
- class IosScreenshotProvider < CalabashScreenshotProvider
65
- include Singleton
66
- def capture_screenshot(options = {})
67
- sleep WAIT_BEFORE_SCREENSHOT
68
- result = nil
69
- # Applitools::Calabash::Utils.using_screenshot(context) do |screenshot_path|
70
- # screenshot = ::ChunkyPNG::Image.from_file(screenshot_path)
71
- # save_debug_screenshot(screenshot, options[:debug_suffix])
72
- # result = Applitools::Calabash::EyesCalabashIosScreenshot.new(
73
- # Applitools::Screenshot.from_image(
74
- # screenshot
75
- # ),
76
- # scale_factor: density
77
- # )
78
- # end
79
- result
80
- end
81
- end
82
- end
83
- end
@@ -1,25 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module Applitools
4
- module Calabash
5
- module EnvironmentDetector
6
- extend self
7
-
8
- def android?
9
- return true if defined?(::Calabash::Android) == 'constant'
10
- false
11
- end
12
-
13
- def ios?
14
- return true if defined?(::Calabash::Cucumber) == 'constant'
15
- false
16
- end
17
-
18
- def current_environment
19
- return :android if android?
20
- return :ios if ios?
21
- raise Applitools::EyesError, 'No calabash environment found!'
22
- end
23
- end
24
- end
25
- end
@@ -1,194 +0,0 @@
1
- # frozen_string_literal: false
2
-
3
- module Applitools
4
- module Calabash
5
- class Eyes < Applitools::EyesBase
6
- attr_accessor :device_pixel_ratio, :full_page_capture_algorithm, :base_agent_id, :title,
7
- :debug_screenshots, :debug_screenshot_provider, :tag_for_debug
8
- attr_reader :context
9
-
10
- def initialize(server_url = Applitools::Connectivity::ServerConnector::DEFAULT_SERVER_URL)
11
- super
12
- self.runner = Applitools::ClassicRunner.new
13
- self.base_agent_id = "eyes.calabash.ruby/#{Applitools::VERSION}".freeze
14
- self.debug_screenshots = false
15
- self.debug_screenshot_provider = Applitools::DebugScreenshotProvider.new
16
- .tag_access { tag_for_debug }
17
- .debug_flag_access { debug_screenshots }
18
- end
19
-
20
- def open(options = {})
21
- Applitools::ArgumentGuard.hash options, 'open(options)', [:app_name, :test_name]
22
- open_base options
23
- end
24
-
25
- def check(*args)
26
- args.compact!
27
- case (first_arg = args.shift)
28
- when String
29
- name = first_arg
30
- target = args.shift
31
- when Applitools::Selenium::Target
32
- target = first_arg
33
- when Hash
34
- target = first_arg[:target]
35
- name = first_arg[:name] || first_arg[:tag]
36
- end
37
-
38
- self.tag_for_debug = get_tag_for_debug(name)
39
- check_it(name, target, Applitools::MatchWindowData.new(default_match_settings))
40
- end
41
-
42
- def inferred_environment
43
- return @inferred_environment unless @inferred_environment.nil?
44
- return unless device_pixel_ratio
45
- "device pixel ratio: #{device_pixel_ratio}"
46
- end
47
-
48
- def add_context(value)
49
- @context = value
50
- end
51
-
52
- def remove_context
53
- @context = nil
54
- end
55
-
56
- def capture_screenshot
57
- return screenshot_provider.capture_screenshot(debug_suffix: tag_for_debug) unless full_page_capture_algorithm
58
- full_page_capture_algorithm.get_stitched_region
59
- end
60
-
61
- def screenshot_provider
62
- env = Applitools::Calabash::EnvironmentDetector.current_environment
63
- case env
64
- when :android
65
- Applitools::Calabash::AndroidScreenshotProvider.instance.with_density(device_pixel_ratio)
66
- .using_context(context)
67
- .with_debug_screenshot_provider(debug_screenshot_provider)
68
- when :ios
69
- Applitools::Calabash::IosScreenshotProvider.instance.with_density(device_pixel_ratio)
70
- .using_context(context)
71
- .with_debug_screenshot_provider(debug_screenshot_provider)
72
- end
73
- end
74
-
75
- def check_it(name, target, match_window_data)
76
- Applitools::ArgumentGuard.not_nil(name, 'name')
77
-
78
- logger.info 'Full element requested' if target.options[:stitch_content]
79
-
80
- self.full_page_capture_algorithm = target.options[:stitch_content] &&
81
- get_full_page_capture_algorithm(target.region_to_check)
82
-
83
- region_provider = if full_page_capture_algorithm
84
- entire_screenshot_region
85
- else
86
- get_region_provider(target)
87
- end
88
-
89
- match_window_data.tag = name
90
- match_window_data.read_target(target, nil)
91
-
92
- self.viewport_size = Applitools::Calabash::EyesSettings.instance.viewport_size if viewport_size.nil?
93
-
94
- if match_window_data.is_a? Applitools::MatchSingleCheckData
95
- return check_single_base(
96
- region_provider,
97
- target.options[:timeout] || Applitools::EyesBase::USE_DEFAULT_TIMEOUT,
98
- match_window_data
99
- )
100
- end
101
-
102
- check_window_base(
103
- region_provider,
104
- target.options[:timeout] || Applitools::EyesBase::USE_DEFAULT_TIMEOUT,
105
- match_window_data
106
- )
107
- end
108
-
109
- def get_region_provider(target)
110
- if (region_to_check = target.region_to_check).nil?
111
- entire_screenshot_region
112
- else
113
- region_for_element(region_to_check)
114
- end
115
- end
116
-
117
- def get_app_output_with_screenshot(*args)
118
- result = super(*args, &:scale_it!)
119
- self.screenshot_url = nil
120
- result
121
- end
122
-
123
- def entire_screenshot_region
124
- Object.new.tap do |prov|
125
- prov.instance_eval do
126
- define_singleton_method :region do
127
- Applitools::Region::EMPTY
128
- end
129
-
130
- define_singleton_method :coordinate_type do
131
- nil
132
- end
133
- end
134
- end
135
- end
136
-
137
- def region_for_element(region_to_check)
138
- Object.new.tap do |prov|
139
- prov.instance_eval do
140
- define_singleton_method :region do
141
- case region_to_check
142
- when Applitools::Calabash::CalabashElement
143
- region_to_check.region
144
- when Applitools::Region
145
- region_to_check
146
- else
147
- raise Applitools::EyesError, "Incompatible region type: #{region_to_check.class}"
148
- end
149
- # region_to_check.respond_to?(:region) ? region_to_check.region : region_to_check
150
- end
151
- define_singleton_method :coordinate_type do
152
- Applitools::Calabash::EyesCalabashScreenshot::DRIVER
153
- end
154
- end
155
- end
156
- end
157
-
158
- def vp_size
159
- viewport_size
160
- end
161
-
162
- def vp_size=(value, skip_check_if_open = false)
163
- unless skip_check_if_open || open?
164
- raise Applitools::EyesNotOpenException.new 'set_viewport_size: Eyes not open!'
165
- end
166
- Applitools::ArgumentGuard.not_nil 'value', value
167
- @viewport_size = Applitools::RectangleSize.for value
168
- end
169
-
170
- alias get_viewport_size vp_size
171
- alias set_viewport_size vp_size=
172
-
173
- def get_full_page_capture_algorithm(element)
174
- logger.info "Trying to get full page capture algorithm for element #{element}..."
175
- environment = Applitools::Calabash::EnvironmentDetector.current_environment
176
- element_class = Applitools::Calabash::Utils.send("grub_#{environment}_class_name", context, element).first
177
- logger.info "Trying to get FullPageCaptureAlgorithm for #{element_class}..."
178
- algo = Applitools::Calabash::FullPageCaptureAlgorithm.get_algorithm_class(environment, element_class)
179
- if algo
180
- logger.info "Using #{algo}"
181
- algo = algo.new(screenshot_provider, element, debug_screenshot_provider: debug_screenshot_provider)
182
- else
183
- logger.info "FullPageCaptureAlgorithm for #{element_class} not found. Continue with :check_region instead"
184
- end
185
- algo
186
- end
187
-
188
- def get_tag_for_debug(name)
189
- return "#{app_name} #{test_name}" if name.empty?
190
- "#{app_name} #{test_name} - #{name}"
191
- end
192
- end
193
- end
194
- end