From 875090ed1d8d7260cd1c86d5ad8072987af1e81a Mon Sep 17 00:00:00 2001 From: Seth Call Date: Sun, 3 Feb 2013 11:19:39 -0600 Subject: [PATCH] * switching to webkit for cucumber. I want to make selenium an option again, and also stop spiting out the console logs to the stdout; but for now this is very useful as we debug what is going on --- Gemfile | 1 + app/views/artifacts/versioncheck.html.erb | 2 +- features/step_definitions/jamweb_steps.rb | 7 +++-- features/support/before_cucumber.rb | 2 +- features/support/env.rb | 35 +++++++++++++++++++++-- 5 files changed, 40 insertions(+), 7 deletions(-) diff --git a/Gemfile b/Gemfile index bd4b834d8..5ad8116b9 100644 --- a/Gemfile +++ b/Gemfile @@ -67,6 +67,7 @@ end group :test, :cucumber do gem 'capybara' + gem "capybara-webkit" gem 'capybara-screenshot' gem 'cucumber-rails' #, '1.3.0', :require => false gem 'factory_girl_rails', '4.1.0' diff --git a/app/views/artifacts/versioncheck.html.erb b/app/views/artifacts/versioncheck.html.erb index dc5be95b3..5b6271631 100644 --- a/app/views/artifacts/versioncheck.html.erb +++ b/app/views/artifacts/versioncheck.html.erb @@ -1,5 +1,5 @@ - +
<%= image_tag "logo.png" %>

New version available

diff --git a/features/step_definitions/jamweb_steps.rb b/features/step_definitions/jamweb_steps.rb index 77519da69..d74702ae5 100644 --- a/features/step_definitions/jamweb_steps.rb +++ b/features/step_definitions/jamweb_steps.rb @@ -1,9 +1,10 @@ Given /^I am on the home page$/ do - @home_page_session = Capybara::Session.new(Capybara.current_driver, Capybara.app) - @home_page_session.visit root_path + $home_page_session = Capybara::Session.new(Capybara.current_driver, Capybara.app) + $home_page_session.driver.resize_window(1600, 1200) + $home_page_session.visit root_path end Then /^I should see "(.*?)"$/ do |content| - @home_page_session .find("div.content-head h1").should have_content content + $home_page_session.find("div.content-head h1").should have_content content end diff --git a/features/support/before_cucumber.rb b/features/support/before_cucumber.rb index bfcf0b264..7c5507587 100644 --- a/features/support/before_cucumber.rb +++ b/features/support/before_cucumber.rb @@ -18,8 +18,8 @@ class BeforeCucumber # put ActionMailer into test mode ActionMailer::Base.delivery_method = :test - end + end end if ENV['SHOW_JS_ERRORS'] == "1" diff --git a/features/support/env.rb b/features/support/env.rb index 178abbec5..4bc44d7c7 100644 --- a/features/support/env.rb +++ b/features/support/env.rb @@ -12,7 +12,37 @@ require File.expand_path('../before_cucumber', __FILE__) BeforeCucumber.new require 'cucumber/rails' -require 'capybara-screenshot/cucumber' # https://github.com/mattheworiordan/capybara-screenshot +#require 'capybara-screenshot/cucumber' # https://github.com/mattheworiordan/capybara-screenshot +require 'capybara-webkit' + +Capybara.register_driver :webkit do |app| + file = File.open(Rails.root.join("log/javascript_console.log"), "w") + Capybara::Webkit::Driver.new(app, :stdout => file) +end + + + After do |scenario| + puts "tnhaounth:oantuhnaosh" + $stdout.puts page.driver.to_s + if page.driver.to_s.match("Webkit") + $stdout.puts "===============================" + $stdout.puts "= primary session console out =" + $stdout.puts "===============================" + $stdout.puts page.driver.console_messages + $stdout.puts "===============================" + $stdout.puts "= primary session error =" + $stdout.puts "===============================" + $stdout.puts page.driver.error_messages + $stdout.puts "===============================" + $stdout.puts "= second session console out =" + $stdout.puts "===============================" + $stdout.puts @second_session.driver.console_messages + $stdout.puts "===============================" + $stdout.puts "= sceond session error =" + $stdout.puts "===============================" + $stdout.puts @second_session.driver.error_messages + end +end # Capybara defaults to XPath selectors rather than Webrat's default of CSS3. In # order to ease the transition to Capybara we set the default here. If you'd @@ -62,7 +92,8 @@ end # end # -Capybara.javascript_driver = :selenium +Capybara.current_driver = :webkit +Capybara.javascript_driver = :webkit # Possible values are :truncation and :transaction # The :transaction strategy is faster, but might give you threading problems.