eyes_selenium 3.10.0 → 3.10.1

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: ff2521013b462de5311beb964172840404b405dc
4
- data.tar.gz: 4633fe7486d06b42a7c438ab8d371b8b528a4522
3
+ metadata.gz: f06722619f30d8f8161191c90e260f3942796534
4
+ data.tar.gz: 6cdf3ed4f48197d05086001b133ee60097cd7fcf
5
5
  SHA512:
6
- metadata.gz: bb89f577d4edcf81d70e624e3483dd4b13c8e9f9bc2609cc493a5a7fdb54684bfa582b1bf61d818aef67fa87991f5d670a0e1eeb8c71e015406b15c8b1b36c77
7
- data.tar.gz: 6b42751eadcd7c07404215c82f5eceda3ef630b2bdc56ba510fbb1c8c49c8a5aaf52c4ec8ffb0979e4b310a56128c73193abd78a054d5f33da9c4c83c223b991
6
+ metadata.gz: 2cb6db07bd67a7d263f2e5e43ecc040eba9a5754832e7535b54ebdf76ef2711ffa7731dc4e4cac0bc71aa96df8a07dd2de57b6b22fcb382a3f178c6d1929f6d8
7
+ data.tar.gz: e860a3b924cbb7f90824ab0b323638a2c00440dc2cca4303bba39a1fafdace7cf43b9bbd86e7579252211385495ee27112b76fceab119a5bf93421a18d407568
@@ -0,0 +1,32 @@
1
+ # This module is used for compatibility with Applitools API.
2
+ # Should be extended by Poltergeist driver instance.
3
+ module Applitools::Poltergeist
4
+ module ApplitoolsCompatible
5
+ # Implementation of `screenshot_as` method for PhantomJS.
6
+ # Realisation uses Poltergeist binding to `renderBase64` PhantomJS method.
7
+ def screenshot_as(fmt)
8
+ Base64.decode64(browser.render_base64(fmt))
9
+ end
10
+
11
+ # Poltergeist driver does not have `manage` and `window` methods.
12
+ # In Applitools these methods are used in a chain to get size by `size` method call.
13
+ %w(manage window).each do |method_name|
14
+ define_method(method_name) { self }
15
+ end
16
+
17
+ # Method provides opened window size in Applitools format.
18
+ def size
19
+ size = window_size(current_window_handle)
20
+ Applitools::Base::Dimension.new(size[0], size[1])
21
+ end
22
+
23
+ # Method changes opened window size in a way how original Applitools::Selenium::Driver does.
24
+ def size=(new_size)
25
+ resize(new_size.width, new_size.height)
26
+ end
27
+
28
+ # def switch_to(*args)
29
+ # switch_to_frame(*args)
30
+ # end
31
+ end
32
+ end
@@ -0,0 +1,11 @@
1
+ # Applitools::Poltergeist::Driver is a small class implemented
2
+ # for compatibility with Applitools API.
3
+ # It gives required for Applitools methods to Poltergeist driver.
4
+ module Applitools::Poltergeist
5
+ class Driver < Applitools::Selenium::Driver
6
+ def initialize(eyes, options)
7
+ options[:driver].extend Applitools::Poltergeist::ApplitoolsCompatible
8
+ super(eyes, options)
9
+ end
10
+ end
11
+ end
@@ -1,19 +1,23 @@
1
- module Applitools::Selenium::Capybara
2
- module CapybaraSettings
3
- # Registers Capybara driver which will be used by eyes and sets it as default Capybara driver.
4
- # The name of the driver is :eyes, and the driver is a descendant of class Capybara::Selenium::Driver.
5
- # Options are eventually passed to drivers constructor
6
- # @param [Hash] options
7
- # @example
8
- # Applitools.register_capybara_driver :browser => :chrome
9
- # @example
10
- # Applitools.register_capybara_driver :browser => :remote, :url => 'remote_url', :desired_capabilities => {}
11
- def register_capybara_driver(options = {})
12
- Capybara.register_driver :eyes do |app|
13
- Applitools::Selenium::Capybara::Driver.new app, options
1
+ module Applitools
2
+ module Selenium
3
+ module Capybara
4
+ module CapybaraSettings
5
+ # Registers Capybara driver which will be used by eyes and sets it as default Capybara driver.
6
+ # The name of the driver is :eyes, and the driver is a descendant of class Capybara::Selenium::Driver.
7
+ # Options are eventually passed to drivers constructor
8
+ # @param [Hash] options
9
+ # @example
10
+ # Applitools.register_capybara_driver :browser => :chrome
11
+ # @example
12
+ # Applitools.register_capybara_driver :browser => :remote, :url => 'remote_url', :desired_capabilities => {}
13
+ def register_capybara_driver(options = {})
14
+ ::Capybara.register_driver :eyes do |app|
15
+ Applitools::Selenium::Capybara::Driver.new app, options
16
+ end
17
+ ::Capybara.default_driver = :eyes
18
+ ::Capybara.javascript_driver = :eyes
19
+ end
14
20
  end
