1
0
Fork 0
mirror of https://github.com/teamcapybara/capybara.git synced 2022-11-09 12:08:07 -05:00

Merge pull request #979 from twalpole/chrome

Add selenium with chrome to the test suite
This commit is contained in:
Jonas Nicklas 2013-11-18 15:00:15 -08:00
commit 1b73f77c60
5 changed files with 39 additions and 3 deletions

View file

@ -20,6 +20,15 @@ matrix:
rvm: rbx-2.0.0 rvm: rbx-2.0.0
- gemfile: gemfiles/Gemfile.base-versions - gemfile: gemfiles/Gemfile.base-versions
rvm: jruby-19mode rvm: jruby-19mode
before_install:
- URL='http://chromedriver.storage.googleapis.com/2.6/chromedriver_linux64.zip'; FILE=`mktemp`; wget "$URL" -qO $FILE && sudo unzip $FILE chromedriver -d /usr/local/bin; rm $FILE; sudo chmod 777 /usr/local/bin/chromedriver
- wget -q -O - https://dl-ssl.google.com/linux/linux_signing_key.pub | sudo apt-key add -
- sudo sh -c 'echo "deb http://dl.google.com/linux/chrome/deb/ stable main" >> /etc/apt/sources.list.d/google.list'
- sudo apt-get update
- sudo apt-get install google-chrome-stable
- sudo chmod 1777 /dev/shm
before_script: before_script:
- sh -e /etc/init.d/xvfb start - sh -e /etc/init.d/xvfb start
- export DISPLAY=:99.0 - export DISPLAY=:99.0
script: "bundle exec rake travis"

View file

@ -5,10 +5,14 @@ require 'yard'
desc "Run all examples" desc "Run all examples"
RSpec::Core::RakeTask.new(:spec) do |t| RSpec::Core::RakeTask.new(:spec) do |t|
#t.rspec_path = 'bin/rspec'
t.rspec_opts = %w[--color] t.rspec_opts = %w[--color]
end end
RSpec::Core::RakeTask.new(:spec_with_chrome) do |t|
t.rspec_opts = %w[--color]
t.pattern = './spec{,/*/**}/*{_spec.rb,_spec_chrome.rb}'
end
YARD::Rake::YardocTask.new do |t| YARD::Rake::YardocTask.new do |t|
t.files = ['lib/**/*.rb'] t.files = ['lib/**/*.rb']
#t.options = ['--any', '--extra', '--opts'] # optional #t.options = ['--any', '--extra', '--opts'] # optional
@ -18,4 +22,6 @@ Cucumber::Rake::Task.new(:cucumber) do |task|
task.cucumber_opts = ['--format=progress', 'features'] task.cucumber_opts = ['--format=progress', 'features']
end end
task :travis => [:spec_with_chrome, :cucumber]
task :default => [:spec, :cucumber] task :default => [:spec, :cucumber]

View file

@ -64,7 +64,7 @@ Capybara::SpecHelper.spec "#attach_file" do
end end
it "should not break when using HTML5 multiple file input uploading multiple files" do it "should not break when using HTML5 multiple file input uploading multiple files" do
pending "Selenium is buggy on this, see http://code.google.com/p/selenium/issues/detail?id=2239" if @session.respond_to?(:mode) && [:selenium, :selenium_focus].include?(@session.mode) pending "Selenium is buggy on this, see http://code.google.com/p/selenium/issues/detail?id=2239" if @session.respond_to?(:mode) && @session.mode.to_s =~ /^selenium/
@session.attach_file "Multiple Documents", [@test_file_path, @another_test_file_path] @session.attach_file "Multiple Documents", [@test_file_path, @another_test_file_path]
@session.click_button('Upload Multiple') @session.click_button('Upload Multiple')
@session.body.should include("2 | ")#number of files @session.body.should include("2 | ")#number of files

View file

@ -57,7 +57,7 @@ Capybara::SpecHelper.spec "#fill_in" do
extract_results(@session)['description'].should == 'is <strong>very</strong> secret!' extract_results(@session)['description'].should == 'is <strong>very</strong> secret!'
end end
it "should handle newlines in a textarea", tw: true do it "should handle newlines in a textarea" do
@session.fill_in('form_description', :with => "\nSome text\n") @session.fill_in('form_description', :with => "\nSome text\n")
@session.click_button('awesome') @session.click_button('awesome')
extract_results(@session)['description'].should == "\r\nSome text\r\n" extract_results(@session)['description'].should == "\r\nSome text\r\n"

View file

@ -0,0 +1,21 @@
require 'spec_helper'
Capybara.register_driver :selenium_chrome do |app|
args = ENV['TRAVIS'] ? ['no-sandbox' ] : []
Capybara::Selenium::Driver.new(app, :browser => :chrome, :args => args)
end
class ChromeTestApp < TestApp
# Object.id is different from the TestApp used in firefox session so
# a new Capybar::Server instance will get launched for chrome testing
end
module TestSessions
Chrome = Capybara::Session.new(:selenium_chrome, ChromeTestApp)
end
Capybara::SpecHelper.run_specs TestSessions::Chrome, "selenium_chrome", :skip => [
:response_headers,
:status_code,
:trigger
]