From 3a518b2a3c3bdff5b038bec0bae8d8be48f61727 Mon Sep 17 00:00:00 2001 From: Christian Williams Date: Thu, 9 Jul 2009 11:17:58 -0700 Subject: [PATCH] Move jasmine_runner.rb to emi/jasmine fork. --- contrib/ruby/jasmine_runner.rb | 68 ++++++++++++++++++++++++++++++++++ contrib/ruby/run.html | 26 +++++++++++++ 2 files changed, 94 insertions(+) create mode 100644 contrib/ruby/jasmine_runner.rb create mode 100644 contrib/ruby/run.html diff --git a/contrib/ruby/jasmine_runner.rb b/contrib/ruby/jasmine_runner.rb new file mode 100644 index 0000000..3565e63 --- /dev/null +++ b/contrib/ruby/jasmine_runner.rb @@ -0,0 +1,68 @@ +require 'erb' + +module Jasmine + class RunAdapter + def initialize(spec_files) + p "spec_files: #{spec_files}" + + @spec_files = spec_files + end + + def call(env) + spec_files = @spec_files + body = ERB.new(File.read(File.join(File.dirname(__FILE__), "run.html"))).result(binding) + [ + 200, + { 'Content-Type' => 'text/html' }, + body + ] + end + end + + class SimpleServer + def self.start(spec_dir, mappings) + require "thin" + + config = { + '/run.html' => Jasmine::RunAdapter.new(spec_dir) + } + mappings.each do |from, to| + config[from] = Rack::File.new(to) + end + + app = Rack::URLMap.new(config) + + Thin::Server.start('0.0.0.0', 8080, app) + end + end + + class SimpleClient + def initialize(selenium_host, selenium_port, selenium_browser_start_command, http_address) + require 'selenium' + @driver = Selenium::Client::Driver.new( + selenium_host, + selenium_port, + selenium_browser_start_command, + http_address + ) + @http_address = http_address + end + + def tests_have_finished? + @driver.get_eval("window.jasmine.getEnv().currentRunner.finished") == "true" + end + + def run() + @driver.start + @driver.open(@http_address) + + until tests_have_finished? do + sleep 0.1 + end + + puts @driver.get_eval("window.getResults()") + failed_count = @driver.get_eval("window.jasmine.getEnv().currentRunner.getResults().failedCount").to_i + failed_count == 0 + end + end +end diff --git a/contrib/ruby/run.html b/contrib/ruby/run.html new file mode 100644 index 0000000..5387918 --- /dev/null +++ b/contrib/ruby/run.html @@ -0,0 +1,26 @@ + + + + + Jasmine suite + + + + + + + + <% spec_files.each do |spec_file| %> + + <% end %> + + +
+ +