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
Gemfile
... ... @@ -20,7 +20,7 @@ gem 'exception_notification', '~> 4.0.1'
20 20 gem 'gettext', '~> 2.2.1', :require => false
21 21 gem 'locale', '~> 2.0.5'
22 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 25 # asset pipeline
26 26 gem 'uglifier', '>= 1.0.3'
... ...
config/environments/cucumber.rb
... ... @@ -7,6 +7,8 @@ Noosfero::Application.configure do
7 7 # For more information see https://rspec.lighthouseapp.com/projects/16211/tickets/165
8 8 config.cache_classes = true
9 9  
  10 + config.assets.debug = false
  11 +
10 12 config.eager_load = false
11 13  
12 14 config.active_support.deprecation = :log
... ... @@ -22,7 +24,4 @@ Noosfero::Application.configure do
22 24 # ActionMailer::Base.deliveries array.
23 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 27 end
... ...
features/delete_profile.feature
... ... @@ -13,6 +13,7 @@ Feature: delete profile
13 13 | sample-community | Sample Community |
14 14 And "Maria Silva" is a member of "Sample Community"
15 15  
  16 + @selenium
16 17 Scenario: deleting profile
17 18 Given I am logged in as "joaosilva"
18 19 And I am on joaosilva's control panel
... ... @@ -45,6 +46,7 @@ Feature: delete profile
45 46 When I follow "Community Info and settings"
46 47 Then I should see "Delete profile"
47 48  
  49 + @selenium
48 50 Scenario: community admin deletes the community
49 51 Given "Joao Silva" is admin of "Sample Community"
50 52 And I am logged in as "joaosilva"
... ... @@ -73,6 +75,7 @@ Feature: delete profile
73 75 When I follow "Enterprise Info and settings"
74 76 Then I should see "Delete profile"
75 77  
  78 + @selenium
76 79 Scenario: enterprise admin deletes the enterprise
77 80 Given the following enterprise
78 81 | identifier | name |
... ... @@ -98,6 +101,7 @@ Feature: delete profile
98 101 And I go to /myprofile/sample-enterprise/profile_editor/destroy_profile
99 102 Then I should see "Access denied"
100 103  
  104 + @selenium
101 105 Scenario: environment admin deletes profile
102 106 Given I am logged in as admin
103 107 And I am on joaosilva's control panel
... ...
features/edit_article.feature
... ... @@ -20,6 +20,7 @@ Feature: edit article
20 20 And I fill in "Title" with "My Folder"
21 21 And I press "Save"
22 22 And I go to joaosilva's control panel
  23 + And I follow "Manage Content"
23 24 Then I should see "My Folder"
24 25  
25 26 @selenium
... ...
features/members_block.feature
... ... @@ -29,6 +29,7 @@ Feature:
29 29 And I follow "Manage my groups"
30 30 Then I should see "Sample Community"
31 31  
  32 + @selenium
32 33 Scenario: a user can leave a community by members block's button
33 34 Given "Maria Silva" is a member of "Sample Community"
34 35 And I am logged in as "mariasilva"
... ...
features/register_enterprise.feature
... ... @@ -77,6 +77,7 @@ Feature: register enterprise
77 77 Then I should see "Contact person can't be blank"
78 78 Then I should see "Contact email can't be blank"
79 79  
  80 + @selenium
80 81 Scenario: a user register an enterprise successfully through the admin
81 82 validator method and the admin accepts
82 83 Given organization_approval_method is "admin" on environment
... ... @@ -133,8 +134,9 @@ Feature: register enterprise
133 134 When I follow "Manage my groups"
134 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 140 Given organization_approval_method is "region" on environment
139 141 And I follow "Manage my groups"
140 142 And the following enterprise
... ...
features/step_definitions/noosfero_steps.rb
... ... @@ -435,20 +435,13 @@ Given /^the mailbox is empty$/ do
435 435 end
436 436  
437 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 440 end
444 441  
445 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 445 end
453 446  
454 447 Given /^the following environment configuration$/ do |table|
... ...
features/support/database_cleaner.rb 0 → 100644
... ... @@ -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 40 "/myprofile/#{$2}/profile_design/edit/#{block.id}"
41 41  
42 42 when /^(.*)'s homepage$/
43   - '/' + profile_identifier($1) + '/'
  43 + '/' + profile_identifier($1)
44 44  
45 45 when /^(.*)'s blog$/
46 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 2 Capybara.default_driver = :selenium
7 3 Capybara.register_driver :selenium do |app|
8 4 Capybara::Selenium::Driver.new(app, :browser => :firefox)
9 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 7 Before('@ignore-hidden-elements') do
20 8 Capybara.ignore_hidden_elements = true
21 9 end
... ... @@ -23,8 +11,4 @@ end
23 11 Capybara.default_wait_time = 30
24 12 Capybara.server_host = "localhost"
25 13  
26   -After do
27   - DatabaseCleaner.clean
28   -end
29   -
30 14 World(Capybara)
... ...
test/support/noosfero_doc_test.rb
1 1 # encoding: UTF-8
2 2 require 'mocha'
  3 +require 'mocha/mini_test'
3 4  
4 5 module Noosfero::DocTest
5 6  
... ...