Commit 5e262cf4fdefcd409952c175d09119a1770fe6ee
Exists in
master
and in
4 other branches
Merge pull request #1995 from gitlabhq/feature/poltergeist
Use poltergeist instaead of capybara-webkit
Showing
5 changed files
with
38 additions
and
21 deletions
Show diff stats
Gemfile
| @@ -123,8 +123,6 @@ group :development, :test do | @@ -123,8 +123,6 @@ group :development, :test do | ||
| 123 | gem 'spinach-rails' | 123 | gem 'spinach-rails' |
| 124 | gem "rspec-rails" | 124 | gem "rspec-rails" |
| 125 | gem "capybara" | 125 | gem "capybara" |
| 126 | - gem "capybara-webkit" | ||
| 127 | - gem "headless" | ||
| 128 | gem "pry" | 126 | gem "pry" |
| 129 | gem "awesome_print" | 127 | gem "awesome_print" |
| 130 | gem "database_cleaner" | 128 | gem "database_cleaner" |
| @@ -139,6 +137,9 @@ group :development, :test do | @@ -139,6 +137,9 @@ group :development, :test do | ||
| 139 | gem 'rb-fsevent', require: darwin_only('rb-fsevent') | 137 | gem 'rb-fsevent', require: darwin_only('rb-fsevent') |
| 140 | gem 'growl', require: darwin_only('growl') | 138 | gem 'growl', require: darwin_only('growl') |
| 141 | gem 'rb-inotify', require: linux_only('rb-inotify') | 139 | gem 'rb-inotify', require: linux_only('rb-inotify') |
| 140 | + | ||
| 141 | + # PhantomJS driver for Capybara | ||
| 142 | + gem 'poltergeist' | ||
| 142 | end | 143 | end |
| 143 | 144 | ||
| 144 | group :test do | 145 | group :test do |
Gemfile.lock
| @@ -94,9 +94,6 @@ GEM | @@ -94,9 +94,6 @@ GEM | ||
| 94 | rack-test (>= 0.5.4) | 94 | rack-test (>= 0.5.4) |
| 95 | selenium-webdriver (~> 2.0) | 95 | selenium-webdriver (~> 2.0) |
| 96 | xpath (~> 0.1.4) | 96 | xpath (~> 0.1.4) |
| 97 | - capybara-webkit (0.12.1) | ||
| 98 | - capybara (>= 1.0.0, < 1.2) | ||
| 99 | - json | ||
| 100 | carrierwave (0.6.2) | 97 | carrierwave (0.6.2) |
| 101 | activemodel (>= 3.2.0) | 98 | activemodel (>= 3.2.0) |
| 102 | activesupport (>= 3.2.0) | 99 | activesupport (>= 3.2.0) |
| @@ -143,6 +140,8 @@ GEM | @@ -143,6 +140,8 @@ GEM | ||
| 143 | railties (>= 3.0.0) | 140 | railties (>= 3.0.0) |
| 144 | faraday (0.8.4) | 141 | faraday (0.8.4) |
| 145 | multipart-post (~> 1.1) | 142 | multipart-post (~> 1.1) |
| 143 | + faye-websocket (0.4.6) | ||
| 144 | + eventmachine (>= 0.12.0) | ||
| 146 | ffaker (1.14.0) | 145 | ffaker (1.14.0) |
| 147 | ffi (1.0.11) | 146 | ffi (1.0.11) |
| 148 | font-awesome-sass-rails (2.0.0.0) | 147 | font-awesome-sass-rails (2.0.0.0) |
| @@ -189,8 +188,8 @@ GEM | @@ -189,8 +188,8 @@ GEM | ||
| 189 | hashery (1.5.0) | 188 | hashery (1.5.0) |
| 190 | blankslate | 189 | blankslate |
| 191 | hashie (1.2.0) | 190 | hashie (1.2.0) |
| 192 | - headless (0.3.1) | ||
| 193 | hike (1.2.1) | 191 | hike (1.2.1) |
| 192 | + http_parser.rb (0.5.3) | ||
| 194 | httparty (0.8.3) | 193 | httparty (0.8.3) |
| 195 | multi_json (~> 1.0) | 194 | multi_json (~> 1.0) |
| 196 | multi_xml | 195 | multi_xml |
| @@ -260,6 +259,12 @@ GEM | @@ -260,6 +259,12 @@ GEM | ||
| 260 | omniauth-oauth (~> 1.0) | 259 | omniauth-oauth (~> 1.0) |
| 261 | orm_adapter (0.3.0) | 260 | orm_adapter (0.3.0) |
| 262 | pg (0.14.0) | 261 | pg (0.14.0) |
| 262 | + poltergeist (1.0.2) | ||
| 263 | + capybara (~> 1.1) | ||
| 264 | + childprocess (~> 0.3) | ||
| 265 | + faye-websocket (~> 0.4, >= 0.4.4) | ||
| 266 | + http_parser.rb (~> 0.5.3) | ||
| 267 | + multi_json (~> 1.0) | ||
| 263 | polyglot (0.3.3) | 268 | polyglot (0.3.3) |
| 264 | posix-spawn (0.3.6) | 269 | posix-spawn (0.3.6) |
| 265 | pry (0.9.9.6) | 270 | pry (0.9.9.6) |
| @@ -422,7 +427,6 @@ DEPENDENCIES | @@ -422,7 +427,6 @@ DEPENDENCIES | ||
| 422 | awesome_print | 427 | awesome_print |
| 423 | bootstrap-sass (= 2.0.4) | 428 | bootstrap-sass (= 2.0.4) |
| 424 | capybara | 429 | capybara |
| 425 | - capybara-webkit | ||
| 426 | carrierwave | 430 | carrierwave |
| 427 | chosen-rails | 431 | chosen-rails |
| 428 | coffee-rails (= 3.2.2) | 432 | coffee-rails (= 3.2.2) |
| @@ -449,7 +453,6 @@ DEPENDENCIES | @@ -449,7 +453,6 @@ DEPENDENCIES | ||
| 449 | guard-rspec | 453 | guard-rspec |
| 450 | guard-spinach | 454 | guard-spinach |
| 451 | haml-rails | 455 | haml-rails |
| 452 | - headless | ||
| 453 | httparty | 456 | httparty |
| 454 | jquery-atwho-rails (= 0.1.6) | 457 | jquery-atwho-rails (= 0.1.6) |
| 455 | jquery-rails (= 2.0.2) | 458 | jquery-rails (= 2.0.2) |
| @@ -465,6 +468,7 @@ DEPENDENCIES | @@ -465,6 +468,7 @@ DEPENDENCIES | ||
| 465 | omniauth-ldap! | 468 | omniauth-ldap! |
| 466 | omniauth-twitter | 469 | omniauth-twitter |
| 467 | pg | 470 | pg |
| 471 | + poltergeist | ||
| 468 | pry | 472 | pry |
| 469 | pygments.rb (= 0.3.1) | 473 | pygments.rb (= 0.3.1) |
| 470 | quiet_assets (= 1.0.1) | 474 | quiet_assets (= 1.0.1) |
features/steps/project/project_issues.rb
| @@ -96,8 +96,7 @@ class ProjectIssues < Spinach::FeatureSteps | @@ -96,8 +96,7 @@ class ProjectIssues < Spinach::FeatureSteps | ||
| 96 | end | 96 | end |
| 97 | 97 | ||
| 98 | Then 'I should see selected milestone with title "v3.0"' do | 98 | Then 'I should see selected milestone with title "v3.0"' do |
| 99 | - issues_milestone_selector = "#issue_milestone_id_chzn/a" | ||
| 100 | - wait_until { page.has_content?("Details") } | 99 | + issues_milestone_selector = "#milestone_id_chzn > a" |
| 101 | page.find(issues_milestone_selector).should have_content("v3.0") | 100 | page.find(issues_milestone_selector).should have_content("v3.0") |
| 102 | end | 101 | end |
| 103 | 102 |
features/support/env.rb
| @@ -11,14 +11,33 @@ end | @@ -11,14 +11,33 @@ end | ||
| 11 | 11 | ||
| 12 | Dir["#{Rails.root}/features/steps/shared/*.rb"].each {|file| require file} | 12 | Dir["#{Rails.root}/features/steps/shared/*.rb"].each {|file| require file} |
| 13 | 13 | ||
| 14 | +# | ||
| 15 | +# Stub gitolite | ||
| 16 | +# | ||
| 14 | include GitoliteStub | 17 | include GitoliteStub |
| 15 | 18 | ||
| 16 | WebMock.allow_net_connect! | 19 | WebMock.allow_net_connect! |
| 17 | -Capybara.javascript_driver = :webkit | 20 | + |
| 21 | +# | ||
| 22 | +# JS driver | ||
| 23 | +# | ||
| 24 | +require 'capybara/poltergeist' | ||
| 25 | +Capybara.javascript_driver = :poltergeist | ||
| 26 | +Spinach.hooks.on_tag("javascript") do | ||
| 27 | + ::Capybara.current_driver = ::Capybara.javascript_driver | ||
| 28 | + ::Capybara.default_wait_time = 5 | ||
| 29 | +end | ||
| 30 | + | ||
| 18 | 31 | ||
| 19 | DatabaseCleaner.strategy = :truncation | 32 | DatabaseCleaner.strategy = :truncation |
| 20 | -Spinach.hooks.before_scenario { DatabaseCleaner.start } | ||
| 21 | -Spinach.hooks.after_scenario { DatabaseCleaner.clean } | 33 | + |
| 34 | +Spinach.hooks.before_scenario do | ||
| 35 | + DatabaseCleaner.start | ||
| 36 | +end | ||
| 37 | + | ||
| 38 | +Spinach.hooks.after_scenario do | ||
| 39 | + DatabaseCleaner.clean | ||
| 40 | +end | ||
| 22 | 41 | ||
| 23 | Spinach.hooks.before_run do | 42 | Spinach.hooks.before_run do |
| 24 | RSpec::Mocks::setup self | 43 | RSpec::Mocks::setup self |
spec/spec_helper.rb
| @@ -11,14 +11,13 @@ require 'capybara/rails' | @@ -11,14 +11,13 @@ require 'capybara/rails' | ||
| 11 | require 'capybara/rspec' | 11 | require 'capybara/rspec' |
| 12 | require 'webmock/rspec' | 12 | require 'webmock/rspec' |
| 13 | require 'email_spec' | 13 | require 'email_spec' |
| 14 | -require 'headless' | ||
| 15 | 14 | ||
| 16 | # Requires supporting ruby files with custom matchers and macros, etc, | 15 | # Requires supporting ruby files with custom matchers and macros, etc, |
| 17 | # in spec/support/ and its subdirectories. | 16 | # in spec/support/ and its subdirectories. |
| 18 | Dir[Rails.root.join("spec/support/**/*.rb")].each {|f| require f} | 17 | Dir[Rails.root.join("spec/support/**/*.rb")].each {|f| require f} |
| 19 | 18 | ||
| 20 | -# Use capybara-webkit | ||
| 21 | -Capybara.javascript_driver = :webkit | 19 | +require 'capybara/poltergeist' |
| 20 | +Capybara.javascript_driver = :poltergeist | ||
| 22 | 21 | ||
| 23 | WebMock.disable_net_connect!(allow_localhost: true) | 22 | WebMock.disable_net_connect!(allow_localhost: true) |
| 24 | 23 | ||
| @@ -35,11 +34,6 @@ RSpec.configure do |config| | @@ -35,11 +34,6 @@ RSpec.configure do |config| | ||
| 35 | # instead of true. | 34 | # instead of true. |
| 36 | config.use_transactional_fixtures = false | 35 | config.use_transactional_fixtures = false |
| 37 | 36 | ||
| 38 | - config.before :all do | ||
| 39 | - headless = Headless.new | ||
| 40 | - headless.start | ||
| 41 | - end | ||
| 42 | - | ||
| 43 | config.before do | 37 | config.before do |
| 44 | stub_gitolite! | 38 | stub_gitolite! |
| 45 | 39 |