From 8d3775dd7497c9b2df63c0348b7d718b16f9436b Mon Sep 17 00:00:00 2001 From: Joe Ferris Date: Fri, 30 Sep 2011 16:55:28 -0500 Subject: [PATCH] Add appraisal to test across versions; fix support for capybara 1.0 --- Appraisals | 7 ++++ Gemfile | 6 +++ Gemfile.lock | 8 +++- Rakefile | 1 + capybara-webkit.gemspec | 1 + gemfiles/1.0.gemfile | 7 ++++ gemfiles/1.0.gemfile.lock | 65 ++++++++++++++++++++++++++++++ gemfiles/1.1.gemfile | 7 ++++ gemfiles/1.1.gemfile.lock | 65 ++++++++++++++++++++++++++++++ lib/capybara/driver/webkit/node.rb | 6 ++- spec/driver_spec.rb | 10 ++++- 11 files changed, 178 insertions(+), 5 deletions(-) create mode 100644 Appraisals create mode 100644 gemfiles/1.0.gemfile create mode 100644 gemfiles/1.0.gemfile.lock create mode 100644 gemfiles/1.1.gemfile create mode 100644 gemfiles/1.1.gemfile.lock diff --git a/Appraisals b/Appraisals new file mode 100644 index 00000000..7975baf1 --- /dev/null +++ b/Appraisals @@ -0,0 +1,7 @@ +appraise "1.0" do + gem "capybara", "~> 1.0.0" +end + +appraise "1.1" do + gem "capybara", "~> 1.1.0" +end diff --git a/Gemfile b/Gemfile index 1aa98e4b..9d0979a1 100644 --- a/Gemfile +++ b/Gemfile @@ -1,2 +1,8 @@ source "http://rubygems.org" gemspec +# gem "appraisal" +# gem "rspec", '~> 2.6.0', :require => false +# gem "capybara" +# gem "sinatra", :require => false +# gem "mini_magick", :require => false +# gem 'rake' diff --git a/Gemfile.lock b/Gemfile.lock index c088cdea..90574f16 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -7,6 +7,9 @@ PATH GEM remote: http://rubygems.org/ specs: + appraisal (0.3.8) + bundler + rake capybara (1.1.1) mime-types (>= 1.16) nokogiri (>= 1.3.3) @@ -18,7 +21,7 @@ GEM ffi (~> 1.0.6) diff-lcs (1.1.2) ffi (1.0.9) - json_pure (1.6.0) + json_pure (1.6.1) mime-types (1.16) mini_magick (3.2.1) subexec (~> 0.0.4) @@ -36,7 +39,7 @@ GEM diff-lcs (~> 1.1.2) rspec-mocks (2.6.0) rubyzip (0.9.4) - selenium-webdriver (2.6.0) + selenium-webdriver (2.7.0) childprocess (>= 0.2.1) ffi (>= 1.0.7) json_pure @@ -53,6 +56,7 @@ PLATFORMS ruby DEPENDENCIES + appraisal capybara-webkit! mini_magick rake diff --git a/Rakefile b/Rakefile index 3a41c5f1..ab94842f 100644 --- a/Rakefile +++ b/Rakefile @@ -3,6 +3,7 @@ require 'bundler/setup' require 'rspec/core/rake_task' require 'rake/gempackagetask' require 'capybara_webkit_builder' +require 'appraisal' desc "Generate a Makefile using qmake" file 'Makefile' do diff --git a/capybara-webkit.gemspec b/capybara-webkit.gemspec index 54e9d838..41a9dc7b 100644 --- a/capybara-webkit.gemspec +++ b/capybara-webkit.gemspec @@ -18,6 +18,7 @@ Gem::Specification.new do |s| s.add_development_dependency "sinatra" s.add_development_dependency "mini_magick" s.add_development_dependency "rake" + s.add_development_dependency "appraisal" s.extensions = "extconf.rb" end diff --git a/gemfiles/1.0.gemfile b/gemfiles/1.0.gemfile new file mode 100644 index 00000000..a7acd57b --- /dev/null +++ b/gemfiles/1.0.gemfile @@ -0,0 +1,7 @@ +# This file was generated by Appraisal + +source "http://rubygems.org" + +gem "capybara", "~> 1.0.0" + +gemspec :path=>"../" \ No newline at end of file diff --git a/gemfiles/1.0.gemfile.lock b/gemfiles/1.0.gemfile.lock new file mode 100644 index 00000000..13726f08 --- /dev/null +++ b/gemfiles/1.0.gemfile.lock @@ -0,0 +1,65 @@ +PATH + remote: /Users/jferris/Source/capybara-webkit + specs: + capybara-webkit (0.6.1) + capybara (< 1.2, >= 1.0.0) + +GEM + remote: http://rubygems.org/ + specs: + appraisal (0.3.8) + bundler + rake + capybara (1.0.1) + mime-types (>= 1.16) + nokogiri (>= 1.3.3) + rack (>= 1.0.0) + rack-test (>= 0.5.4) + selenium-webdriver (~> 2.0) + xpath (~> 0.1.4) + childprocess (0.2.2) + ffi (~> 1.0.6) + diff-lcs (1.1.3) + ffi (1.0.9) + json_pure (1.6.1) + mime-types (1.16) + mini_magick (3.3) + subexec (~> 0.1.0) + nokogiri (1.5.0) + rack (1.3.3) + rack-test (0.6.1) + rack (>= 1.0) + rake (0.9.2) + rspec (2.6.0) + rspec-core (~> 2.6.0) + rspec-expectations (~> 2.6.0) + rspec-mocks (~> 2.6.0) + rspec-core (2.6.4) + rspec-expectations (2.6.0) + diff-lcs (~> 1.1.2) + rspec-mocks (2.6.0) + rubyzip (0.9.4) + selenium-webdriver (2.7.0) + childprocess (>= 0.2.1) + ffi (>= 1.0.7) + json_pure + rubyzip + sinatra (1.2.6) + rack (~> 1.1) + tilt (< 2.0, >= 1.2.2) + subexec (0.1.0) + tilt (1.3.3) + xpath (0.1.4) + nokogiri (~> 1.3) + +PLATFORMS + ruby + +DEPENDENCIES + appraisal + capybara (~> 1.0.0) + capybara-webkit! + mini_magick + rake + rspec (~> 2.6.0) + sinatra diff --git a/gemfiles/1.1.gemfile b/gemfiles/1.1.gemfile new file mode 100644 index 00000000..7647442a --- /dev/null +++ b/gemfiles/1.1.gemfile @@ -0,0 +1,7 @@ +# This file was generated by Appraisal + +source "http://rubygems.org" + +gem "capybara", "~> 1.1.0" + +gemspec :path=>"../" \ No newline at end of file diff --git a/gemfiles/1.1.gemfile.lock b/gemfiles/1.1.gemfile.lock new file mode 100644 index 00000000..3ff23c65 --- /dev/null +++ b/gemfiles/1.1.gemfile.lock @@ -0,0 +1,65 @@ +PATH + remote: /Users/jferris/Source/capybara-webkit + specs: + capybara-webkit (0.6.1) + capybara (< 1.2, >= 1.0.0) + +GEM + remote: http://rubygems.org/ + specs: + appraisal (0.3.8) + bundler + rake + capybara (1.1.1) + mime-types (>= 1.16) + nokogiri (>= 1.3.3) + rack (>= 1.0.0) + rack-test (>= 0.5.4) + selenium-webdriver (~> 2.0) + xpath (~> 0.1.4) + childprocess (0.2.2) + ffi (~> 1.0.6) + diff-lcs (1.1.3) + ffi (1.0.9) + json_pure (1.6.1) + mime-types (1.16) + mini_magick (3.3) + subexec (~> 0.1.0) + nokogiri (1.5.0) + rack (1.3.3) + rack-test (0.6.1) + rack (>= 1.0) + rake (0.9.2) + rspec (2.6.0) + rspec-core (~> 2.6.0) + rspec-expectations (~> 2.6.0) + rspec-mocks (~> 2.6.0) + rspec-core (2.6.4) + rspec-expectations (2.6.0) + diff-lcs (~> 1.1.2) + rspec-mocks (2.6.0) + rubyzip (0.9.4) + selenium-webdriver (2.7.0) + childprocess (>= 0.2.1) + ffi (>= 1.0.7) + json_pure + rubyzip + sinatra (1.2.6) + rack (~> 1.1) + tilt (< 2.0, >= 1.2.2) + subexec (0.1.0) + tilt (1.3.3) + xpath (0.1.4) + nokogiri (~> 1.3) + +PLATFORMS + ruby + +DEPENDENCIES + appraisal + capybara (~> 1.1.0) + capybara-webkit! + mini_magick + rake + rspec (~> 2.6.0) + sinatra diff --git a/lib/capybara/driver/webkit/node.rb b/lib/capybara/driver/webkit/node.rb index ae18f057..d807d97f 100644 --- a/lib/capybara/driver/webkit/node.rb +++ b/lib/capybara/driver/webkit/node.rb @@ -96,7 +96,11 @@ def invoke(name, *args) end def allow_unattached_nodes? - !Capybara.automatic_reload + !automatic_reload? + end + + def automatic_reload? + Capybara.respond_to?(:automatic_reload) && Capybara.automatic_reload end def attached? diff --git a/spec/driver_spec.rb b/spec/driver_spec.rb index f3267fc1..8837e5f3 100644 --- a/spec/driver_spec.rb +++ b/spec/driver_spec.rb @@ -998,8 +998,14 @@ def echoed_cookie end end - before { Capybara.automatic_reload = false } - after { Capybara.automatic_reload = true } + before { set_automatic_reload false } + after { set_automatic_reload true } + + def set_automatic_reload(value) + if Capybara.respond_to?(:automatic_reload) + Capybara.automatic_reload = value + end + end it "allows removed nodes when reloading is disabled" do node = subject.find("//p[@id='removeMe']").first