eyes_core 4.6.3 → 6.0.0
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/CHANGELOG.md +504 -0
- data/Rakefile +35 -0
- data/eyes_core.gemspec +60 -0
- data/lib/applitools/core/batch_info.rb +2 -0
- data/lib/applitools/core/classic_runner.rb +1 -3
- data/lib/applitools/core/eyes_base.rb +110 -22
- data/lib/applitools/core/eyes_base_configuration.rb +9 -1
- data/lib/applitools/core/eyes_runner.rb +3 -2
- data/lib/applitools/core/test_result_summary.rb +7 -7
- data/lib/applitools/core/test_results.rb +19 -3
- data/lib/applitools/core/universal_eyes_checks.rb +2 -1
- data/lib/applitools/core/universal_eyes_open.rb +5 -1
- data/lib/applitools/eyes_core/version.rb +10 -0
- data/lib/applitools/universal_sdk/universal_client.rb +26 -10
- data/lib/applitools/universal_sdk/universal_eyes.rb +5 -0
- data/lib/applitools/universal_sdk/universal_eyes_config.rb +10 -9
- data/lib/applitools/universal_sdk/universal_eyes_manager.rb +1 -1
- data/lib/eyes_core.rb +1 -3
- metadata +14 -58
- data/ext/eyes_core/extconf.rb +0 -5
- data/ext/eyes_core/eyes_core.c +0 -252
- data/ext/eyes_core/eyes_core.h +0 -28
- data/lib/applitools/appium/android_region_provider.rb +0 -32
- data/lib/applitools/appium/android_screenshot.rb +0 -21
- data/lib/applitools/appium/driver.rb +0 -12
- data/lib/applitools/appium/eyes.rb +0 -189
- data/lib/applitools/appium/ios_region_provider.rb +0 -25
- data/lib/applitools/appium/ios_screenshot.rb +0 -10
- data/lib/applitools/appium/region_provider.rb +0 -51
- data/lib/applitools/appium/screenshot.rb +0 -30
- data/lib/applitools/appium/target.rb +0 -240
- data/lib/applitools/appium/utils.rb +0 -64
- data/lib/applitools/calabash/calabash_element.rb +0 -64
- data/lib/applitools/calabash/calabash_screenshot_provider.rb +0 -83
- data/lib/applitools/calabash/environment_detector.rb +0 -25
- data/lib/applitools/calabash/eyes.rb +0 -194
- data/lib/applitools/calabash/eyes_calabash_android_screenshot.rb +0 -68
- data/lib/applitools/calabash/eyes_calabash_ios_screenshot.rb +0 -30
- data/lib/applitools/calabash/eyes_calabash_screenshot.rb +0 -80
- data/lib/applitools/calabash/eyes_hooks.rb +0 -51
- data/lib/applitools/calabash/eyes_settings.rb +0 -45
- data/lib/applitools/calabash/full_page_capture_algorithm/android_scroll_view.rb +0 -95
- data/lib/applitools/calabash/full_page_capture_algorithm/base.rb +0 -51
- data/lib/applitools/calabash/full_page_capture_algorithm/ios_ui_table_view.rb +0 -150
- data/lib/applitools/calabash/full_page_capture_algorithm.rb +0 -26
- data/lib/applitools/calabash/os_versions.rb +0 -25
- data/lib/applitools/calabash/rspec_matchers.rb +0 -25
- data/lib/applitools/calabash/steps/android_eyes_session.rb +0 -37
- data/lib/applitools/calabash/steps/android_matchers.rb +0 -36
- data/lib/applitools/calabash/steps/eyes_session.rb +0 -42
- data/lib/applitools/calabash/steps/eyes_settings.rb +0 -59
- data/lib/applitools/calabash/steps/ios_eyes_session.rb +0 -15
- data/lib/applitools/calabash/steps/ios_matchers.rb +0 -17
- data/lib/applitools/calabash/steps/matchers.rb +0 -71
- data/lib/applitools/calabash/target.rb +0 -69
- data/lib/applitools/calabash/utils.rb +0 -74
- data/lib/applitools/calabash_steps.rb +0 -16
- data/lib/applitools/capybara/capybara_settings.rb +0 -25
- data/lib/applitools/capybara/driver.rb +0 -39
- data/lib/applitools/rspec/target_matcher.rb +0 -25
- data/lib/applitools/universal_sdk/executable_finder.rb +0 -57
- data/lib/applitools/universal_sdk/universal_server_control.rb +0 -79
- data/lib/applitools/version.rb +0 -8
- data/lib/eyes_consts.rb +0 -4
- data/lib/eyes_rspec.rb +0 -4
@@ -1,25 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
module Applitools
|
4
|
-
module Selenium
|
5
|
-
module Capybara
|
6
|
-
module CapybaraSettings
|
7
|
-
# Registers Capybara driver which will be used by eyes and sets it as default Capybara driver.
|
8
|
-
# The name of the driver is :eyes, and the driver is a descendant of class Capybara::Selenium::Driver.
|
9
|
-
# Options are eventually passed to drivers constructor
|
10
|
-
# @param [Hash] options
|
11
|
-
# @example
|
12
|
-
# Applitools.register_capybara_driver :browser => :chrome
|
13
|
-
# @example
|
14
|
-
# Applitools.register_capybara_driver :browser => :remote, :url => 'remote_url', :desired_capabilities => {}
|
15
|
-
def register_capybara_driver(options = {})
|
16
|
-
::Capybara.register_driver :eyes do |app|
|
17
|
-
Applitools::Selenium::Capybara::Driver.new app, options
|
18
|
-
end
|
19
|
-
::Capybara.default_driver = :eyes
|
20
|
-
::Capybara.javascript_driver = :eyes
|
21
|
-
end
|
22
|
-
end
|
23
|
-
end
|
24
|
-
end
|
25
|
-
end
|
@@ -1,39 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
if defined? Capybara::Selenium::Driver
|
4
|
-
module Applitools::Selenium::Capybara
|
5
|
-
# @!visibility private
|
6
|
-
class Driver < Capybara::Selenium::Driver
|
7
|
-
def driver_for_eyes(eyes)
|
8
|
-
browser eyes: eyes
|
9
|
-
end
|
10
|
-
|
11
|
-
def browser(options = {})
|
12
|
-
eyes = options.delete(:eyes)
|
13
|
-
@native_browser ||= super()
|
14
|
-
unless eyes.nil?
|
15
|
-
is_mobile_device = @browser.capabilities['platformName'] ? true : false
|
16
|
-
@browser = Applitools::Selenium::Driver.new eyes,
|
17
|
-
options.merge(driver: @browser, is_mobile_device: is_mobile_device)
|
18
|
-
end
|
19
|
-
@browser
|
20
|
-
end
|
21
|
-
|
22
|
-
def use_native_browser
|
23
|
-
@browser = @native_browser
|
24
|
-
end
|
25
|
-
end
|
26
|
-
end
|
27
|
-
end
|
28
|
-
|
29
|
-
if defined? ::Capybara::Session
|
30
|
-
::Capybara::Session.class_eval do
|
31
|
-
def driver_for_eyes(eyes)
|
32
|
-
driver.driver_for_eyes eyes
|
33
|
-
end
|
34
|
-
|
35
|
-
def use_native_browser
|
36
|
-
driver.use_native_browser if driver.respond_to? :use_native_browser
|
37
|
-
end
|
38
|
-
end
|
39
|
-
end
|
@@ -1,25 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
require 'rspec/expectations'
|
4
|
-
|
5
|
-
RSpec::Matchers.define :match_baseline do |expected, tag|
|
6
|
-
match do |actual|
|
7
|
-
unless expected.is_a? Applitools::EyesBase
|
8
|
-
raise Applitools::EyesIllegalArgument.new(
|
9
|
-
"Expected #{expected} to be a Applitools::EyesBase instance, but got #{expected.class.name}."
|
10
|
-
)
|
11
|
-
end
|
12
|
-
|
13
|
-
eyes_selenium_target = Applitools::ClassName.new('Applitools::Selenium::Target')
|
14
|
-
eyes_images_target = Applitools::ClassName.new('Applitools::Images::Target')
|
15
|
-
|
16
|
-
case actual
|
17
|
-
when eyes_selenium_target, eyes_images_target
|
18
|
-
result = expected.check(tag, actual)
|
19
|
-
return result if [TrueClass, FalseClass].include?(result.class)
|
20
|
-
return result.as_expected? if result.respond_to? :as_expected?
|
21
|
-
else
|
22
|
-
false
|
23
|
-
end
|
24
|
-
end
|
25
|
-
end
|
@@ -1,57 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
module Applitools::Connectivity
|
4
|
-
module UniversalServerGemFinder
|
5
|
-
extend self
|
6
|
-
|
7
|
-
SERVER_GEM_NAME = 'eyes_universal'
|
8
|
-
|
9
|
-
def filepath
|
10
|
-
server_lib ? File.join(server_lib.gem_dir, 'ext', 'eyes-universal', filename) : ''
|
11
|
-
end
|
12
|
-
|
13
|
-
def other_filepaths
|
14
|
-
in_gem_path = File.join('gems', server_lib.full_name, 'ext', 'eyes-universal', filename)
|
15
|
-
Gem.path.map {|path| File.expand_path(in_gem_path, path) }
|
16
|
-
end
|
17
|
-
|
18
|
-
def executable_filepath
|
19
|
-
raise 'Universal server not Found' if server_lib.nil?
|
20
|
-
return filepath if valid_file?(filepath)
|
21
|
-
core_path = other_filepaths.find {|path| valid_file?(path) }
|
22
|
-
return core_path if core_path
|
23
|
-
raise 'Universal server unrecognized'
|
24
|
-
end
|
25
|
-
|
26
|
-
private
|
27
|
-
|
28
|
-
def server_lib
|
29
|
-
Gem::Specification.find_by_name(SERVER_GEM_NAME)
|
30
|
-
rescue Gem::MissingSpecError
|
31
|
-
nil
|
32
|
-
end
|
33
|
-
|
34
|
-
def filename
|
35
|
-
return 'core-win.exe' if Gem.win_platform?
|
36
|
-
case RUBY_PLATFORM
|
37
|
-
when /darwin/i
|
38
|
-
'core-macos'
|
39
|
-
when /arm/i
|
40
|
-
'core-linux-arm64'
|
41
|
-
when /mswin|windows|mingw/i
|
42
|
-
'core-win.exe'
|
43
|
-
when /musl/i
|
44
|
-
'core-alpine'
|
45
|
-
when /linux|arch/i
|
46
|
-
'core-linux'
|
47
|
-
else
|
48
|
-
raise 'Unsupported platform'
|
49
|
-
end
|
50
|
-
end
|
51
|
-
|
52
|
-
def valid_file?(path)
|
53
|
-
File.exist?(path) && File.executable?(path)
|
54
|
-
end
|
55
|
-
|
56
|
-
end
|
57
|
-
end
|
@@ -1,79 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
require 'singleton'
|
4
|
-
|
5
|
-
module Applitools::Connectivity
|
6
|
-
class UniversalServerControl
|
7
|
-
|
8
|
-
include Singleton
|
9
|
-
|
10
|
-
DEFAULT_SERVER_IP = '127.0.0.1'
|
11
|
-
EXECUTABLE_FILEPATH = Applitools::Connectivity::UniversalServerGemFinder.executable_filepath
|
12
|
-
|
13
|
-
def initialize
|
14
|
-
@control_pipe = nil
|
15
|
-
@port_pipe = nil
|
16
|
-
@usdk_pid = nil
|
17
|
-
@monitoring_thread = nil
|
18
|
-
@port = nil
|
19
|
-
start_server_with_pipe
|
20
|
-
@sockets = []
|
21
|
-
end
|
22
|
-
|
23
|
-
def server_port
|
24
|
-
@port
|
25
|
-
end
|
26
|
-
|
27
|
-
def new_server_socket_connection
|
28
|
-
begin
|
29
|
-
socket = TCPSocket.new(DEFAULT_SERVER_IP, @port)
|
30
|
-
@sockets.push(socket)
|
31
|
-
socket
|
32
|
-
rescue Errno::ECONNREFUSED
|
33
|
-
nil
|
34
|
-
end
|
35
|
-
end
|
36
|
-
|
37
|
-
def server_running?
|
38
|
-
return false if @monitoring_thread.nil?
|
39
|
-
monitoring_result = @monitoring_thread.join(1)
|
40
|
-
monitoring_result.nil?
|
41
|
-
end
|
42
|
-
|
43
|
-
def stop_server
|
44
|
-
return if @control_pipe.nil?
|
45
|
-
@control_pipe.close_write
|
46
|
-
@sockets.each {|socket| socket.close unless socket.closed? }
|
47
|
-
sleep(1)
|
48
|
-
end
|
49
|
-
|
50
|
-
def to_s # for test & debug
|
51
|
-
"SDKServer(port=#{@port}; pid=#{@usdk_pid})"
|
52
|
-
end
|
53
|
-
|
54
|
-
private
|
55
|
-
|
56
|
-
def start_server_with_pipe
|
57
|
-
in_pipe, @control_pipe = IO.pipe
|
58
|
-
@port_pipe, port_w = IO.pipe
|
59
|
-
|
60
|
-
@usdk_pid = spawn(
|
61
|
-
EXECUTABLE_FILEPATH, 'universal', '--no-singleton', '--shutdown-mode', 'stdin',
|
62
|
-
in: in_pipe, out: port_w, err: port_w,
|
63
|
-
# close_others: true
|
64
|
-
)
|
65
|
-
in_pipe.close_read
|
66
|
-
port_w.close_write
|
67
|
-
|
68
|
-
@monitoring_thread = Process.detach(@usdk_pid)
|
69
|
-
|
70
|
-
@port = @port_pipe.readline.strip.to_i
|
71
|
-
@port_pipe.close_read
|
72
|
-
|
73
|
-
if ENV['APPLITOOLS_SHOW_LOGS']
|
74
|
-
Applitools::EyesLogger.logger.debug("Started Universal SDK server at #{@port} pid = #{@usdk_pid}")
|
75
|
-
end
|
76
|
-
end
|
77
|
-
|
78
|
-
end
|
79
|
-
end
|
data/lib/applitools/version.rb
DELETED
data/lib/eyes_consts.rb
DELETED
data/lib/eyes_rspec.rb
DELETED