Class: Jasmine::SimpleClient

Inherits:
Object
  • Object
show all
Defined in:
lib/jasmine-ruby/jasmine_runner.rb

Instance Method Summary collapse

Constructor Details

#initialize(selenium_host, selenium_port, selenium_browser_start_command, http_address) ⇒ SimpleClient

Returns a new instance of SimpleClient.



186
187
188
189
190
191
192
193
194
195
# File 'lib/jasmine-ruby/jasmine_runner.rb', line 186

def initialize(selenium_host, selenium_port, selenium_browser_start_command, http_address)
  require 'selenium/client'
  @driver = Selenium::Client::Driver.new(
    selenium_host,
    selenium_port,
    selenium_browser_start_command,
    http_address
  )
  @http_address = http_address
end

Instance Method Details

#connectObject



201
202
203
204
# File 'lib/jasmine-ruby/jasmine_runner.rb', line 201

def connect
  @driver.start
  @driver.open("/")
end

#disconnectObject



206
207
208
# File 'lib/jasmine-ruby/jasmine_runner.rb', line 206

def disconnect
  @driver.stop
end

#eval_js(script) ⇒ Object



220
221
222
223
224
225
# File 'lib/jasmine-ruby/jasmine_runner.rb', line 220

def eval_js(script)
  escaped_script = "'" + script.gsub(/(['\\])/) { '\\' + $1 } + "'"

  result = @driver.get_eval(" try { eval(#{escaped_script}, window); } catch(err) { window.eval(#{escaped_script}); }")
  JSON.parse("[#{result}]")[0]
end

#runObject



210
211
212
213
214
215
216
217
218
# File 'lib/jasmine-ruby/jasmine_runner.rb', line 210

def run
  until tests_have_finished? do
    sleep 0.1
  end

  puts @driver.get_eval("window.results()")
  failed_count = @driver.get_eval("window.jasmine.getEnv().currentRunner.results().failedCount").to_i
  failed_count == 0
end

#tests_have_finished?Boolean

Returns:

  • (Boolean)


197
198
199
# File 'lib/jasmine-ruby/jasmine_runner.rb', line 197

def tests_have_finished?
  @driver.get_eval("window.jasmine.getEnv().currentRunner.finished") == "true"
end