Commit 5281ccda543f7dd0c616f4fd11d4df47551d9b2e

Authored by Braulio Bhavamitra
1 parent bcf8f080

rails4: fix remaining cucumber tests

Some tests now need javascript to run and were tagged to selenium
@@ -20,7 +20,7 @@ gem 'exception_notification', '~> 4.0.1' @@ -20,7 +20,7 @@ gem 'exception_notification', '~> 4.0.1'
20 gem 'gettext', '~> 2.2.1', :require => false 20 gem 'gettext', '~> 2.2.1', :require => false
21 gem 'locale', '~> 2.0.5' 21 gem 'locale', '~> 2.0.5'
22 gem 'whenever', :require => false 22 gem 'whenever', :require => false
23 -gem 'eita-jrails', '>= 0.10.0', require: 'jrails' 23 +gem 'eita-jrails', '~> 0.10.0', require: 'jrails'
24 24
25 # asset pipeline 25 # asset pipeline
26 gem 'uglifier', '>= 1.0.3' 26 gem 'uglifier', '>= 1.0.3'
config/environments/cucumber.rb
@@ -7,6 +7,8 @@ Noosfero::Application.configure do @@ -7,6 +7,8 @@ Noosfero::Application.configure do
7 # For more information see https://rspec.lighthouseapp.com/projects/16211/tickets/165 7 # For more information see https://rspec.lighthouseapp.com/projects/16211/tickets/165
8 config.cache_classes = true 8 config.cache_classes = true
9 9
  10 + config.assets.debug = false
  11 +
10 config.eager_load = false 12 config.eager_load = false
11 13
12 config.active_support.deprecation = :log 14 config.active_support.deprecation = :log
@@ -22,7 +24,4 @@ Noosfero::Application.configure do @@ -22,7 +24,4 @@ Noosfero::Application.configure do
22 # ActionMailer::Base.deliveries array. 24 # ActionMailer::Base.deliveries array.
23 config.action_mailer.delivery_method = :test 25 config.action_mailer.delivery_method = :test
24 26
25 - config.gem 'cucumber-rails', :lib => false, :version => '>=0.3.2' unless File.directory?(Rails.root.join('vendor/plugins/cucumber-rails'))  
26 - config.gem 'database_cleaner', :lib => false, :version => '>=0.5.0' unless File.directory?(Rails.root.join('vendor/plugins/database_cleaner'))  
27 - config.gem 'capybara', :lib => false, :version => '>=0.3.5' unless File.directory?(Rails.root.join('vendor/plugins/capybara'))  
28 end 27 end
features/delete_profile.feature
@@ -13,6 +13,7 @@ Feature: delete profile @@ -13,6 +13,7 @@ Feature: delete profile
13 | sample-community | Sample Community | 13 | sample-community | Sample Community |
14 And "Maria Silva" is a member of "Sample Community" 14 And "Maria Silva" is a member of "Sample Community"
15 15
  16 + @selenium
16 Scenario: deleting profile 17 Scenario: deleting profile
17 Given I am logged in as "joaosilva" 18 Given I am logged in as "joaosilva"
18 And I am on joaosilva's control panel 19 And I am on joaosilva's control panel
@@ -45,6 +46,7 @@ Feature: delete profile @@ -45,6 +46,7 @@ Feature: delete profile
45 When I follow "Community Info and settings" 46 When I follow "Community Info and settings"
46 Then I should see "Delete profile" 47 Then I should see "Delete profile"
47 48
  49 + @selenium
48 Scenario: community admin deletes the community 50 Scenario: community admin deletes the community
49 Given "Joao Silva" is admin of "Sample Community" 51 Given "Joao Silva" is admin of "Sample Community"
50 And I am logged in as "joaosilva" 52 And I am logged in as "joaosilva"
@@ -73,6 +75,7 @@ Feature: delete profile @@ -73,6 +75,7 @@ Feature: delete profile
73 When I follow "Enterprise Info and settings" 75 When I follow "Enterprise Info and settings"
74 Then I should see "Delete profile" 76 Then I should see "Delete profile"
75 77
  78 + @selenium
