Class: JasmineSeleniumRunner::ConfigureJasmine
- Inherits:
-
Object
- Object
- JasmineSeleniumRunner::ConfigureJasmine
- Defined in:
- lib/jasmine_selenium_runner/configure_jasmine.rb
Class Method Summary collapse
Instance Method Summary collapse
- #batch_size ⇒ Object
-
#initialize(formatter, jasmine_server_url, runner_config) ⇒ ConfigureJasmine
constructor
A new instance of ConfigureJasmine.
- #local_webdriver ⇒ Object
- #make_runner ⇒ Object
- #remote_webdriver(server_url) ⇒ Object
- #sauce_webdriver(sauce_config) ⇒ Object
- #selenium_options ⇒ Object
Constructor Details
#initialize(formatter, jasmine_server_url, runner_config) ⇒ ConfigureJasmine
Returns a new instance of ConfigureJasmine.
34 35 36 37 38 39 |
# File 'lib/jasmine_selenium_runner/configure_jasmine.rb', line 34 def initialize(formatter, jasmine_server_url, runner_config) @formatter = formatter @jasmine_server_url = jasmine_server_url @runner_config = runner_config @browser = runner_config['browser'] || 'firefox' end |
Class Method Details
.install_selenium_runner ⇒ Object
7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
# File 'lib/jasmine_selenium_runner/configure_jasmine.rb', line 7 def self.install_selenium_runner Jasmine.configure do |config| runner_config = load_config config.ci_port = 5555 if runner_config['use_sauce'] #Sauce only proxies certain ports config.runner = lambda { |formatter, jasmine_server_url| configuration_class = if runner_config['configuration_class'] const_get(runner_config['configuration_class']) else self end configuration_class.new(formatter, jasmine_server_url, runner_config).make_runner } end end |
.load_config ⇒ Object
23 24 25 26 27 28 29 30 31 32 |
# File 'lib/jasmine_selenium_runner/configure_jasmine.rb', line 23 def self.load_config filepath = ENV['JASMINE_SELENIUM_CONFIG_PATH'] filepath ||= File.join(Dir.pwd, 'spec', 'javascripts', 'support', 'jasmine_selenium_runner.yml') if File.exist?(filepath) YAML::load(ERB.new(File.read(filepath)).result(binding)) else {} end end |
Instance Method Details
#batch_size ⇒ Object
54 55 56 |
# File 'lib/jasmine_selenium_runner/configure_jasmine.rb', line 54 def batch_size runner_config['batch_config_size'] || 50 end |
#local_webdriver ⇒ Object
85 86 87 |
# File 'lib/jasmine_selenium_runner/configure_jasmine.rb', line 85 def local_webdriver Selenium::WebDriver.for(browser.to_sym, ) end |
#make_runner ⇒ Object
41 42 43 44 45 46 47 48 49 50 51 52 |
# File 'lib/jasmine_selenium_runner/configure_jasmine.rb', line 41 def make_runner webdriver = nil if runner_config['use_sauce'] webdriver = sauce_webdriver(runner_config['sauce']) elsif runner_config['selenium_server'] webdriver = remote_webdriver(runner_config['selenium_server']) else webdriver = local_webdriver end Jasmine::Runners::Selenium.new(formatter, jasmine_server_url, webdriver, batch_size) end |
#remote_webdriver(server_url) ⇒ Object
81 82 83 |
# File 'lib/jasmine_selenium_runner/configure_jasmine.rb', line 81 def remote_webdriver(server_url) Selenium::WebDriver.for :remote, :url => server_url, :desired_capabilities => browser.to_sym end |
#sauce_webdriver(sauce_config) ⇒ Object
58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 |
# File 'lib/jasmine_selenium_runner/configure_jasmine.rb', line 58 def sauce_webdriver(sauce_config) unless sauce_config['tunnel_identifier'] require 'sauce/connect' Sauce::Connect.connect! end username = sauce_config.fetch('username') key = sauce_config.fetch('access_key') driver_url = "http://#{username}:#{key}@localhost:4445/wd/hub" capabilities = { :name => sauce_config['name'], :platform => sauce_config['os'], :version => sauce_config['browser_version'], :build => sauce_config['build'], :tags => sauce_config['tags'], :browserName => browser, 'tunnel-identifier' => sauce_config['tunnel_identifier'] } Selenium::WebDriver.for :remote, :url => driver_url, :desired_capabilities => capabilities end |
#selenium_options ⇒ Object
89 90 91 92 93 94 95 96 97 98 |
# File 'lib/jasmine_selenium_runner/configure_jasmine.rb', line 89 def if browser == 'firefox-firebug' require File.join(File.dirname(__FILE__), 'firebug/firebug') profile = Selenium::WebDriver::Firefox::Profile.new profile.enable_firebug { :profile => profile } else {} end end |