eyes_selenium 3.15.4.beta → 3.15.5.beta

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