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