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.
Files changed (66) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +504 -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/classic_runner.rb +1 -3
  7. data/lib/applitools/core/eyes_base.rb +110 -22
  8. data/lib/applitools/core/eyes_base_configuration.rb +9 -1
  9. data/lib/applitools/core/eyes_runner.rb +3 -2
  10. data/lib/applitools/core/test_result_summary.rb +7 -7
  11. data/lib/applitools/core/test_results.rb +19 -3
  12. data/lib/applitools/core/universal_eyes_checks.rb +2 -1
  13. data/lib/applitools/core/universal_eyes_open.rb +5 -1
  14. data/lib/applitools/eyes_core/version.rb +10 -0
  15. data/lib/applitools/universal_sdk/universal_client.rb +26 -10
  16. data/lib/applitools/universal_sdk/universal_eyes.rb +5 -0
  17. data/lib/applitools/universal_sdk/universal_eyes_config.rb +10 -9
  18. data/lib/applitools/universal_sdk/universal_eyes_manager.rb +1 -1
  19. data/lib/eyes_core.rb +1 -3
  20. metadata +14 -58
  21. data/ext/eyes_core/extconf.rb +0 -5
  22. data/ext/eyes_core/eyes_core.c +0 -252
  23. data/ext/eyes_core/eyes_core.h +0 -28
  24. data/lib/applitools/appium/android_region_provider.rb +0 -32
  25. data/lib/applitools/appium/android_screenshot.rb +0 -21
  26. data/lib/applitools/appium/driver.rb +0 -12
  27. data/lib/applitools/appium/eyes.rb +0 -189
  28. data/lib/applitools/appium/ios_region_provider.rb +0 -25
  29. data/lib/applitools/appium/ios_screenshot.rb +0 -10
  30. data/lib/applitools/appium/region_provider.rb +0 -51
  31. data/lib/applitools/appium/screenshot.rb +0 -30
  32. data/lib/applitools/appium/target.rb +0 -240
  33. data/lib/applitools/appium/utils.rb +0 -64
  34. data/lib/applitools/calabash/calabash_element.rb +0 -64
  35. data/lib/applitools/calabash/calabash_screenshot_provider.rb +0 -83
  36. data/lib/applitools/calabash/environment_detector.rb +0 -25
  37. data/lib/applitools/calabash/eyes.rb +0 -194
  38. data/lib/applitools/calabash/eyes_calabash_android_screenshot.rb +0 -68
  39. data/lib/applitools/calabash/eyes_calabash_ios_screenshot.rb +0 -30
  40. data/lib/applitools/calabash/eyes_calabash_screenshot.rb +0 -80
  41. data/lib/applitools/calabash/eyes_hooks.rb +0 -51
  42. data/lib/applitools/calabash/eyes_settings.rb +0 -45
  43. data/lib/applitools/calabash/full_page_capture_algorithm/android_scroll_view.rb +0 -95
  44. data/lib/applitools/calabash/full_page_capture_algorithm/base.rb +0 -51
  45. data/lib/applitools/calabash/full_page_capture_algorithm/ios_ui_table_view.rb +0 -150
  46. data/lib/applitools/calabash/full_page_capture_algorithm.rb +0 -26
  47. data/lib/applitools/calabash/os_versions.rb +0 -25
  48. data/lib/applitools/calabash/rspec_matchers.rb +0 -25
  49. data/lib/applitools/calabash/steps/android_eyes_session.rb +0 -37
  50. data/lib/applitools/calabash/steps/android_matchers.rb +0 -36
  51. data/lib/applitools/calabash/steps/eyes_session.rb +0 -42
  52. data/lib/applitools/calabash/steps/eyes_settings.rb +0 -59
  53. data/lib/applitools/calabash/steps/ios_eyes_session.rb +0 -15
  54. data/lib/applitools/calabash/steps/ios_matchers.rb +0 -17
  55. data/lib/applitools/calabash/steps/matchers.rb +0 -71
  56. data/lib/applitools/calabash/target.rb +0 -69
  57. data/lib/applitools/calabash/utils.rb +0 -74
  58. data/lib/applitools/calabash_steps.rb +0 -16
  59. data/lib/applitools/capybara/capybara_settings.rb +0 -25
  60. data/lib/applitools/capybara/driver.rb +0 -39
  61. data/lib/applitools/rspec/target_matcher.rb +0 -25
  62. data/lib/applitools/universal_sdk/executable_finder.rb +0 -57
  63. data/lib/applitools/universal_sdk/universal_server_control.rb +0 -79
  64. data/lib/applitools/version.rb +0 -8
  65. data/lib/eyes_consts.rb +0 -4
  66. 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
@@ -1,8 +0,0 @@
1
- # frozen_string_literal: false
2
-
3
- module Applitools
4
- VERSION = '4.6.3'.freeze
5
- IMAGES_VERSION = '4.2.3'.freeze
6
- UNIVERSAL_VERSION = '3.3.3'.freeze
7
- UNIVERSAL_CORE_VERSION = '3.4.0'.freeze
8
- end
data/lib/eyes_consts.rb DELETED
@@ -1,4 +0,0 @@
1
- module Applitools
2
- JS_PATH = 'lib/applitools/selenium/scripts/node_modules'.freeze
3
- SCRIPT_TEMPLATES_PATH = 'lib/applitools/selenium/scripts'.freeze
4
- end
data/lib/eyes_rspec.rb DELETED
@@ -1,4 +0,0 @@
1
- # frozen_string_literal: true
2
- #
3
-
4
- Applitools.require_dir('rspec') if defined? RSpec