Class: Applitools::Selenium::VisualGridRunner

Inherits:
Object
  • Object
show all
Defined in:
lib/applitools/selenium/visual_grid/visual_grid_runner.rb

Constant Summary collapse

EMPTY_QUEUE =
[]

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(concurrent_open_sessions = 10) ⇒ VisualGridRunner

Returns a new instance of VisualGridRunner.



9
10
11
12
13
14
15
16
# File 'lib/applitools/selenium/visual_grid/visual_grid_runner.rb', line 9

def initialize(concurrent_open_sessions = 10)
  self.all_eyes = []
  self.render_queue = []
  @thread_pool = Applitools::Selenium::VGThreadPool.new(concurrent_open_sessions)
  self.resource_cache = Applitools::Selenium::ResourceCache.new
  self.put_cache = Applitools::Selenium::ResourceCache.new
  init
end

Instance Attribute Details

#all_eyesObject

Returns the value of attribute all_eyes.



5
6
7
# File 'lib/applitools/selenium/visual_grid/visual_grid_runner.rb', line 5

def all_eyes
  @all_eyes
end

#put_cacheObject

Returns the value of attribute put_cache.



5
6
7
# File 'lib/applitools/selenium/visual_grid/visual_grid_runner.rb', line 5

def put_cache
  @put_cache
end

#render_queueObject Also known as: queue

Returns the value of attribute render_queue.



5
6
7
# File 'lib/applitools/selenium/visual_grid/visual_grid_runner.rb', line 5

def render_queue
  @render_queue
end

#rendering_info(connector) ⇒ Object

Returns the value of attribute rendering_info.



5
6
7
# File 'lib/applitools/selenium/visual_grid/visual_grid_runner.rb', line 5

def rendering_info
  @rendering_info
end

#resource_cacheObject

Returns the value of attribute resource_cache.



5
6
7
# File 'lib/applitools/selenium/visual_grid/visual_grid_runner.rb', line 5

def resource_cache
  @resource_cache
end

Instance Method Details

#enqueue_render_task(render_task) ⇒ Object



29
30
31
# File 'lib/applitools/selenium/visual_grid/visual_grid_runner.rb', line 29

def enqueue_render_task(render_task)
  render_queue.push render_task if render_task.is_a? Applitools::Selenium::RenderTask
end

#get_all_test_resultsObject



44
45
46
47
48
49
# File 'lib/applitools/selenium/visual_grid/visual_grid_runner.rb', line 44

def get_all_test_results
  while !(all_eyes.select {|e| e.open?}.empty?)
    sleep 0.5
  end
  all_eyes.map { |e| e.test_list.map(&:test_result) }.flatten
end

#initObject



18
19
20
21
22
23
# File 'lib/applitools/selenium/visual_grid/visual_grid_runner.rb', line 18

def init
  @thread_pool.on_next_task_needed do
    (task = get_task_queue.pop).is_a?(Applitools::Selenium::VGTask) ? task : nil
  end
  @thread_pool.start
end

#open(eyes) ⇒ Object



25
26
27
# File 'lib/applitools/selenium/visual_grid/visual_grid_runner.rb', line 25

def open(eyes)
  all_eyes << eyes
end

#stopObject



33
34
35
36
37
38
# File 'lib/applitools/selenium/visual_grid/visual_grid_runner.rb', line 33

def stop
  while all_running_tests.map(&:score).reduce(0, :+) > 0 do
    sleep 0.5
  end
  @thread_pool.stop
end