eyes_selenium 3.15.4.beta → 3.15.5.beta

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
  SHA256:
3
- metadata.gz: 528f158809bd96603814c886253b93137ec2d7c06b362838a0c3d3a92d506f77
4
- data.tar.gz: d338946ba20679c7a9e76cfa225fcedb95da3ad3f7e00eb1bda6bb5c347ec0f7
3
+ metadata.gz: f9f3e9f6703e578f4b9e17e20053870636dd99c5f4dbebf773f0405055b2568c
4
+ data.tar.gz: 05e2240ea7364269af763aae6d3ae1a5c8b0e8633c89583282aee82243955c21
5
5
  SHA512:
6
- metadata.gz: 7b3c248b7052e22be4a1bb3b30bead9398830b4e1cf4fc83ff4aa782f69c2394bae9582bd76842d843d996e5a8b31502b3c56e17dc1511083b96798842a3239e
7
- data.tar.gz: 5f620abb599c9d298aaf545a4f29972d31c88cf3b5288ef8b488b8df6cc6b310619a1daa9a42612148e21e9577eae881d68b87563912e3989ace0801ecd49099
6
+ metadata.gz: 82b06500557dfa412815a588ffd424845f60965503d302b376140efd9cacff2e6b50143879338a86a1c86bc1bc185cb8df707cfc434279958c970558405cf836
7
+ data.tar.gz: 294c5ad3389d4557ebbe542dc4b7eb15727ede34dfd2ee57f3144a0b510fab504086907deea1b96d77fe5ab486c0ed0cdd047a08fd01f0f6358ce9d025f60e4d
@@ -8,7 +8,7 @@ module Applitools
8
8
  DEFAULT_CONFIG = proc do
