Sha256: 0e7e745abe153121763ca73f51a1425bfefb55ba665836418dde2402438be197
Contents?: true
Size: 1.98 KB
Versions: 2
Compression:
Stored size: 1.98 KB
Contents
module JsTestCore module Resources class Runners class FirefoxRunner class << self def resume(suite_id, text) runner = instances.delete(suite_id) runner.finalize(text) end def register_instance(runner) instances[runner.suite_id] = runner end protected def instances @instances ||= {} end end include FileUtils attr_reader :profile_dir, :connection, :driver, :response def initialize profile_base = "#{::Dir.tmpdir}/js_test_core/firefox" mkdir_p profile_base @profile_dir = "#{profile_base}/#{Time.now.to_i}" @connection = Server.connection end def post(request, response) @response = response spec_url = (request && request['spec_url']) ? request['spec_url'] : spec_suite_url parsed_spec_url = URI.parse(spec_url) selenium_port = (request['selenium_port'] || 4444).to_i @driver = Selenium::SeleniumDriver.new( request['selenium_host'] || 'localhost', selenium_port, '*firefox', "#{parsed_spec_url.scheme}://#{parsed_spec_url.host}:#{parsed_spec_url.port}" ) begin driver.start rescue Errno::ECONNREFUSED => e raise Errno::ECONNREFUSED, "Cannot connect to Selenium Server on port #{selenium_port}. To start the selenium server, run `selenium`." end Thread.start do driver.open(spec_url) end response.status = 200 FirefoxRunner.register_instance self end def finalize(text) driver.stop response.body = text connection.send_body(response) end def suite_id driver.session_id end protected def spec_suite_url "#{Server.root_url}/specs" end end end end end
Version data entries
2 entries across 2 versions & 2 rubygems
Version | Path |
---|---|
btakita-screw_unit-0.1.0 | vendor/js_test_core/lib/js_test_core/resources/runners/firefox_runner.rb |
js_test_core-0.1.1 | lib/js_test_core/resources/runners/firefox_runner.rb |