15
- Capybara.default_driver = :eyes
16
- Capybara.javascript_driver = :eyes
17
21
  end
18
22
  end
19
23
  end
@@ -24,8 +24,8 @@ if defined? Capybara::Selenium::Driver
24
24
  end
25
25
  end
26
26
 
27
- if defined? Capybara::Session
28
- Capybara::Session.class_eval do
27
+ if defined? ::Capybara::Session
28
+ ::Capybara::Session.class_eval do
29
29
  def driver_for_eyes(eyes)
30
30
  driver.driver_for_eyes eyes
31
31
  end
@@ -262,7 +262,6 @@ module Applitools::Selenium
262
262
  begin
263
263
  match_data = Applitools::MatchWindowData.new
264
264
  match_data.tag = name
265
- match_data.match_level = default_match_settings[:match_level]
266
265
  match_data.read_target(target, driver)
267
266
  eyes_element = target.region_to_check.call(driver)
268
267
  region_visibility_strategy.move_to_region original_position_provider,
@@ -275,13 +274,13 @@ module Applitools::Selenium
275
274
 
276
275
  elsif eyes_element.is_a? Applitools::Selenium::Element
277
276
  # check_element
278
- region_provider = Applitools::Selenium::RegionProvider.new(
277
+ region_provider = Applitools::RegionProvider.new(
279
278
  region_for_element(eyes_element),
280
279
  target.coordinate_type
281
280
  )
282
281
  else
283
282
  # check_window
284
- region_provider = Applitools::Selenium::RegionProvider.new(
283
+ region_provider = Applitools::RegionProvider.new(
285
284
  region_for_element(eyes_element),
286
285
  target.coordinate_type
287
286
  )
@@ -299,7 +298,7 @@ module Applitools::Selenium
299
298
 
300
299
  self.region_to_check = region_provider
301
300
 
302
- region_provider = Applitools::Selenium::RegionProvider.new(
301
+ region_provider = Applitools::RegionProvider.new(
303
302
  Applitools::Region::EMPTY,
304
303
  nil
305
304
  )
@@ -1,6 +1,7 @@
1
1
  module Applitools
2
2
  module Selenium
3
3
  class Target
4
+ include Applitools::FluentInterface
4
5
  class << self
5
6
  def frame(element)
6
7
  new.frame(element)
@@ -20,7 +21,10 @@ module Applitools
20
21
  # Initialize a Applitools::Selenium::Target instance.
21
22
  def initialize
22
23
  self.frames = []
23
- self.options = { ignore_caret: false }
24
+ self.options = {
25
+ ignore_caret: false,
26
+ ignore_mismatch: false
27
+ }
24
28
  reset_for_fullscreen
25
29
  end
26
30
 
@@ -48,11 +52,6 @@ module Applitools
48
52
  self
49
53
  end
50
54
 
51
- def ignore_caret(value = false)
52
- options[:ignore_caret] = value ? true : false
53
- self
54
- end
55
-
56
55
  def floating(*args)
57
56
  value = case args.first
58
57
  when Applitools::FloatingRegion
@@ -78,11 +77,6 @@ module Applitools
78
77
  self
79
78
  end
80
79
 
81
- def timeout(value)
82
- options[:timeout] = value
83
- self
84
- end
85
-
86
80
  def frame(element)
87
81
  frames << element
88
82
  reset_for_fullscreen
@@ -113,11 +107,6 @@ module Applitools
113
107
  self
114
108
  end
115
109
 
116
- def trim
117
- options[:trim] = true
118
- self
119
- end
120
-
121
110
  private
122
111
 
123
112
  def reset_for_fullscreen
@@ -1,3 +1,3 @@
1
1
  module Applitools
2
- VERSION = '3.10.0'.freeze
2
+ VERSION = '3.10.1'.freeze
3
3
  end
data/lib/eyes_selenium.rb CHANGED
@@ -1,13 +1,10 @@
1
1
  require 'eyes_core'
2
2
 
3
- module Applitools::Selenium
4
- # @!visibility private
5
- class << self
6
- # @!visibility private
7
- def require_dir(dir)
8
- Dir[File.join(File.dirname(File.expand_path(__FILE__)), 'applitools', dir, '*.rb')].sort.each do |f|
9
- require f
10
- end
3
+ module Applitools
4
+ module Selenium
5
+ extend Applitools::RequireUtils
6
+ def self.load_dir
7
+ File.dirname(File.expand_path(__FILE__))
11
8
  end
12
9
  end
13
10
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: eyes_selenium
3
3
  version: !ruby/object:Gem::Version
4
- version: 3.10.0
4
+ version: 3.10.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Applitools Team
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2017-05-30 00:00:00.000000000 Z
11
+ date: 2017-06-02 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: eyes_core
@@ -16,14 +16,14 @@ dependencies:
16
16
  requirements:
17
17
  - - '='
18
18
  - !ruby/object:Gem::Version
19
- version: 3.10.0
19
+ version: 3.10.1
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
24
  - - '='
25
25
  - !ruby/object:Gem::Version
26
- version: 3.10.0
26
+ version: 3.10.1
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: selenium-webdriver
29
29
  requirement: !ruby/object:Gem::Requirement
@@ -74,6 +74,8 @@ extensions: []
74
74
  extra_rdoc_files: []
75
75
  files:
76
76
  - lib/applitools/capybara.rb
77
+ - lib/applitools/poltergeist/applitools_compatible.rb
78
+ - lib/applitools/poltergeist/driver.rb
77
79
  - lib/applitools/selenium/border_aware_element_content_location_provider.rb
78
80
  - lib/applitools/selenium/browser.rb
79
81
  - lib/applitools/selenium/capybara/capybara_settings.rb
@@ -94,7 +96,6 @@ files:
94
96
  - lib/applitools/selenium/mouse.rb
95
97
  - lib/applitools/selenium/move_to_region_visibility_strategy.rb
96
98
  - lib/applitools/selenium/nop_region_visibility_strategy.rb
97
- - lib/applitools/selenium/region_provider.rb
98
99
  - lib/applitools/selenium/sauce/driver.rb
99
100
  - lib/applitools/selenium/scroll_position_provider.rb
100
101
  - lib/applitools/selenium/takes_screenshot_image_provider.rb
@@ -1,10 +0,0 @@
1
- module Applitools::Selenium
2
- class RegionProvider
3
- # Do we need it under Selenium module?
4
- attr_reader :region, :coordinate_type
5
- def initialize(region, coordinate_type)
6
- @region = region
7
- @coordinate_type = coordinate_type
8
- end
9
- end
10
- end