eyes_selenium 3.14.10 → 3.15.0.beta

Sign up to get free protection for your applications and to get access to all the features.
Files changed (30) hide show
  1. checksums.yaml +4 -4
  2. data/lib/applitools/selenium/concerns/browser_types.rb +15 -0
  3. data/lib/applitools/selenium/concerns/browsers_info.rb +16 -0
  4. data/lib/applitools/selenium/concerns/external_css_resources.rb +31 -0
  5. data/lib/applitools/selenium/concerns/render_browser_info_fluent.rb +42 -0
  6. data/lib/applitools/selenium/concerns/render_resources.rb +15 -0
  7. data/lib/applitools/selenium/concerns/rgrid_dom.rb +46 -0
  8. data/lib/applitools/selenium/concerns/stitch_modes.rb +15 -0
  9. data/lib/applitools/selenium/concerns/test_list.rb +23 -0
  10. data/lib/applitools/selenium/eyes.rb +13 -854
  11. data/lib/applitools/selenium/scripts/process_page_and_serialize.rb +519 -0
  12. data/lib/applitools/selenium/selenium_configuration.rb +64 -0
  13. data/lib/applitools/selenium/selenium_eyes.rb +860 -0
  14. data/lib/applitools/selenium/target.rb +2 -2
  15. data/lib/applitools/selenium/visual_grid/eyes_connector.rb +170 -0
  16. data/lib/applitools/selenium/visual_grid/render_browser_info.rb +31 -0
  17. data/lib/applitools/selenium/visual_grid/render_info.rb +9 -0
  18. data/lib/applitools/selenium/visual_grid/render_request.rb +22 -0
  19. data/lib/applitools/selenium/visual_grid/render_requests.rb +11 -0
  20. data/lib/applitools/selenium/visual_grid/render_task.rb +171 -0
  21. data/lib/applitools/selenium/visual_grid/resource_cache.rb +51 -0
  22. data/lib/applitools/selenium/visual_grid/running_test.rb +198 -0
  23. data/lib/applitools/selenium/visual_grid/thread_pool.rb +94 -0
  24. data/lib/applitools/selenium/visual_grid/vg_resource.rb +37 -0
  25. data/lib/applitools/selenium/visual_grid/vg_task.rb +46 -0
  26. data/lib/applitools/selenium/visual_grid/visual_grid_eyes.rb +236 -0
  27. data/lib/applitools/selenium/visual_grid/visual_grid_runner.rb +57 -0
  28. data/lib/applitools/version.rb +1 -1
  29. data/lib/eyes_selenium.rb +3 -0
  30. metadata +46 -7
@@ -0,0 +1,57 @@
1
+ module Applitools
2
+ module Selenium
3
+ class VisualGridRunner
4
+ EMPTY_QUEUE = []
5
+ attr_accessor :all_eyes, :resource_cache, :put_cache, :rendering_info
6
+
7
+ def initialize(concurrent_open_sessions = 10)
8
+ self.all_eyes = []
9
+ @thread_pool = Applitools::Selenium::VGThreadPool.new(concurrent_open_sessions)
10
+ self.resource_cache = Applitools::Selenium::ResourceCache.new
11
+ self.put_cache = Applitools::Selenium::ResourceCache.new
12
+ init
13
+ end
14
+
15
+ def init
16
+ @thread_pool.on_next_task_needed do
17
+ (task = get_task_queue.pop).is_a?(Applitools::Selenium::VGTask) ? task : nil
18
+ end
19
+ @thread_pool.start
20
+ end
21
+
22
+ def open(eyes)
23
+ all_eyes << eyes
24
+ end
25
+
26
+ def stop
27
+ while all_running_tests.map { |t| t.score }.sum > 0 do
28
+ sleep 0.5
29
+ end
30
+ @thread_pool.stop
31
+ end
32
+
33
+ def rendering_info(connector)
34
+ @rendering_info ||= connector.rendering_info
35
+ end
36
+
37
+ def get_all_test_results
38
+ all_eyes.select {|e| !e.open?}.map { |e| e.test_list.map(&:test_result) }.flatten
39
+ end
40
+
41
+ private
42
+
43
+ def all_running_tests
44
+ all_eyes.collect { |e| e.test_list }.flatten
45
+ end
46
+
47
+ def all_running_tests_by_score
48
+ all_running_tests.sort { |x, y| y.score <=> x.score }
49
+ end
50
+
51
+ def get_task_queue
52
+ test_to_run = all_running_tests_by_score.first
53
+ test_to_run ? test_to_run.queue : EMPTY_QUEUE
54
+ end
55
+ end
56
+ end
57
+ end
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: false
2
2
 
3
3
  module Applitools
4
- VERSION = '3.14.10'.freeze
4
+ VERSION = '3.15.0.beta'.freeze
5
5
  end
data/lib/eyes_selenium.rb CHANGED
@@ -18,6 +18,9 @@ module Applitools
18
18
  end
19
19
  end
20
20
 
