eyes_selenium 2.39.1 → 3.0.6
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/capybara.rb +1 -1
- data/lib/applitools/selenium/border_aware_element_content_location_provider.rb +41 -0
- data/lib/applitools/selenium/browser.rb +1 -0
- data/lib/applitools/selenium/capybara/capybara_settings.rb +8 -0
- data/lib/applitools/selenium/capybara/driver.rb +1 -0
- data/lib/applitools/selenium/context_based_scale_provider.rb +36 -0
- data/lib/applitools/selenium/css_translate_position_provider.rb +66 -0
- data/lib/applitools/selenium/driver.rb +159 -44
- data/lib/applitools/selenium/element.rb +100 -8
- data/lib/applitools/selenium/element_position_provider.rb +48 -0
- data/lib/applitools/selenium/eyes.rb +922 -0
- data/lib/applitools/selenium/eyes_target_locator.rb +191 -0
- data/lib/applitools/selenium/eyes_web_driver_screenshot.rb +274 -0
- data/lib/applitools/selenium/frame.rb +24 -0
- data/lib/applitools/selenium/frame_chain.rb +68 -0
- data/lib/applitools/selenium/full_page_capture_algorithm.rb +162 -0
- data/lib/applitools/selenium/keyboard.rb +1 -0
- data/lib/applitools/selenium/match_window_task.rb +0 -197
- data/lib/applitools/selenium/mouse.rb +1 -0
- data/lib/applitools/selenium/move_to_region_visibility_strategy.rb +33 -0
- data/lib/applitools/selenium/nop_region_visibility_strategy.rb +16 -0
- data/lib/applitools/selenium/scroll_position_provider.rb +52 -0
- data/lib/applitools/selenium/takes_screenshot_image_provider.rb +36 -0
- data/lib/applitools/version.rb +1 -1
- data/lib/eyes_selenium.rb +19 -30
- metadata +24 -254
- data/.gitignore +0 -18
- data/.rspec +0 -2
- data/.rubocop.yml +0 -57
- data/.travis.yml +0 -17
- data/Gemfile +0 -4
- data/LICENSE.txt +0 -13
- data/README.md +0 -38
- data/Rakefile +0 -11
- data/certs/cacert.pem +0 -3557
- data/examples/appium_example_script.rb +0 -59
- data/examples/capybara_example.rb +0 -82
- data/examples/sauce_capybara_example.rb +0 -41
- data/examples/sauce_example.rb +0 -34
- data/examples/simple_test_script.rb +0 -23
- data/examples/watir_test_script.rb +0 -26
- data/eyes_selenium.gemspec +0 -89
- data/lib/applitools/appium_driver.rb +0 -7
- data/lib/applitools/base/batch_info.rb +0 -21
- data/lib/applitools/base/dimension.rb +0 -36
- data/lib/applitools/base/environment.rb +0 -19
- data/lib/applitools/base/image_position.rb +0 -10
- data/lib/applitools/base/mouse_trigger.rb +0 -33
- data/lib/applitools/base/point.rb +0 -34
- data/lib/applitools/base/region.rb +0 -112
- data/lib/applitools/base/server_connector.rb +0 -120
- data/lib/applitools/base/session.rb +0 -15
- data/lib/applitools/base/start_info.rb +0 -34
- data/lib/applitools/base/test_results.rb +0 -28
- data/lib/applitools/base/text_trigger.rb +0 -22
- data/lib/applitools/extensions.rb +0 -17
- data/lib/applitools/eyes.rb +0 -460
- data/lib/applitools/eyes_logger.rb +0 -38
- data/lib/applitools/method_tracer.rb +0 -22
- data/lib/applitools/poltergeist/applitools_compatible.rb +0 -28
- data/lib/applitools/poltergeist/driver.rb +0 -11
- data/lib/applitools/sauce.rb +0 -2
- data/lib/applitools/selenium/match_window_data.rb +0 -28
- data/lib/applitools/selenium_webdriver.rb +0 -8
- data/lib/applitools/utils/image_delta_compressor.rb +0 -148
- data/lib/applitools/utils/image_utils.rb +0 -143
- data/lib/applitools/utils/utils.rb +0 -49
- data/lib/applitools/watir_browser.rb +0 -8
- data/spec/driver_passthrough_spec.rb +0 -68
- data/spec/fixtures/static_test_file.html +0 -15
- data/spec/spec_helper.rb +0 -17
@@ -1,59 +0,0 @@
|
|
1
|
-
require 'logger'
|
2
|
-
require 'appium_lib'
|
3
|
-
|
4
|
-
require 'eyes_selenium'
|
5
|
-
|
6
|
-
# Based on Appium example: https://github.com/appium/appium/blob/master/sample-code/examples/ruby/
|
7
|
-
|
8
|
-
def android_caps
|
9
|
-
{
|
10
|
-
deviceName: 'Samsung Galaxy S4 Emulator',
|
11
|
-
platformName: 'Android',
|
12
|
-
platformVersion: 4.4,
|
13
|
-
app: ENV['ANDROID_NOTES_LIST_APP'],
|
14
|
-
appPackage: 'com.example.android.notepad',
|
15
|
-
appActivity: '.NotesList',
|
16
|
-
# orientation: 'landscape',
|
17
|
-
newCommandTimeout: 300
|
18
|
-
}
|
19
|
-
end
|
20
|
-
|
21
|
-
def ios_caps
|
22
|
-
{
|
23
|
-
deviceName: 'iPhone 6',
|
24
|
-
platformName: 'ios',
|
25
|
-
platformVersion: 8.4,
|
26
|
-
app: ENV['IOS_DEMO_APP'],
|
27
|
-
orientation: 'landscape',
|
28
|
-
newCommandTimeout: 300
|
29
|
-
}
|
30
|
-
end
|
31
|
-
|
32
|
-
def appium_opts
|
33
|
-
{
|
34
|
-
server_url: 'http://127.0.0.1:4723/wd/hub'
|
35
|
-
}
|
36
|
-
end
|
37
|
-
|
38
|
-
eyes = Applitools::Eyes.new
|
39
|
-
eyes.log_handler = Logger.new(STDOUT)
|
40
|
-
eyes.api_key = ENV['APPLITOOLS_API_KEY']
|
41
|
-
|
42
|
-
begin
|
43
|
-
# driver = Selenium::WebDriver.for(:remote, :url => 'http://localhost:4723/wd/hub', :desired_capabilities => ios_caps)
|
44
|
-
# driver = Appium::Driver.new({caps: android_caps, appium_lib: appium_opts})
|
45
|
-
driver = Appium::Driver.new(caps: ios_caps, appium_lib: appium_opts)
|
46
|
-
driver.start_driver
|
47
|
-
# driver.driver.rotate :landscape
|
48
|
-
puts "Screen size: #{driver.driver.manage.window.size}"
|
49
|
-
puts "orientation: #{driver.driver.orientation}"
|
50
|
-
puts driver.caps
|
51
|
-
eyes.open(app_name: 'Ruby SDK', test_name: 'Appium Notepad', driver: driver)
|
52
|
-
|
53
|
-
eyes.check_window('No notes')
|
54
|
-
eyes.close
|
55
|
-
ensure
|
56
|
-
eyes.abort_if_not_closed
|
57
|
-
driver.driver_quit
|
58
|
-
# driver.quit
|
59
|
-
end
|
@@ -1,82 +0,0 @@
|
|
1
|
-
require 'rspec'
|
2
|
-
require 'capybara/rspec'
|
3
|
-
require 'eyes_selenium'
|
4
|
-
require 'applitools/capybara'
|
5
|
-
|
6
|
-
##
|
7
|
-
# This will register capybara driver :eyes by performing
|
8
|
-
#
|
9
|
-
# Capybara.register_driver :eyes do |app|
|
10
|
-
# Capybara::Selenium::Driver.new(options)
|
11
|
-
# end
|
12
|
-
#
|
13
|
-
# (options are passed to Applitools.register_capybara_driver method) and set it as a default driver.
|
14
|
-
# The page.driver.browser method will return Applitools::Selenium::Driver instance,
|
15
|
-
# based on standard Selenium::Webdriver driver, when eyes have opened.
|
16
|
-
# The page.driver.browser method will contain Selenium::Webdriver
|
17
|
-
# instance (without applitools wrapper), after eyes have closed
|
18
|
-
#
|
19
|
-
Applitools.register_capybara_driver :browser => :chrome
|
20
|
-
|
21
|
-
# Register another driver if needed
|
22
|
-
Capybara.register_driver :selenium_chrome do |app|
|
23
|
-
Capybara::Selenium::Driver.new(app, :browser => :chrome)
|
24
|
-
end
|
25
|
-
|
26
|
-
# And even one more
|
27
|
-
Capybara.register_driver :selenium_firefox do |app|
|
28
|
-
Capybara::Selenium::Driver.new(app, :browser => :firefox)
|
29
|
-
end
|
30
|
-
|
31
|
-
describe 'Capybara Example', :type => :feature, :js => true do
|
32
|
-
let(:eyes) do
|
33
|
-
Applitools::Eyes.new.tap do |eyes|
|
34
|
-
eyes.api_key = ENV['APPLITOOLS_API_KEY']
|
35
|
-
eyes.log_handler = Logger.new(STDOUT)
|
36
|
-
end
|
37
|
-
end
|
38
|
-
|
39
|
-
it 'Simple test' do
|
40
|
-
eyes.open(app_name: 'Ruby SDK', test_name: 'Capybara test', driver: page,
|
41
|
-
viewport_size: { width: 800, height: 600 })
|
42
|
-
visit 'http://github.com'
|
43
|
-
eyes.check_window('homepage')
|
44
|
-
fill_in('user[login]', with: 'user')
|
45
|
-
eyes.check_window('homepage with username')
|
46
|
-
eyes.close
|
47
|
-
end
|
48
|
-
|
49
|
-
##
|
50
|
-
# This will use :eyes driver with standard browser, without Applitools wrapper
|
51
|
-
# In our case - Selenium::Webdriver for :crome
|
52
|
-
#
|
53
|
-
it 'common capybara test' do
|
54
|
-
visit 'http://github.com'
|
55
|
-
fill_in('user[login]', with: 'user')
|
56
|
-
# and so on
|
57
|
-
end
|
58
|
-
|
59
|
-
it 'other chrome test' do
|
60
|
-
##
|
61
|
-
# this uses :selenium_chrome driver (see Capybara.register_driver block) instead of :eyes driver
|
62
|
-
Capybara.using_driver :selenium_chrome do
|
63
|
-
visit 'http://github.com'
|
64
|
-
fill_in('user[login]', with: 'user')
|
65
|
-
# and so on
|
66
|
-
end
|
67
|
-
end
|
68
|
-
|
69
|
-
after :each do
|
70
|
-
eyes.abort_if_not_closed
|
71
|
-
end
|
72
|
-
end
|
73
|
-
|
74
|
-
describe 'Other Capybara tests', :type => :feature, :js => true do
|
75
|
-
it 'some other chrome test' do
|
76
|
-
Capybara.using_driver :selenium_chrome do
|
77
|
-
visit 'http://github.com'
|
78
|
-
fill_in('user[login]', with: 'user')
|
79
|
-
# and so on
|
80
|
-
end
|
81
|
-
end
|
82
|
-
end
|
@@ -1,41 +0,0 @@
|
|
1
|
-
require 'rspec'
|
2
|
-
require 'capybara/rspec'
|
3
|
-
require 'sauce'
|
4
|
-
require 'sauce/capybara'
|
5
|
-
require 'eyes_selenium'
|
6
|
-
|
7
|
-
Sauce.config do |config|
|
8
|
-
config[:browsers] = [
|
9
|
-
['OS X 10.10', 'chrome', '39.0']
|
10
|
-
]
|
11
|
-
config[:start_tunnel] = false
|
12
|
-
# config[:sauce_connect_4_executable] = '/path/to/sauce-connect/bin/sc'
|
13
|
-
end
|
14
|
-
|
15
|
-
Capybara.configure do |c|
|
16
|
-
c.javascript_driver = :sauce
|
17
|
-
c.default_driver = :sauce
|
18
|
-
end
|
19
|
-
|
20
|
-
describe 'A Saucy Example Group', :type => :feature, :sauce => true do
|
21
|
-
let!(:eyes) do
|
22
|
-
Applitools::Eyes.new.tap do |eyes|
|
23
|
-
eyes.api_key = ENV['APPLITOOLS_API_KEY']
|
24
|
-
eyes.log_handler = Logger.new(STDOUT)
|
25
|
-
end
|
26
|
-
end
|
27
|
-
|
28
|
-
it 'Simple test' do
|
29
|
-
eyes.open(app_name: 'Ruby SDK', test_name: 'Capybara test', driver: page,
|
30
|
-
viewport_size: { width: 800, height: 600 })
|
31
|
-
visit 'http://github.com'
|
32
|
-
eyes.check_window('homepage')
|
33
|
-
fill_in 'user[login]', with: 'user'
|
34
|
-
eyes.check_window('homepage with username')
|
35
|
-
eyes.close(false)
|
36
|
-
end
|
37
|
-
|
38
|
-
after :each do
|
39
|
-
eyes.abort_if_not_closed
|
40
|
-
end
|
41
|
-
end
|
data/examples/sauce_example.rb
DELETED
@@ -1,34 +0,0 @@
|
|
1
|
-
require 'rspec'
|
2
|
-
require 'sauce'
|
3
|
-
require 'eyes_selenium'
|
4
|
-
|
5
|
-
Sauce.config do |config|
|
6
|
-
config[:browsers] = [
|
7
|
-
['OS X 10.10', 'chrome', '39.0']
|
8
|
-
]
|
9
|
-
config[:start_tunnel] = false
|
10
|
-
# config[:sauce_connect_4_executable] = '/path/to/sauce-connect/bin/sc'
|
11
|
-
end
|
12
|
-
|
13
|
-
describe 'A Saucy Example Group', sauce: true do
|
14
|
-
let!(:eyes) do
|
15
|
-
Applitools::Eyes.new.tap do |eyes|
|
16
|
-
eyes.api_key = ENV['APPLITOOLS_API_KEY']
|
17
|
-
eyes.log_handler = Logger.new(STDOUT)
|
18
|
-
end
|
19
|
-
end
|
20
|
-
|
21
|
-
it 'Simple test' do
|
22
|
-
eyes.test(app_name: 'Ruby SDK', test_name: 'Sauce plain test', driver: selenium,
|
23
|
-
viewport_size: { width: 800, height: 600 }) do |driver|
|
24
|
-
driver.get 'http://github.com'
|
25
|
-
eyes.check_window('homepage')
|
26
|
-
driver.find_element(:css, 'input[name="user[login]"]').send_keys 'user'
|
27
|
-
eyes.check_window('homepage with username')
|
28
|
-
end
|
29
|
-
end
|
30
|
-
|
31
|
-
after :each do
|
32
|
-
eyes.abort_if_not_closed
|
33
|
-
end
|
34
|
-
end
|
@@ -1,23 +0,0 @@
|
|
1
|
-
require_relative '../lib/eyes_selenium'
|
2
|
-
|
3
|
-
require 'logger'
|
4
|
-
require 'openssl'
|
5
|
-
OpenSSL::SSL::VERIFY_PEER = OpenSSL::SSL::VERIFY_NONE
|
6
|
-
|
7
|
-
eyes = Applitools::Eyes.new
|
8
|
-
eyes.api_key = ENV['APPLITOOLS_API_KEY']
|
9
|
-
eyes.log_handler = Logger.new(STDOUT)
|
10
|
-
# eyes.set_proxy('https://localhost:8888')
|
11
|
-
begin
|
12
|
-
web_driver = Selenium::WebDriver.for :chrome
|
13
|
-
|
14
|
-
eyes.test(app_name: 'Ruby SDK', test_name: 'Applitools website test', viewport_size: { width: 900, height: 600 },
|
15
|
-
driver: web_driver) do |driver|
|
16
|
-
driver.get 'http://www.applitools.com'
|
17
|
-
eyes.check_window('initial')
|
18
|
-
pricing = driver.find_element(:css, '.pricing a')
|
19
|
-
eyes.check_region(:element, pricing, 'pricing element')
|
20
|
-
end
|
21
|
-
ensure
|
22
|
-
web_driver.quit
|
23
|
-
end
|
@@ -1,26 +0,0 @@
|
|
1
|
-
require 'rubygems'
|
2
|
-
require 'watir'
|
3
|
-
require 'eyes_selenium'
|
4
|
-
require 'logger'
|
5
|
-
|
6
|
-
require 'openssl'
|
7
|
-
OpenSSL::SSL::VERIFY_PEER = OpenSSL::SSL::VERIFY_NONE
|
8
|
-
|
9
|
-
eyes = Applitools::Eyes.new
|
10
|
-
eyes.api_key = ENV['APPLITOOLS_API_KEY']
|
11
|
-
eyes.log_handler = Logger.new(STDOUT)
|
12
|
-
|
13
|
-
browser = Watir::Browser.new :chrome
|
14
|
-
|
15
|
-
begin
|
16
|
-
eyes.test(app_name: 'Ruby SDK', test_name: 'Applitools website test', viewport_size: { width: 900, height: 600 },
|
17
|
-
driver: browser) do |driver|
|
18
|
-
driver.get 'http://www.applitools.com'
|
19
|
-
eyes.check_window('initial')
|
20
|
-
eyes.check_region(:css, '.pricing', 'Pricing button')
|
21
|
-
driver.find_element(:css, '.pricing a').click
|
22
|
-
eyes.check_window('pricing page')
|
23
|
-
end
|
24
|
-
ensure
|
25
|
-
browser.quit
|
26
|
-
end
|
data/eyes_selenium.gemspec
DELETED
@@ -1,89 +0,0 @@
|
|
1
|
-
# coding: utf-8
|
2
|
-
lib = File.expand_path('../lib', __FILE__)
|
3
|
-
$LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
|
4
|
-
require 'applitools/version'
|
5
|
-
|
6
|
-
CURRENT_RYBY_VERSION = Gem::Version.new RUBY_VERSION
|
7
|
-
|
8
|
-
RUBY_1_9_3 = Gem::Version.new '1.9.3'
|
9
|
-
RUBY_2_0_0 = Gem::Version.new '2.0.0'
|
10
|
-
RUBY_2_2_2 = Gem::Version.new '2.2.2'
|
11
|
-
RUBY_2_4_0 = Gem::Version.new '2.4.0'
|
12
|
-
|
13
|
-
RUBY_KEY = [RUBY_1_9_3, RUBY_2_0_0, RUBY_2_2_2, RUBY_2_4_0].select { |v| v <= CURRENT_RYBY_VERSION }.last
|
14
|
-
|
15
|
-
EYES_GEM_SPECS = {
|
16
|
-
RUBY_1_9_3 => proc do |spec|
|
17
|
-
spec.add_development_dependency 'mime-types', ['~> 2.99.0']
|
18
|
-
spec.add_development_dependency 'rack', ['~> 1.6.0']
|
19
|
-
spec.add_development_dependency 'tomlrb', ['<= 1.2.2']
|
20
|
-
spec.add_development_dependency 'rubocop', ['~> 0.41.1']
|
21
|
-
spec.add_development_dependency 'cmdparse', ['= 2.0.2']
|
22
|
-
spec.add_development_dependency 'net-ssh', ['<= 3.0.0']
|
23
|
-
spec.add_development_dependency 'net-http-persistent', ['< 3.0.0']
|
24
|
-
spec.add_development_dependency 'sauce'
|
25
|
-
spec.add_dependency 'nokogiri', '~> 1.6.0'
|
26
|
-
spec.add_dependency 'public_suffix', '< 1.5.0'
|
27
|
-
spec.add_dependency 'appium_lib', '< 9.1.0'
|
28
|
-
spec.add_dependency 'oily_png', '~> 1.2'
|
29
|
-
end,
|
30
|
-
RUBY_2_0_0 => proc do |spec|
|
31
|
-
spec.add_development_dependency 'rack', ['~> 1.6.0']
|
32
|
-
spec.add_development_dependency 'rubocop', ['<= 0.46.0']
|
33
|
-
spec.add_development_dependency 'net-http-persistent', ['< 3.0.0']
|
34
|
-
spec.add_development_dependency 'sauce'
|
35
|
-
spec.add_dependency 'nokogiri', '~> 1.6.0'
|
36
|
-
spec.add_development_dependency 'appium_lib', '< 9.1.0'
|
37
|
-
spec.add_dependency 'oily_png', '= 1.2.0'
|
38
|
-
end,
|
39
|
-
RUBY_2_2_2 => proc do |spec|
|
40
|
-
spec.add_development_dependency 'rubocop', ['<= 0.46.0']
|
41
|
-
spec.add_development_dependency 'sauce'
|
42
|
-
spec.add_development_dependency 'appium_lib'
|
43
|
-
spec.add_dependency 'oily_png', '~> 1.2'
|
44
|
-
end,
|
45
|
-
RUBY_2_4_0 => proc do |spec|
|
46
|
-
spec.add_development_dependency 'appium_lib'
|
47
|
-
spec.add_development_dependency 'rubocop', ['<= 0.46.0']
|
48
|
-
spec.add_dependency 'oily_png', '~> 1.2'
|
49
|
-
end
|
50
|
-
}.freeze
|
51
|
-
|
52
|
-
Gem::Specification.new do |spec|
|
53
|
-
spec.name = 'eyes_selenium'
|
54
|
-
spec.version = Applitools::VERSION
|
55
|
-
spec.authors = ['Applitools Team']
|
56
|
-
spec.email = ['team@applitools.com']
|
57
|
-
spec.description = 'Applitools Ruby SDK'
|
58
|
-
spec.summary = 'Applitools Ruby SDK'
|
59
|
-
spec.homepage = 'https://www.applitools.com'
|
60
|
-
spec.license = 'Apache License, Version 2.0'
|
61
|
-
|
62
|
-
spec.files = `git ls-files`.split($RS)
|
63
|
-
spec.executables = spec.files.grep(%r{^bin/}) { |f| File.basename(f) }
|
64
|
-
spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
|
65
|
-
spec.require_paths = ['lib']
|
66
|
-
|
67
|
-
spec.add_dependency 'selenium-webdriver'
|
68
|
-
spec.add_dependency 'poltergeist', '~> 1.9'
|
69
|
-
spec.add_dependency 'chunky_png', '= 1.3.6'
|
70
|
-
spec.add_dependency 'faraday'
|
71
|
-
spec.add_dependency 'oj'
|
72
|
-
spec.add_dependency 'watir'
|
73
|
-
|
74
|
-
spec.add_development_dependency 'bundler'
|
75
|
-
spec.add_development_dependency 'rake'
|
76
|
-
spec.add_development_dependency 'capybara'
|
77
|
-
spec.add_development_dependency 'rspec', '>= 3'
|
78
|
-
|
79
|
-
EYES_GEM_SPECS[RUBY_KEY].call spec
|
80
|
-
|
81
|
-
# Exclude debugging support on Travis CI, due to its incompatibility with jruby and older rubies.
|
82
|
-
unless ENV['TRAVIS'] || CURRENT_RYBY_VERSION < Gem::Version.new('2.0.0')
|
83
|
-
spec.add_development_dependency 'pry'
|
84
|
-
spec.add_development_dependency 'pry-byebug'
|
85
|
-
spec.add_development_dependency 'byebug'
|
86
|
-
spec.add_development_dependency 'pry-doc'
|
87
|
-
spec.add_development_dependency 'pry-stack_explorer'
|
88
|
-
end
|
89
|
-
end
|
@@ -1,21 +0,0 @@
|
|
1
|
-
require 'securerandom'
|
2
|
-
|
3
|
-
module Applitools::Base
|
4
|
-
class BatchInfo
|
5
|
-
attr_accessor :name, :started_at, :id
|
6
|
-
|
7
|
-
def initialize(name = nil, started_at = Time.now)
|
8
|
-
@name = name
|
9
|
-
@started_at = started_at
|
10
|
-
@id = SecureRandom.uuid
|
11
|
-
end
|
12
|
-
|
13
|
-
def to_hash
|
14
|
-
{
|
15
|
-
id: @id,
|
16
|
-
name: @name,
|
17
|
-
started_at: @started_at.iso8601
|
18
|
-
}
|
19
|
-
end
|
20
|
-
end
|
21
|
-
end
|
@@ -1,36 +0,0 @@
|
|
1
|
-
module Applitools::Base
|
2
|
-
Dimension = Struct.new(:width, :height) do
|
3
|
-
def to_hash
|
4
|
-
{
|
5
|
-
width: width,
|
6
|
-
height: height
|
7
|
-
}
|
8
|
-
end
|
9
|
-
|
10
|
-
def values
|
11
|
-
[width, height]
|
12
|
-
end
|
13
|
-
|
14
|
-
def -(other)
|
15
|
-
self.width -= other.width
|
16
|
-
self.height -= other.height
|
17
|
-
self
|
18
|
-
end
|
19
|
-
|
20
|
-
def +(other)
|
21
|
-
self.width += other.width
|
22
|
-
self.height += other.height
|
23
|
-
self
|
24
|
-
end
|
25
|
-
|
26
|
-
def to_s
|
27
|
-
values.to_s
|
28
|
-
end
|
29
|
-
|
30
|
-
class << self
|
31
|
-
def for(other)
|
32
|
-
new(other.width, other.height)
|
33
|
-
end
|
34
|
-
end
|
35
|
-
end
|
36
|
-
end
|
@@ -1,19 +0,0 @@
|
|
1
|
-
module Applitools::Base
|
2
|
-
class Environment
|
3
|
-
def initialize(os = nil, hosting_app = nil, display_size = nil, inferred = nil)
|
4
|
-
@os = os
|
5
|
-
@hosting_app = hosting_app
|
6
|
-
@display_size = display_size
|
7
|
-
@inferred = inferred
|
8
|
-
end
|
9
|
-
|
10
|
-
def to_hash
|
11
|
-
{
|
12
|
-
os: @os,
|
13
|
-
hosting_app: @hosting_app,
|
14
|
-
display_size: @display_size.to_hash,
|
15
|
-
inferred: @inferred
|
16
|
-
}
|
17
|
-
end
|
18
|
-
end
|
19
|
-
end
|