eyes_core 3.14.0 → 3.14.1
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/calabash/calabash_element.rb +62 -0
- data/lib/applitools/calabash/calabash_screenshot_provider.rb +81 -0
- data/lib/applitools/calabash/environment_detector.rb +23 -0
- data/lib/applitools/calabash/eyes.rb +182 -0
- data/lib/applitools/calabash/eyes_calabash_android_screenshot.rb +56 -0
- data/lib/applitools/calabash/eyes_calabash_ios_screenshot.rb +28 -0
- data/lib/applitools/calabash/eyes_calabash_screenshot.rb +78 -0
- data/lib/applitools/calabash/eyes_hooks.rb +51 -0
- data/lib/applitools/calabash/eyes_settings.rb +43 -0
- data/lib/applitools/calabash/full_page_capture_algorithm.rb +24 -0
- data/lib/applitools/calabash/full_page_capture_algorithm/android_scroll_view.rb +85 -0
- data/lib/applitools/calabash/full_page_capture_algorithm/base.rb +49 -0
- data/lib/applitools/calabash/full_page_capture_algorithm/ios_ui_table_view.rb +148 -0
- data/lib/applitools/calabash/os_versions.rb +23 -0
- data/lib/applitools/calabash/rspec_matchers.rb +22 -0
- data/lib/applitools/calabash/steps/android_eyes_session.rb +35 -0
- data/lib/applitools/calabash/steps/android_matchers.rb +34 -0
- data/lib/applitools/calabash/steps/eyes_session.rb +40 -0
- data/lib/applitools/calabash/steps/eyes_settings.rb +57 -0
- data/lib/applitools/calabash/steps/ios_eyes_session.rb +13 -0
- data/lib/applitools/calabash/steps/ios_matchers.rb +15 -0
- data/lib/applitools/calabash/steps/matchers.rb +69 -0
- data/lib/applitools/calabash/target.rb +67 -0
- data/lib/applitools/calabash/utils.rb +72 -0
- data/lib/applitools/calabash_steps.rb +14 -0
- data/lib/applitools/chunky_png_patch.rb +1 -0
- data/lib/applitools/connectivity/server_connector.rb +5 -4
- data/lib/applitools/core/abstract_region.rb +16 -0
- data/lib/applitools/core/class_name.rb +7 -0
- data/lib/applitools/core/eyes_base.rb +2 -0
- data/lib/applitools/core/floating_region.rb +17 -4
- data/lib/applitools/core/fluent_interface.rb +8 -0
- data/lib/applitools/core/location.rb +7 -0
- data/lib/applitools/core/match_window_data.rb +1 -1
- data/lib/applitools/core/rectangle_size.rb +8 -2
- data/lib/applitools/core/region.rb +9 -1
- data/lib/applitools/rspec/target_matcher.rb +23 -0
- data/lib/applitools/utils/eyes_selenium_utils.rb +0 -2
- data/lib/applitools/version.rb +1 -1
- metadata +30 -2
@@ -0,0 +1,14 @@
|
|
1
|
+
Applitools::Calabash.require_environment(
|
2
|
+
'applitools/calabash/steps/matchers',
|
3
|
+
Applitools::Calabash::EnvironmentDetector.current_environment
|
4
|
+
)
|
5
|
+
|
6
|
+
Applitools::Calabash.require_environment(
|
7
|
+
'applitools/calabash/steps/eyes_settings',
|
8
|
+
Applitools::Calabash::EnvironmentDetector.current_environment
|
9
|
+
)
|
10
|
+
|
11
|
+
Applitools::Calabash.require_environment(
|
12
|
+
'applitools/calabash/steps/eyes_session',
|
13
|
+
Applitools::Calabash::EnvironmentDetector.current_environment
|
14
|
+
)
|
@@ -100,12 +100,13 @@ module Applitools::Connectivity
|
|
100
100
|
end
|
101
101
|
|
102
102
|
def start_session(session_start_info)
|
103
|
+
request_body = Oj.dump(
|
104
|
+
startInfo: Applitools::Utils.camelcase_hash_keys(session_start_info.to_hash)
|
105
|
+
)
|
103
106
|
res = post(
|
104
|
-
endpoint_url, body:
|
105
|
-
startInfo: Applitools::Utils.camelcase_hash_keys(session_start_info.to_hash)
|
106
|
-
)
|
107
|
+
endpoint_url, body: request_body
|
107
108
|
)
|
108
|
-
raise Applitools::EyesError.new("Request failed: #{res.status} #{res.body}") unless res.success?
|
109
|
+
raise Applitools::EyesError.new("Request failed: #{res.status} #{res.body} #{request_body}") unless res.success?
|
109
110
|
|
110
111
|
response = Oj.load(res.body)
|
111
112
|
Applitools::Session.new(response['id'], response['url'], res.status == HTTP_STATUS_CODES[:created])
|
@@ -0,0 +1,16 @@
|
|
1
|
+
module Applitools
|
2
|
+
class AbstractRegion
|
3
|
+
class << self
|
4
|
+
def ===(other)
|
5
|
+
result = true
|
6
|
+
result &&= other.respond_to?(:location)
|
7
|
+
result &&= other.respond_to?(:size)
|
8
|
+
result &&= other.location.respond_to?(:x)
|
9
|
+
result &&= other.location.respond_to?(:y)
|
10
|
+
result &&= other.size.respond_to?(:width)
|
11
|
+
result &&= other.size.respond_to?(:height)
|
12
|
+
result
|
13
|
+
end
|
14
|
+
end
|
15
|
+
end
|
16
|
+
end
|
@@ -608,6 +608,8 @@ module Applitools
|
|
608
608
|
screenshot = screenshot.sub_screenshot region, region_provider.coordinate_type, false
|
609
609
|
end
|
610
610
|
|
611
|
+
screenshot = yield(screenshot) if block_given?
|
612
|
+
|
611
613
|
logger.info 'Compressing screenshot...'
|
612
614
|
compress_result = compress_screenshot64 screenshot, last_screenshot
|
613
615
|
logger.info 'Done! Getting title...'
|
@@ -32,6 +32,7 @@ module Applitools
|
|
32
32
|
end
|
33
33
|
|
34
34
|
attr_accessor :max_top_offset, :max_right_offset, :max_bottom_offset, :max_left_offset
|
35
|
+
|
35
36
|
NAMES = [
|
36
37
|
:left, :top, :width, :height, :max_left_offset, :max_top_offset, :max_right_offset, :max_bottom_offset
|
37
38
|
].freeze
|
@@ -60,14 +61,26 @@ module Applitools
|
|
60
61
|
raise(
|
61
62
|
Applitools::EyesIllegalArgument,
|
62
63
|
'Expected Applitools::FloatingRegion.new to be called as ' \
|
63
|
-
|
64
|
-
|
65
|
-
|
66
|
-
|
64
|
+
'Applitools::FloatingRegion.new(region, floating_bounds)' \
|
65
|
+
'or ' \
|
66
|
+
'Applitools::FloatingRegion.new(left, top, width, height, ' \
|
67
|
+
'bounds_leeft, bounds_top, bounds_right, bounds_bottom)'
|
67
68
|
)
|
68
69
|
end
|
69
70
|
end
|
70
71
|
|
72
|
+
def scale_it!(scale_factor)
|
73
|
+
self.left *= scale_factor
|
74
|
+
self.top *= scale_factor
|
75
|
+
self.width *= scale_factor
|
76
|
+
self.height *= scale_factor
|
77
|
+
self.max_left_offset *= scale_factor
|
78
|
+
self.max_top_offset *= scale_factor
|
79
|
+
self.max_right_offset *= scale_factor
|
80
|
+
self.max_bottom_offset *= scale_factor
|
81
|
+
self
|
82
|
+
end
|
83
|
+
|
71
84
|
def to_hash
|
72
85
|
{
|
73
86
|
'Top' => top,
|
@@ -1,6 +1,14 @@
|
|
1
1
|
require_relative 'match_level_setter'
|
2
2
|
module Applitools::FluentInterface
|
3
3
|
include Applitools::MatchLevelSetter
|
4
|
+
|
5
|
+
def self.included(base)
|
6
|
+
base.define_singleton_method(:===) do |other|
|
7
|
+
return name == other if other.is_a? String
|
8
|
+
super(other)
|
9
|
+
end
|
10
|
+
end
|
11
|
+
|
4
12
|
def ignore_caret(value = false)
|
5
13
|
options[:ignore_caret] = value ? true : false
|
6
14
|
self
|
@@ -80,5 +80,12 @@ module Applitools
|
|
80
80
|
@y -= other.y
|
81
81
|
self
|
82
82
|
end
|
83
|
+
|
84
|
+
def scale_it!(scale_factor)
|
85
|
+
raise Applitools::EyesIllegalArgument, 'scale_factor must be an integer' unless scale_factor.is_a? Integer
|
86
|
+
@x *= scale_factor
|
87
|
+
@y *= scale_factor
|
88
|
+
self
|
89
|
+
end
|
83
90
|
end
|
84
91
|
end
|
@@ -225,7 +225,7 @@ module Applitools
|
|
225
225
|
def convert_floating_regions_coordinates
|
226
226
|
return unless @need_convert_floating_regions_coordinates
|
227
227
|
self.floating_regions = @floating_regions.map do |r|
|
228
|
-
r.location = app_output.screenshot.
|
228
|
+
r.location = app_output.screenshot.convert_region_location(
|
229
229
|
r.location,
|
230
230
|
Applitools::EyesScreenshot::COORDINATE_TYPES[:context_relative],
|
231
231
|
Applitools::EyesScreenshot::COORDINATE_TYPES[:screenshot_as_is]
|
@@ -15,11 +15,11 @@ module Applitools
|
|
15
15
|
|
16
16
|
def from_string(value)
|
17
17
|
width, height = value.split(/x/)
|
18
|
-
new width, height
|
18
|
+
new width.to_i, height.to_i
|
19
19
|
end
|
20
20
|
|
21
21
|
def from_hash(value)
|
22
|
-
new value[:width], value[:height]
|
22
|
+
new value[:width].to_i, value[:height].to_i
|
23
23
|
end
|
24
24
|
|
25
25
|
def from_struct(value)
|
@@ -48,6 +48,12 @@ module Applitools
|
|
48
48
|
self
|
49
49
|
end
|
50
50
|
|
51
|
+
def scale_it!(scale_factor)
|
52
|
+
self.width *= scale_factor
|
53
|
+
self.height *= scale_factor
|
54
|
+
self
|
55
|
+
end
|
56
|
+
|
51
57
|
def to_hash
|
52
58
|
to_h
|
53
59
|
end
|
@@ -41,7 +41,7 @@ module Applitools
|
|
41
41
|
end
|
42
42
|
|
43
43
|
def location
|
44
|
-
Location.new left, top
|
44
|
+
Applitools::Location.new left, top
|
45
45
|
end
|
46
46
|
|
47
47
|
def location=(other_location)
|
@@ -91,6 +91,14 @@ module Applitools
|
|
91
91
|
Applitools::Location.for(mid_x.round, mid_y.round)
|
92
92
|
end
|
93
93
|
|
94
|
+
def scale_it!(scale_factor)
|
95
|
+
@left = (@left * scale_factor).to_i
|
96
|
+
@top = (@top * scale_factor).to_i
|
97
|
+
@width = (@width * scale_factor).to_i
|
98
|
+
@height = (@height * scale_factor).to_i
|
99
|
+
self
|
100
|
+
end
|
101
|
+
|
94
102
|
def sub_regions(subregion_size, is_fixed_size = false)
|
95
103
|
return self.class.sub_regions_with_fixed_size self, subregion_size if is_fixed_size
|
96
104
|
self.class.sub_regions_with_varying_size self, subregion_size
|
@@ -0,0 +1,23 @@
|
|
1
|
+
require 'rspec/expectations'
|
2
|
+
|
3
|
+
RSpec::Matchers.define :match_baseline do |expected, tag|
|
4
|
+
match do |actual|
|
5
|
+
unless expected.is_a? Applitools::EyesBase
|
6
|
+
raise Applitools::EyesIllegalArgument.new(
|
7
|
+
"Expected #{expected} to be a Applitools::EyesBase instance, but got #{expected.class.name}."
|
8
|
+
)
|
9
|
+
end
|
10
|
+
|
11
|
+
eyes_selenium_target = Applitools::ClassName.new('Applitools::Selenium::Target')
|
12
|
+
eyes_images_target = Applitools::ClassName.new('Applitools::Images::Target')
|
13
|
+
|
14
|
+
case actual
|
15
|
+
when eyes_selenium_target, eyes_images_target
|
16
|
+
result = expected.check(tag, actual)
|
17
|
+
return result if [TrueClass, FalseClass].include?(result.class)
|
18
|
+
return result.as_expected? if result.respond_to? :as_expected?
|
19
|
+
else
|
20
|
+
false
|
21
|
+
end
|
22
|
+
end
|
23
|
+
end
|
@@ -187,7 +187,6 @@ module Applitools::Utils
|
|
187
187
|
|
188
188
|
# @param [Applitools::Selenium::Driver] executor
|
189
189
|
def entire_page_size(executor)
|
190
|
-
return Applitools::MOCK_ENTIRE_SIZE if defined?(Applitools::MOCK_ENTIRE_SIZE)
|
191
190
|
metrics = page_metrics(executor)
|
192
191
|
max_document_element_height = [metrics[:client_height], metrics[:scroll_height]].max
|
193
192
|
max_body_height = [metrics[:body_client_height], metrics[:body_scroll_height]].max
|
@@ -199,7 +198,6 @@ module Applitools::Utils
|
|
199
198
|
end
|
200
199
|
|
201
200
|
def current_frame_content_entire_size(executor)
|
202
|
-
return Applitools::MOCK_ENTIRE_SIZE if defined?(Applitools::MOCK_ENTIRE_SIZE)
|
203
201
|
dimensions = executor.execute_script(JS_GET_CONTENT_ENTIRE_SIZE)
|
204
202
|
Applitools::RectangleSize.new(dimensions.first.to_i, dimensions.last.to_i)
|
205
203
|
rescue
|
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: 3.14.
|
4
|
+
version: 3.14.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Applitools Team
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2017-12-
|
11
|
+
date: 2017-12-29 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: oily_png
|
@@ -203,16 +203,43 @@ files:
|
|
203
203
|
- ext/eyes_core/extconf.rb
|
204
204
|
- ext/eyes_core/eyes_core.c
|
205
205
|
- ext/eyes_core/eyes_core.h
|
206
|
+
- lib/applitools/calabash/calabash_element.rb
|
207
|
+
- lib/applitools/calabash/calabash_screenshot_provider.rb
|
208
|
+
- lib/applitools/calabash/environment_detector.rb
|
209
|
+
- lib/applitools/calabash/eyes.rb
|
210
|
+
- lib/applitools/calabash/eyes_calabash_android_screenshot.rb
|
211
|
+
- lib/applitools/calabash/eyes_calabash_ios_screenshot.rb
|
212
|
+
- lib/applitools/calabash/eyes_calabash_screenshot.rb
|
213
|
+
- lib/applitools/calabash/eyes_hooks.rb
|
214
|
+
- lib/applitools/calabash/eyes_settings.rb
|
215
|
+
- lib/applitools/calabash/full_page_capture_algorithm.rb
|
216
|
+
- lib/applitools/calabash/full_page_capture_algorithm/android_scroll_view.rb
|
217
|
+
- lib/applitools/calabash/full_page_capture_algorithm/base.rb
|
218
|
+
- lib/applitools/calabash/full_page_capture_algorithm/ios_ui_table_view.rb
|
219
|
+
- lib/applitools/calabash/os_versions.rb
|
220
|
+
- lib/applitools/calabash/rspec_matchers.rb
|
221
|
+
- lib/applitools/calabash/steps/android_eyes_session.rb
|
222
|
+
- lib/applitools/calabash/steps/android_matchers.rb
|
223
|
+
- lib/applitools/calabash/steps/eyes_session.rb
|
224
|
+
- lib/applitools/calabash/steps/eyes_settings.rb
|
225
|
+
- lib/applitools/calabash/steps/ios_eyes_session.rb
|
226
|
+
- lib/applitools/calabash/steps/ios_matchers.rb
|
227
|
+
- lib/applitools/calabash/steps/matchers.rb
|
228
|
+
- lib/applitools/calabash/target.rb
|
229
|
+
- lib/applitools/calabash/utils.rb
|
230
|
+
- lib/applitools/calabash_steps.rb
|
206
231
|
- lib/applitools/capybara.rb
|
207
232
|
- lib/applitools/chunky_png/resampling.rb
|
208
233
|
- lib/applitools/chunky_png_patch.rb
|
209
234
|
- lib/applitools/connectivity/proxy.rb
|
210
235
|
- lib/applitools/connectivity/server_connector.rb
|
236
|
+
- lib/applitools/core/abstract_region.rb
|
211
237
|
- lib/applitools/core/app_environment.rb
|
212
238
|
- lib/applitools/core/app_output.rb
|
213
239
|
- lib/applitools/core/app_output_with_screenshot.rb
|
214
240
|
- lib/applitools/core/argument_guard.rb
|
215
241
|
- lib/applitools/core/batch_info.rb
|
242
|
+
- lib/applitools/core/class_name.rb
|
216
243
|
- lib/applitools/core/debug_screenshot_provider.rb
|
217
244
|
- lib/applitools/core/eyes_base.rb
|
218
245
|
- lib/applitools/core/eyes_screenshot.rb
|
@@ -244,6 +271,7 @@ files:
|
|
244
271
|
- lib/applitools/extensions.rb
|
245
272
|
- lib/applitools/eyes_logger.rb
|
246
273
|
- lib/applitools/method_tracer.rb
|
274
|
+
- lib/applitools/rspec/target_matcher.rb
|
247
275
|
- lib/applitools/sauce.rb
|
248
276
|
- lib/applitools/utils/eyes_selenium_utils.rb
|
249
277
|
- lib/applitools/utils/image_delta_compressor.rb
|