76 Scenario: enterprise admin deletes the enterprise 79 Scenario: enterprise admin deletes the enterprise
77 Given the following enterprise 80 Given the following enterprise
78 | identifier | name | 81 | identifier | name |
@@ -98,6 +101,7 @@ Feature: delete profile @@ -98,6 +101,7 @@ Feature: delete profile
98 And I go to /myprofile/sample-enterprise/profile_editor/destroy_profile 101 And I go to /myprofile/sample-enterprise/profile_editor/destroy_profile
99 Then I should see "Access denied" 102 Then I should see "Access denied"
100 103
  104 + @selenium
101 Scenario: environment admin deletes profile 105 Scenario: environment admin deletes profile
102 Given I am logged in as admin 106 Given I am logged in as admin
103 And I am on joaosilva's control panel 107 And I am on joaosilva's control panel
features/edit_article.feature
@@ -20,6 +20,7 @@ Feature: edit article @@ -20,6 +20,7 @@ Feature: edit article
20 And I fill in "Title" with "My Folder" 20 And I fill in "Title" with "My Folder"
21 And I press "Save" 21 And I press "Save"
22 And I go to joaosilva's control panel 22 And I go to joaosilva's control panel
  23 + And I follow "Manage Content"
23 Then I should see "My Folder" 24 Then I should see "My Folder"
24 25
25 @selenium 26 @selenium
features/members_block.feature
@@ -29,6 +29,7 @@ Feature: @@ -29,6 +29,7 @@ Feature:
29 And I follow "Manage my groups" 29 And I follow "Manage my groups"
30 Then I should see "Sample Community" 30 Then I should see "Sample Community"
31 31
  32 + @selenium
32 Scenario: a user can leave a community by members block's button 33 Scenario: a user can leave a community by members block's button
33 Given "Maria Silva" is a member of "Sample Community" 34 Given "Maria Silva" is a member of "Sample Community"
34 And I am logged in as "mariasilva" 35 And I am logged in as "mariasilva"
features/register_enterprise.feature
@@ -77,6 +77,7 @@ Feature: register enterprise @@ -77,6 +77,7 @@ Feature: register enterprise
77 Then I should see "Contact person can't be blank" 77 Then I should see "Contact person can't be blank"
78 Then I should see "Contact email can't be blank" 78 Then I should see "Contact email can't be blank"
79 79
  80 + @selenium
80 Scenario: a user register an enterprise successfully through the admin 81 Scenario: a user register an enterprise successfully through the admin
81 validator method and the admin accepts 82 validator method and the admin accepts
82 Given organization_approval_method is "admin" on environment 83 Given organization_approval_method is "admin" on environment
@@ -133,8 +134,9 @@ Feature: register enterprise @@ -133,8 +134,9 @@ Feature: register enterprise
133 When I follow "Manage my groups" 134 When I follow "Manage my groups"
134 Then I should not see "My Enterprise" 135 Then I should not see "My Enterprise"
135 136
136 - Scenario: a user register an enterprise successfully through the region  
137 - validator method and the validator accepts 137 + @selenium
  138 + Scenario: a user register an enterprise successfully through the region
  139 + validator method and the validator accepts
138 Given organization_approval_method is "region" on environment 140 Given organization_approval_method is "region" on environment
139 And I follow "Manage my groups" 141 And I follow "Manage my groups"
140 And the following enterprise 142 And the following enterprise
features/step_definitions/noosfero_steps.rb
@@ -435,20 +435,13 @@ Given /^the mailbox is empty$/ do @@ -435,20 +435,13 @@ Given /^the mailbox is empty$/ do
435 end 435 end
436 436
437 Given /^the (.+) mail (?:is|has) (.+) (.+)$/ do |position, field, value| 437 Given /^the (.+) mail (?:is|has) (.+) (.+)$/ do |position, field, value|
438 - if(/^[0-9]+$/ =~ position)  
439 - ActionMailer::Base.deliveries[position.to_i][field].to_s == value  
440 - else  
441 - ActionMailer::Base.deliveries.send(position)[field].to_s == value  
442 - end 438 + mail = if /^[0-9]+$/ =~ position then ActionMailer::Base.deliveries[position.to_i] else ActionMailer::Base.deliveries.send position end
  439 + mail and mail[field].to_s == value
