eyes_selenium 3.10.0 → 3.10.1

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