21
+ Applitools::Selenium.require_dir 'selenium/scripts'
22
+ Applitools::Selenium.require_dir 'selenium/visual_grid'
23
+ Applitools::Selenium.require_dir 'selenium/concerns'
21
24
  Applitools::Selenium.require_dir 'selenium'
22
25
  Applitools::Selenium.require_dir 'selenium/dom_capture'
23
26
 
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.14.10
4
+ version: 3.15.0.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-03-13 00:00:00.000000000 Z
11
+ date: 2019-03-31 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.14.10
19
+ version: 3.15.0.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.14.10
26
+ version: 3.15.0.beta
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: selenium-webdriver
29
29
  requirement: !ruby/object:Gem::Requirement
@@ -52,6 +52,20 @@ dependencies:
52
52
  - - ">="
53
53
  - !ruby/object:Gem::Version
54
54
  version: '0'
55
+ - !ruby/object:Gem::Dependency
56
+ name: state_machine
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - ">="
60
+ - !ruby/object:Gem::Version
61
+ version: '0'
62
+ type: :runtime
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - ">="
67
+ - !ruby/object:Gem::Version
68
+ version: '0'
55
69
  description: Provides SDK for writing Applitools Selenium-based tests
56
70
  email:
57
71
  - team@applitools.com
@@ -61,6 +75,14 @@ extra_rdoc_files: []
61
75
  files:
62
76
  - lib/applitools/selenium/border_aware_element_content_location_provider.rb
63
77
  - lib/applitools/selenium/browser.rb
78
+ - lib/applitools/selenium/concerns/browser_types.rb
79
+ - lib/applitools/selenium/concerns/browsers_info.rb
80
+ - lib/applitools/selenium/concerns/external_css_resources.rb
81
+ - lib/applitools/selenium/concerns/render_browser_info_fluent.rb
82
+ - lib/applitools/selenium/concerns/render_resources.rb
83
+ - lib/applitools/selenium/concerns/rgrid_dom.rb
84
+ - lib/applitools/selenium/concerns/stitch_modes.rb
85
+ - lib/applitools/selenium/concerns/test_list.rb
64
86
  - lib/applitools/selenium/context_based_scale_provider.rb
65
87
  - lib/applitools/selenium/css_transform/css_transform.rb
66
88
  - lib/applitools/selenium/css_translate_element_position_provider.rb
@@ -85,11 +107,27 @@ files:
85
107
  - lib/applitools/selenium/nop_region_visibility_strategy.rb
86
108
  - lib/applitools/selenium/region_provider.rb
87
109
  - lib/applitools/selenium/sauce/driver.rb
110
+ - lib/applitools/selenium/scripts/process_page_and_serialize.rb
88
111
  - lib/applitools/selenium/scroll_position_provider.rb
112
+ - lib/applitools/selenium/selenium_configuration.rb
113
+ - lib/applitools/selenium/selenium_eyes.rb
89
114
  - lib/applitools/selenium/takes_screenshot_image_provider.rb
90
115
  - lib/applitools/selenium/target.rb
91
116
  - lib/applitools/selenium/viewport_screenshot.rb
92
117
  - lib/applitools/selenium/viewport_size.rb
118
+ - lib/applitools/selenium/visual_grid/eyes_connector.rb
119
+ - lib/applitools/selenium/visual_grid/render_browser_info.rb
120
+ - lib/applitools/selenium/visual_grid/render_info.rb
121
+ - lib/applitools/selenium/visual_grid/render_request.rb
122
+ - lib/applitools/selenium/visual_grid/render_requests.rb
123
+ - lib/applitools/selenium/visual_grid/render_task.rb
124
+ - lib/applitools/selenium/visual_grid/resource_cache.rb
125
+ - lib/applitools/selenium/visual_grid/running_test.rb
126
+ - lib/applitools/selenium/visual_grid/thread_pool.rb
127
+ - lib/applitools/selenium/visual_grid/vg_resource.rb
128
+ - lib/applitools/selenium/visual_grid/vg_task.rb
129
+ - lib/applitools/selenium/visual_grid/visual_grid_eyes.rb
130
+ - lib/applitools/selenium/visual_grid/visual_grid_runner.rb
93
131
  - lib/applitools/version.rb
94
132
  - lib/eyes_selenium.rb
95
133
  homepage: https://www.applitools.com
@@ -107,11 +145,12 @@ required_ruby_version: !ruby/object:Gem::Requirement
107
145
  version: '0'
108
146
  required_rubygems_version: !ruby/object:Gem::Requirement
109
147
  requirements:
110
- - - ">="
148
+ - - ">"
111
149
  - !ruby/object:Gem::Version
112
- version: '0'
150
+ version: 1.3.1
113
151
  requirements: []
114
- rubygems_version: 3.0.3
152
+ rubyforge_project:
153
+ rubygems_version: 2.7.7
115
154
  signing_key:
116
155
  specification_version: 4
117
156
  summary: Applitools Ruby Selenium SDK