eyes_selenium 3.14.10 → 3.15.0.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.
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