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.
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