9
9
  {
10
10
  force_full_page_screenshot: false,
11
- wait_before_screenshots: 100,
11
+ wait_before_screenshots: 0.1,
12
12
  stitch_mode: Applitools::Selenium::StitchModes::CSS,
13
13
  hide_scrollbars: false,
14
14
  hide_caret: false,
@@ -29,7 +29,6 @@ module Applitools
29
29
  boolean_field :send_dom
30
30
 
31
31
  object_field :browsers_info, Applitools::Selenium::BrowsersInfo
32
-
33
32
  int_field :concurrent_sessions
34
33
 
35
34
  def add_browser(*args)
@@ -45,7 +44,7 @@ module Applitools
45
44
  end
46
45
  yield(Applitools::Selenium::RenderBrowserInfoFluent.new(browser)) if block_given?
47
46
  browsers_info.add browser
48
- self.viewport_size = browser.viewport_size unless viewport_size
47
+ # self.viewport_size = browser.viewport_size unless viewport_size
49
48
  self
50
49
  end
51
50
 
@@ -58,10 +57,26 @@ module Applitools
58
57
  def deep_clone
59
58
  new_config = self.class.new
60
59
  config_keys.each do |k|
61
- new_config.send("#{k}=", self.send(k).clone)
60
+ new_config.send(
61
+ "#{k}=", case value = self.send(k)
62
+ when Symbol, FalseClass, TrueClass, Fixnum, Float
63
+ value
64
+ else
65
+ value.clone
66
+ end
67
+ )
62
68
  end
63
69
  new_config
64
70
  end
71
+
72
+ def viewport_size
73
+ user_defined_vp = super
74
+ user_defined_vp = nil if user_defined_vp.respond_to?(:square) && user_defined_vp.square == 0
75
+ return user_defined_vp if user_defined_vp
76
+ from_browsers_info = browsers_info.select {|bi| bi.viewport_size.square > 0 }.first
77
+ return from_browsers_info.viewport_size if from_browsers_info
78
+ nil
79
+ end
65
80
  end
66
81
  end
67
82
  end
@@ -103,12 +103,14 @@ module Applitools::Selenium
103
103
  attr_reader :driver
104
104
 
105
105
  def_delegators 'Applitools::EyesLogger', :logger, :log_handler, :log_handler=
106
+ def_delegators 'config', *Applitools::Selenium::Configuration.methods_to_delegate
106
107
 
107
108
  # Creates a new (possibly disabled) Eyes instance that interacts with the
108
109
  # Eyes Server at the specified url.
109
110
  #
110
111
  # @param server_url The Eyes Server URL.
111
112
  def initialize(server_url = nil)
113
+ ensure_config
112
114
  super
113
115
  self.base_agent_id = "eyes.selenium.ruby/#{Applitools::VERSION}".freeze
114
116
  self.check_frame_or_element = false
@@ -136,6 +138,12 @@ module Applitools::Selenium
136
138
  self.prevent_dom_processing = false
137
139
  end
138
140
 
141
+
142
+ def ensure_config
143
+ self.config = Applitools::Selenium::Configuration.new
144
+ end
145
+
146
+
139
147
  # Starts a test
140
148
  #
141
149
  # @param options [Hash] options
@@ -154,7 +162,7 @@ module Applitools::Selenium
154
162
  options[:viewport_size] = Applitools::RectangleSize.from_any_argument options[:viewport_size] if
155
163
  options[:viewport_size]
156
164
  Applitools::ArgumentGuard.not_nil original_driver, 'options[:driver]'
157
- Applitools::ArgumentGuard.hash options, 'open(options)', [:app_name, :test_name]
165
+ # Applitools::ArgumentGuard.hash options, 'open(options)', [:app_name, :test_name]
158
166
 
159
167
  if disabled?
160
168
  logger.info('Ignored')
@@ -105,7 +105,6 @@ module Applitools
105
105
  end
106
106
 
107
107
  def set_viewport_size(*_args)
108
-
109
108
  end
110
109
 
111
110
  def viewport_size
@@ -34,6 +34,12 @@ module Applitools
34
34
  self.driver = options.delete(:driver)
35
35
  self.current_url = driver.current_url
36
36
 
37
+ if viewport_size
38
+ set_viewport_size(viewport_size)
39
+ else
40
+ self.viewport_size = get_viewport_size
41
+ end
42
+
37
43
  visual_grid_manager.open(self)
38
44
 
39
45
  logger.info("getting all browsers info...")
@@ -43,15 +49,20 @@ module Applitools
43
49
  test_list.push Applitools::Selenium::RunningTest.new(eyes_connector, bi, driver)
44
50
  end
45
51
  self.opened = true
52
+
46
53
  driver
47
54
  end
48
55
 
56
+ def get_viewport_size(web_driver = driver)
57
+ Applitools::ArgumentGuard.not_nil 'web_driver', web_driver
58
+ Applitools::Utils::EyesSeleniumUtils.extract_viewport_size(driver)
59
+ end
60
+
49
61
  def eyes_connector
50
62
  logger.info("creating VisualGridEyes server connector")
51
63
  ::Applitools::Selenium::EyesConnector.new(server_url).tap do |connector|
52
64
  connector.batch = batch_info
53
65
  connector.config = config.deep_clone
54
- connector.proxy = proxy if proxy.is_a? Applitools::Connectivity::Proxy
55
66
  end
56
67
  end
57
68
 
@@ -60,6 +71,7 @@ module Applitools
60
71
  var callback = arguments[arguments.length - 1]; return (#{Applitools::Selenium::Scripts::PROCESS_RESOURCES})().then(JSON.stringify).then(callback, function(err) {callback(err.stack || err.toString())});
61
72
  END
62
73
  begin
74
+ sleep wait_before_screenshots
63
75
  script_result = driver.execute_async_script(script).freeze
64
76
  mod = Digest::SHA2.hexdigest(script_result)
65
77
  test_list.each do |t|
@@ -96,7 +108,8 @@ module Applitools
96
108
  raise Applitools::TestFailedError.new test_failed_error_message(r), r if r.failed?
97
109
  end
98
110
  end
99
- test_list.map(&:test_result).first
111
+ failed_results = test_list.map(&:test_result).compact.select { |r| !r.as_expected? }
112
+ failed_results.empty? ? test_list.map(&:test_result).compact.first : failed_results
100
113
  end
101
114
 
102
115
  def open?
@@ -107,6 +120,16 @@ module Applitools
107
120
  test_list.map(&:test_result)
108
121
  end
109
122
 
123
+ def set_viewport_size(value)
124
+ begin
125
+ Applitools::Utils::EyesSeleniumUtils.set_viewport_size driver, value
126
+ rescue => e
127
+ logger.error e.class.to_s
128
+ logger.error e.message
129
+ raise Applitools::TestFailedError.new "#{e.class} - #{e.message}"
130
+ end
131
+ end
132
+
110
133
  def new_test_error_message(result)
111
134
  original_results = result.original_results
112
135
  "New test '#{original_results['name']}' " \
@@ -24,7 +24,7 @@ module Applitools
24
24
  end
25
25
 
26
26
  def stop
27
- while all_running_tests.map { |t| t.score }.sum > 0 do
27
+ while all_running_tests.map(&:score).reduce(0, :+) > 0 do
28
28
  sleep 0.5
29
29
  end
30
30
  @thread_pool.stop
@@ -35,7 +35,10 @@ module Applitools
35
35
  end
36
36
 
37
37
  def get_all_test_results
38
- all_eyes.select {|e| !e.open?}.map { |e| e.test_list.map(&:test_result) }.flatten
38
+ while !(all_eyes.select {|e| e.open?}.empty?)
39
+ sleep 0.5
40
+ end
41
+ all_eyes.map { |e| e.test_list.map(&:test_result) }.flatten
39
42
  end
40
43
 
41
44
  private
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: false
2
2
 
3
3
  module Applitools
4
- VERSION = '3.15.4.beta'.freeze
4
+ VERSION = '3.15.5.beta'.freeze
5
5
  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.15.4.beta
4
+ version: 3.15.5.beta
5
5
  platform: ruby
6
6
  authors:
7
7
  - Applitools Team
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2019-04-02 00:00:00.000000000 Z
11
+ date: 2019-04-03 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.15.4.beta
19
+ version: 3.15.5.beta
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.15.4.beta
26
+ version: 3.15.5.beta
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: selenium-webdriver
29
29
  requirement: !ruby/object:Gem::Requirement
@@ -152,7 +152,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
152
152
  version: 1.3.1
153
153
  requirements: []
154
154
  rubyforge_project:
155
- rubygems_version: 2.7.7
155
+ rubygems_version: 2.7.9
156
156
  signing_key:
157
157
  specification_version: 4
158
158
  summary: Applitools Ruby Selenium SDK