Commit ba25b2dc84cc25e66d6fa1450fee39c9bac002c5

Authored by Dmitriy Zaporozhets
1 parent ece56329

Use poltergeist instaead of capybara-webkit

@@ -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
@@ -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 &lt; Spinach::FeatureSteps @@ -96,8 +96,7 @@ class ProjectIssues &lt; 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 &#39;capybara/rails&#39; @@ -11,14 +11,13 @@ require &#39;capybara/rails&#39;
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