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.



7
8
9
10
11
12
13
# File 'lib/applitools/selenium/visual_grid/visual_grid_runner.rb', line 7

def initialize(concurrent_open_sessions = 10)
  self.all_eyes = []
  @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

#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

#get_all_test_resultsObject



37
38
39
40
41
42
# File 'lib/applitools/selenium/visual_grid/visual_grid_runner.rb', line 37

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



15
16
17
18
19
20
# File 'lib/applitools/selenium/visual_grid/visual_grid_runner.rb', line 15

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



22
23
24
# File 'lib/applitools/selenium/visual_grid/visual_grid_runner.rb', line 22

def open(eyes)
  all_eyes << eyes
end

#stopObject



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

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