]> git.openstreetmap.org Git - rails.git/blob - config/initializers/selenium.rb
Merge branch 'pull/5811'
[rails.git] / config / initializers / selenium.rb
1 if Rails.env.test?
2   require "active_support/testing/parallelization"
3
4   module OpenStreetMap
5     module Selenium
6       module BidiPort
7         module ClassMethods
8           attr_accessor :websocket_port
9         end
10
11         def self.prepended(base)
12           class << base
13             prepend ClassMethods
14           end
15
16           base.websocket_port = 10000
17
18           ActiveSupport::Testing::Parallelization.after_fork_hook do |worker|
19             base.websocket_port = 10000 + worker
20           end
21         end
22
23         def initialize(config)
24           super
25
26           @extra_args = Array(@extra_args) << "--websocket-port=#{self.class.websocket_port}"
27
28           self.class.websocket_port += 256
29         end
30       end
31     end
32   end
33
34   Selenium::WebDriver::ServiceManager.prepend(OpenStreetMap::Selenium::BidiPort)
35 end