443 end 440 end
444 441
445 Given /^the (.+) mail (.+) is like (.+)$/ do |position, field, regexp| 442 Given /^the (.+) mail (.+) is like (.+)$/ do |position, field, regexp|
446 - re = Regexp.new(regexp)  
447 - if(/^[0-9]+$/ =~ position)  
448 - re =~ ActionMailer::Base.deliveries[position.to_i][field.to_sym]  
449 - else  
450 - re =~ ActionMailer::Base.deliveries.send(position)[field.to_sym]  
451 - end 443 + mail = if /^[0-9]+$/ =~ position then ActionMailer::Base.deliveries[position.to_i] else ActionMailer::Base.deliveries.send position end
  444 + mail and Regexp.new(regexp) =~ mail[field.to_sym]
452 end 445 end
453 446
454 Given /^the following environment configuration$/ do |table| 447 Given /^the following environment configuration$/ do |table|
features/support/database_cleaner.rb 0 → 100644
@@ -0,0 +1,16 @@ @@ -0,0 +1,16 @@
  1 +require 'database_cleaner'
  2 +require 'database_cleaner/cucumber'
  3 +
  4 +Cucumber::Rails::World.use_transactional_fixtures = false
  5 +# FIXME: 'DELETE FROM ...' is being ran 3x - see cucumber.log
  6 +DatabaseCleaner.clean_with :truncation
  7 +DatabaseCleaner.strategy = :truncation, {:pre_count => true, :reset_ids => false}
  8 +
  9 +Before do
  10 + DatabaseCleaner.start
  11 +end
  12 +
  13 +After do
  14 + DatabaseCleaner.clean
  15 +end
  16 +
features/support/paths.rb
@@ -40,7 +40,7 @@ module NavigationHelpers @@ -40,7 +40,7 @@ module NavigationHelpers
40 "/myprofile/#{$2}/profile_design/edit/#{block.id}" 40 "/myprofile/#{$2}/profile_design/edit/#{block.id}"
41 41
42 when /^(.*)'s homepage$/ 42 when /^(.*)'s homepage$/
43 - '/' + profile_identifier($1) + '/' 43 + '/' + profile_identifier($1)
44 44
45 when /^(.*)'s blog$/ 45 when /^(.*)'s blog$/
46 '/%s/blog' % profile_identifier($1) 46 '/%s/blog' % profile_identifier($1)
features/support/selenium.rb
1 -require 'database_cleaner'  
2 -require 'database_cleaner/cucumber'  
3 -  
4 -Cucumber::Rails::World.use_transactional_fixtures = false  
5 1
6 Capybara.default_driver = :selenium 2 Capybara.default_driver = :selenium
7 Capybara.register_driver :selenium do |app| 3 Capybara.register_driver :selenium do |app|
8 Capybara::Selenium::Driver.new(app, :browser => :firefox) 4 Capybara::Selenium::Driver.new(app, :browser => :firefox)
9 end 5 end
10 6
11 -# FIXME: 'DELETE FROM ...' is being ran 3x - see cucumber.log  
12 -DatabaseCleaner.clean_with :truncation  
13 -DatabaseCleaner.strategy = :truncation, {:pre_count => true, :reset_ids => false}  
14 -  
15 -Before do  
16 - DatabaseCleaner.start  
17 -end  
18 -  
19 Before('@ignore-hidden-elements') do 7 Before('@ignore-hidden-elements') do
20 Capybara.ignore_hidden_elements = true 8 Capybara.ignore_hidden_elements = true
21 end 9 end
@@ -23,8 +11,4 @@ end @@ -23,8 +11,4 @@ end
23 Capybara.default_wait_time = 30 11 Capybara.default_wait_time = 30
24 Capybara.server_host = "localhost" 12 Capybara.server_host = "localhost"
25 13
26 -After do  
27 - DatabaseCleaner.clean  
28 -end  
29 -  
30 World(Capybara) 14 World(Capybara)
test/support/noosfero_doc_test.rb
1 # encoding: UTF-8 1 # encoding: UTF-8
2 require 'mocha' 2 require 'mocha'
  3 +require 'mocha/mini_test'
3 4
4 module Noosfero::DocTest 5 module Noosfero::DocTest
5 6