Merge branch 'tubbo-feature/sporkify'
This commit is contained in:
commit
a54fb79bfa
6 changed files with 204 additions and 148 deletions
1
.rspec
1
.rspec
|
|
@ -3,3 +3,4 @@
|
||||||
--color
|
--color
|
||||||
--tag ~performance
|
--tag ~performance
|
||||||
--order random
|
--order random
|
||||||
|
--drb
|
||||||
5
Gemfile
5
Gemfile
|
|
@ -149,6 +149,11 @@ group :test do
|
||||||
gem 'webmock', :require => false
|
gem 'webmock', :require => false
|
||||||
gem 'sqlite3'
|
gem 'sqlite3'
|
||||||
gem 'mock_redis'
|
gem 'mock_redis'
|
||||||
|
|
||||||
|
gem 'spork', '~> 1.0rc'
|
||||||
|
gem 'guard-rspec'
|
||||||
|
gem 'guard-spork'
|
||||||
|
gem 'guard-cucumber'
|
||||||
end
|
end
|
||||||
|
|
||||||
group :development do
|
group :development do
|
||||||
|
|
|
||||||
16
Gemfile.lock
16
Gemfile.lock
|
|
@ -193,6 +193,17 @@ GEM
|
||||||
gem_plugin (0.2.3)
|
gem_plugin (0.2.3)
|
||||||
gherkin (2.9.3)
|
gherkin (2.9.3)
|
||||||
json (>= 1.4.6)
|
json (>= 1.4.6)
|
||||||
|
guard (1.0.1)
|
||||||
|
ffi (>= 0.5.0)
|
||||||
|
thor (~> 0.14.6)
|
||||||
|
guard-cucumber (0.7.5)
|
||||||
|
cucumber (>= 0.10)
|
||||||
|
guard (>= 0.8.3)
|
||||||
|
guard-rspec (0.7.0)
|
||||||
|
guard (>= 0.10.0)
|
||||||
|
guard-spork (0.5.2)
|
||||||
|
guard (>= 0.10.0)
|
||||||
|
spork (>= 0.8.4)
|
||||||
haml (3.1.4)
|
haml (3.1.4)
|
||||||
handlebars_assets (0.4.1)
|
handlebars_assets (0.4.1)
|
||||||
execjs (>= 1.2.9)
|
execjs (>= 1.2.9)
|
||||||
|
|
@ -405,6 +416,7 @@ GEM
|
||||||
rack (~> 1.3, >= 1.3.6)
|
rack (~> 1.3, >= 1.3.6)
|
||||||
rack-protection (~> 1.2)
|
rack-protection (~> 1.2)
|
||||||
tilt (~> 1.3, >= 1.3.3)
|
tilt (~> 1.3, >= 1.3.3)
|
||||||
|
spork (1.0.0rc2)
|
||||||
sprockets (2.0.3)
|
sprockets (2.0.3)
|
||||||
hike (~> 1.2)
|
hike (~> 1.2)
|
||||||
rack (~> 1.0)
|
rack (~> 1.0)
|
||||||
|
|
@ -485,6 +497,9 @@ DEPENDENCIES
|
||||||
foreigner (~> 1.1.0)
|
foreigner (~> 1.1.0)
|
||||||
foreman (= 0.34.1)
|
foreman (= 0.34.1)
|
||||||
fuubar (= 0.0.6)
|
fuubar (= 0.0.6)
|
||||||
|
guard-cucumber
|
||||||
|
guard-rspec
|
||||||
|
guard-spork
|
||||||
haml
|
haml
|
||||||
handlebars_assets
|
handlebars_assets
|
||||||
heroku
|
heroku
|
||||||
|
|
@ -538,6 +553,7 @@ DEPENDENCIES
|
||||||
sass-rails (= 3.1.4)
|
sass-rails (= 3.1.4)
|
||||||
selenium-webdriver (~> 2.16.0)
|
selenium-webdriver (~> 2.16.0)
|
||||||
settingslogic!
|
settingslogic!
|
||||||
|
spork (~> 1.0rc)
|
||||||
sqlite3
|
sqlite3
|
||||||
thin (~> 1.3.1)
|
thin (~> 1.3.1)
|
||||||
timecop
|
timecop
|
||||||
|
|
|
||||||
18
Guardfile
18
Guardfile
|
|
@ -18,3 +18,21 @@ guard 'rspec', :version => 2, :all_on_start => false do
|
||||||
# Capybara request specs
|
# Capybara request specs
|
||||||
watch(%r{^app/views/(.+)/.*\.(erb|haml)$}) { |m| "spec/requests/#{m[1]}_spec.rb" }
|
watch(%r{^app/views/(.+)/.*\.(erb|haml)$}) { |m| "spec/requests/#{m[1]}_spec.rb" }
|
||||||
end
|
end
|
||||||
|
|
||||||
|
guard 'spork', :cucumber_env => { 'RAILS_ENV' => 'test' }, :rspec_env => { 'RAILS_ENV' => 'test' }, :all_on_start => false do
|
||||||
|
watch('config/application.rb')
|
||||||
|
watch('config/environment.rb')
|
||||||
|
watch(%r{^config/environments/.+\.rb$})
|
||||||
|
watch(%r{^config/initializers/.+\.rb$})
|
||||||
|
watch('Gemfile')
|
||||||
|
watch('Gemfile.lock')
|
||||||
|
watch('spec/spec_helper.rb') { :rspec }
|
||||||
|
watch('test/test_helper.rb') { :test_unit }
|
||||||
|
watch(%r{features/support/}) { :cucumber }
|
||||||
|
end
|
||||||
|
|
||||||
|
guard 'cucumber' do
|
||||||
|
watch(%r{^features/.+\.feature$})
|
||||||
|
watch(%r{^features/support/.+$}) { 'features' }
|
||||||
|
watch(%r{^features/step_definitions/(.+)_steps\.rb$}) { |m| Dir[File.join("**/#{m[1]}.feature")][0] || 'features' }
|
||||||
|
end
|
||||||
|
|
|
||||||
|
|
@ -1,93 +1,96 @@
|
||||||
# IMPORTANT: This file is generated by cucumber-rails - edit at your own peril.
|
require 'rubygems'
|
||||||
# It is recommended to regenerate this file in the future when you upgrade to a
|
require 'spork'
|
||||||
# newer version of cucumber-rails. Consider adding your own code to a new file
|
#uncomment the following line to use spork with the debugger
|
||||||
# instead of editing this one. Cucumber will automatically load all features/**/*.rb
|
#require 'spork/ext/ruby-debug'
|
||||||
# files.
|
|
||||||
|
|
||||||
ENV["RAILS_ENV"] ||= "test"
|
Spork.prefork do
|
||||||
require 'cucumber/rails'
|
ENV["RAILS_ENV"] ||= "test"
|
||||||
|
require 'cucumber/rails'
|
||||||
|
|
||||||
require 'capybara/rails'
|
require 'capybara/rails'
|
||||||
require 'capybara/cucumber'
|
require 'capybara/cucumber'
|
||||||
require 'capybara/session'
|
require 'capybara/session'
|
||||||
#require 'cucumber/rails/capybara_javascript_emulation' # Lets you click links with onclick javascript handlers without using @culerity or @javascript
|
#require 'cucumber/rails/capybara_javascript_emulation' # Lets you click links with onclick javascript handlers without using @culerity or @javascript
|
||||||
require 'cucumber/api_steps'
|
require 'cucumber/api_steps'
|
||||||
|
|
||||||
# Ensure we know the appservers port
|
# Ensure we know the appservers port
|
||||||
Capybara.server_port = 9887
|
Capybara.server_port = 9887
|
||||||
|
|
||||||
# Capybara defaults to XPath selectors rather than Webrat's default of CSS3. In
|
|
||||||
# order to ease the transition to Capybara we set the default here. If you'd
|
|
||||||
# prefer to use XPath just remove this line and adjust any selectors in your
|
|
||||||
# steps to use the XPath syntax.
|
|
||||||
Capybara.default_selector = :css
|
|
||||||
|
|
||||||
# We have a ridiculously high wait time to account for build machines of various beefiness.
|
# Capybara defaults to XPath selectors rather than Webrat's default of CSS3. In
|
||||||
# Capybara.default_wait_time = 30
|
# order to ease the transition to Capybara we set the default here. If you'd
|
||||||
|
# prefer to use XPath just remove this line and adjust any selectors in your
|
||||||
|
# steps to use the XPath syntax.
|
||||||
|
Capybara.default_selector = :css
|
||||||
|
|
||||||
# While there are a lot of failures, wait less, avoiding travis timeout
|
# We have a ridiculously high wait time to account for build machines of various beefiness.
|
||||||
Capybara.default_wait_time = 3
|
# Capybara.default_wait_time = 30
|
||||||
|
|
||||||
# If you set this to false, any error raised from within your app will bubble
|
# While there are a lot of failures, wait less, avoiding travis timeout
|
||||||
# up to your step definition and out to cucumber unless you catch it somewhere
|
Capybara.default_wait_time = 3
|
||||||
# on the way. You can make Rails rescue errors and render error pages on a
|
|
||||||
# per-scenario basis by tagging a scenario or feature with the @allow-rescue tag.
|
|
||||||
#
|
|
||||||
# If you set this to true, Rails will rescue all errors and render error
|
|
||||||
# pages, more or less in the same way your application would behave in the
|
|
||||||
# default production environment. It's not recommended to do this for all
|
|
||||||
# of your scenarios, as this makes it hard to discover errors in your application.
|
|
||||||
ActionController::Base.allow_rescue = false
|
|
||||||
|
|
||||||
require 'database_cleaner'
|
# If you set this to false, any error raised from within your app will bubble
|
||||||
require 'database_cleaner/cucumber'
|
# up to your step definition and out to cucumber unless you catch it somewhere
|
||||||
DatabaseCleaner.strategy = :truncation
|
# on the way. You can make Rails rescue errors and render error pages on a
|
||||||
DatabaseCleaner.orm = "active_record"
|
# per-scenario basis by tagging a scenario or feature with the @allow-rescue tag.
|
||||||
Cucumber::Rails::World.use_transactional_fixtures = false
|
#
|
||||||
|
# If you set this to true, Rails will rescue all errors and render error
|
||||||
|
# pages, more or less in the same way your application would behave in the
|
||||||
|
# default production environment. It's not recommended to do this for all
|
||||||
|
# of your scenarios, as this makes it hard to discover errors in your application.
|
||||||
|
ActionController::Base.allow_rescue = false
|
||||||
|
|
||||||
require File.join(File.dirname(__FILE__), "database_cleaner_patches")
|
require 'database_cleaner'
|
||||||
require File.join(File.dirname(__FILE__), "integration_sessions_controller")
|
require 'database_cleaner/cucumber'
|
||||||
require File.join(File.dirname(__FILE__), "poor_mans_webmock")
|
DatabaseCleaner.strategy = :truncation
|
||||||
|
DatabaseCleaner.orm = "active_record"
|
||||||
|
Cucumber::Rails::World.use_transactional_fixtures = false
|
||||||
|
|
||||||
require File.join(File.dirname(__FILE__), "..", "..", "spec", "helper_methods")
|
require File.join(File.dirname(__FILE__), "database_cleaner_patches")
|
||||||
require File.join(File.dirname(__FILE__), "..", "..", "spec", "support","user_methods")
|
require File.join(File.dirname(__FILE__), "integration_sessions_controller")
|
||||||
include HelperMethods
|
require File.join(File.dirname(__FILE__), "poor_mans_webmock")
|
||||||
|
|
||||||
require 'webmock/cucumber'
|
require File.join(File.dirname(__FILE__), "..", "..", "spec", "helper_methods")
|
||||||
WebMock.disable_net_connect!(:allow_localhost => true)
|
require File.join(File.dirname(__FILE__), "..", "..", "spec", "support","user_methods")
|
||||||
|
include HelperMethods
|
||||||
|
|
||||||
Before do
|
require 'webmock/cucumber'
|
||||||
@no_follow_diaspora_hq_setting = AppConfig[:no_follow_diasporahq]
|
WebMock.disable_net_connect!(:allow_localhost => true)
|
||||||
AppConfig[:no_follow_diasporahq] = true
|
|
||||||
DatabaseCleaner.clean
|
|
||||||
Devise.mailer.deliveries = []
|
|
||||||
end
|
|
||||||
|
|
||||||
After do
|
silence_warnings do
|
||||||
AppConfig[:no_follow_diasporahq] = @no_follow_diaspora_hq_setting
|
SERVICES['facebook'] = {'app_id' => :fake, 'app_secret' => 'sdoigjosdfijg'}
|
||||||
if Capybara.current_session.driver.respond_to?(:browser)
|
AppConfig[:configured_services] << 'facebook'
|
||||||
Capybara.reset_sessions!
|
|
||||||
# Capybara.current_session.driver.browser.manage.delete_all_cookies
|
|
||||||
end
|
end
|
||||||
|
|
||||||
|
require File.join(File.dirname(__FILE__), "..", "..", "spec", "support", "fake_resque")
|
||||||
|
|
||||||
|
require File.join(File.dirname(__FILE__), 'run_resque_in_process')
|
||||||
end
|
end
|
||||||
|
|
||||||
silence_warnings do
|
Spork.each_run do
|
||||||
SERVICES['facebook'] = {'app_id' => :fake, 'app_secret' => 'sdoigjosdfijg'}
|
Before do
|
||||||
AppConfig[:configured_services] << 'facebook'
|
@no_follow_diaspora_hq_setting = AppConfig[:no_follow_diasporahq]
|
||||||
end
|
AppConfig[:no_follow_diasporahq] = true
|
||||||
|
DatabaseCleaner.clean
|
||||||
|
Devise.mailer.deliveries = []
|
||||||
|
end
|
||||||
|
|
||||||
require File.join(File.dirname(__FILE__), "..", "..", "spec", "support", "fake_resque")
|
After do
|
||||||
require File.join(File.dirname(__FILE__), 'run_resque_in_process')
|
AppConfig[:no_follow_diasporahq] = @no_follow_diaspora_hq_setting
|
||||||
|
if Capybara.current_session.driver.respond_to?(:browser)
|
||||||
|
Capybara.reset_sessions!
|
||||||
|
# Capybara.current_session.driver.browser.manage.delete_all_cookies
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
Before('@localserver') do
|
||||||
|
TestServerFixture.start_if_needed
|
||||||
|
CapybaraSettings.instance.save
|
||||||
|
Capybara.current_driver = :selenium
|
||||||
|
Capybara.run_server = false
|
||||||
|
end
|
||||||
|
|
||||||
Before('@localserver') do
|
After('@localserver') do
|
||||||
TestServerFixture.start_if_needed
|
CapybaraSettings.instance.restore
|
||||||
CapybaraSettings.instance.save
|
end
|
||||||
Capybara.current_driver = :selenium
|
end
|
||||||
Capybara.run_server = false
|
|
||||||
end
|
|
||||||
|
|
||||||
After('@localserver') do
|
|
||||||
CapybaraSettings.instance.restore
|
|
||||||
end
|
|
||||||
|
|
||||||
|
|
@ -2,89 +2,102 @@
|
||||||
# licensed under the Affero General Public License version 3 or later. See
|
# licensed under the Affero General Public License version 3 or later. See
|
||||||
# the COPYRIGHT file.
|
# the COPYRIGHT file.
|
||||||
|
|
||||||
ENV["RAILS_ENV"] ||= 'test'
|
require 'rubygems'
|
||||||
require File.join(File.dirname(__FILE__), '..', 'config', 'environment') unless defined?(Rails)
|
require 'spork'
|
||||||
require 'helper_methods'
|
#uncomment the following line to use spork with the debugger
|
||||||
require 'spec-doc'
|
#require 'spork/ext/ruby-debug'
|
||||||
require 'rspec/rails'
|
|
||||||
require 'webmock/rspec'
|
|
||||||
require 'factory_girl'
|
|
||||||
|
|
||||||
include HelperMethods
|
Spork.prefork do
|
||||||
|
# Loading more in this block will cause your tests to run faster. However,
|
||||||
|
# if you change any configuration or code from libraries loaded here, you'll
|
||||||
|
# need to restart spork for it take effect.
|
||||||
|
|
||||||
# Force fixture rebuild
|
ENV["RAILS_ENV"] ||= 'test'
|
||||||
FileUtils.rm_f(File.join(Rails.root, 'tmp', 'fixture_builder.yml'))
|
require File.join(File.dirname(__FILE__), '..', 'config', 'environment') unless defined?(Rails)
|
||||||
|
require 'helper_methods'
|
||||||
|
require 'spec-doc'
|
||||||
|
require 'rspec/rails'
|
||||||
|
require 'webmock/rspec'
|
||||||
|
require 'factory_girl'
|
||||||
|
|
||||||
# Requires supporting files with custom matchers and macros, etc,
|
include HelperMethods
|
||||||
# in ./support/ and its subdirectories.
|
|
||||||
fixture_builder_file = "#{File.dirname(__FILE__)}/support/fixture_builder.rb"
|
|
||||||
support_files = Dir["#{File.dirname(__FILE__)}/support/**/*.rb"] - [fixture_builder_file]
|
|
||||||
support_files.each {|f| require f }
|
|
||||||
require fixture_builder_file
|
|
||||||
|
|
||||||
RSpec.configure do |config|
|
Dir["#{File.dirname(__FILE__)}/shared_behaviors/**/*.rb"].each do |f|
|
||||||
config.include Devise::TestHelpers, :type => :controller
|
require f
|
||||||
config.mock_with :rspec
|
|
||||||
|
|
||||||
config.use_transactional_fixtures = true
|
|
||||||
|
|
||||||
config.before(:each) do
|
|
||||||
I18n.locale = :en
|
|
||||||
stub_request(:post, "https://pubsubhubbub.appspot.com/")
|
|
||||||
disable_typhoeus
|
|
||||||
$process_queue = false
|
|
||||||
Postzord::Dispatcher::Public.any_instance.stub(:deliver_to_remote)
|
|
||||||
Postzord::Dispatcher::Private.any_instance.stub(:deliver_to_remote)
|
|
||||||
end
|
end
|
||||||
|
|
||||||
config.before(:each, :type => :controller) do
|
ProcessedImage.enable_processing = false
|
||||||
self.class.render_views
|
UnprocessedImage.enable_processing = false
|
||||||
|
|
||||||
|
def set_up_friends
|
||||||
|
[local_luke, local_leia, remote_raphael]
|
||||||
end
|
end
|
||||||
|
|
||||||
config.after(:all) do
|
def alice
|
||||||
`rm -rf #{Rails.root}/tmp/uploads/*`
|
@alice ||= User.where(:username => 'alice').first
|
||||||
|
end
|
||||||
|
|
||||||
|
def bob
|
||||||
|
@bob ||= User.where(:username => 'bob').first
|
||||||
|
end
|
||||||
|
|
||||||
|
def eve
|
||||||
|
@eve ||= User.where(:username => 'eve').first
|
||||||
|
end
|
||||||
|
|
||||||
|
def local_luke
|
||||||
|
@local_luke ||= User.where(:username => 'luke').first
|
||||||
|
end
|
||||||
|
|
||||||
|
def local_leia
|
||||||
|
@local_leia ||= User.where(:username => 'leia').first
|
||||||
|
end
|
||||||
|
|
||||||
|
def remote_raphael
|
||||||
|
@remote_raphael ||= Person.where(:diaspora_handle => 'raphael@remote.net').first
|
||||||
|
end
|
||||||
|
|
||||||
|
def photo_fixture_name
|
||||||
|
@photo_fixture_name = File.join(File.dirname(__FILE__), 'fixtures', 'button.png')
|
||||||
|
end
|
||||||
|
|
||||||
|
# Force fixture rebuild
|
||||||
|
FileUtils.rm_f(File.join(Rails.root, 'tmp', 'fixture_builder.yml'))
|
||||||
|
|
||||||
|
# Requires supporting files with custom matchers and macros, etc,
|
||||||
|
# in ./support/ and its subdirectories.
|
||||||
|
fixture_builder_file = "#{File.dirname(__FILE__)}/support/fixture_builder.rb"
|
||||||
|
support_files = Dir["#{File.dirname(__FILE__)}/support/**/*.rb"] - [fixture_builder_file]
|
||||||
|
support_files.each {|f| require f }
|
||||||
|
require fixture_builder_file
|
||||||
|
|
||||||
|
RSpec.configure do |config|
|
||||||
|
config.include Devise::TestHelpers, :type => :controller
|
||||||
|
config.mock_with :rspec
|
||||||
|
|
||||||
|
config.use_transactional_fixtures = true
|
||||||
|
|
||||||
|
config.before(:each) do
|
||||||
|
I18n.locale = :en
|
||||||
|
stub_request(:post, "https://pubsubhubbub.appspot.com/")
|
||||||
|
disable_typhoeus
|
||||||
|
$process_queue = false
|
||||||
|
Postzord::Dispatcher::Public.any_instance.stub(:deliver_to_remote)
|
||||||
|
Postzord::Dispatcher::Private.any_instance.stub(:deliver_to_remote)
|
||||||
|
end
|
||||||
|
|
||||||
|
config.before(:each, :type => :controller) do
|
||||||
|
self.class.render_views
|
||||||
|
end
|
||||||
|
|
||||||
|
config.after(:all) do
|
||||||
|
`rm -rf #{Rails.root}/tmp/uploads/*`
|
||||||
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
Dir["#{File.dirname(__FILE__)}/shared_behaviors/**/*.rb"].each do |f|
|
Spork.each_run do
|
||||||
require f
|
# This code will be run each time you run your specs.
|
||||||
end
|
AppConfig.load!
|
||||||
|
AppConfig.setup!
|
||||||
|
|
||||||
ProcessedImage.enable_processing = false
|
|
||||||
UnprocessedImage.enable_processing = false
|
|
||||||
|
|
||||||
AppConfig.load!
|
|
||||||
AppConfig.setup!
|
|
||||||
|
|
||||||
def set_up_friends
|
|
||||||
[local_luke, local_leia, remote_raphael]
|
|
||||||
end
|
|
||||||
|
|
||||||
def alice
|
|
||||||
@alice ||= User.where(:username => 'alice').first
|
|
||||||
end
|
|
||||||
|
|
||||||
def bob
|
|
||||||
@bob ||= User.where(:username => 'bob').first
|
|
||||||
end
|
|
||||||
|
|
||||||
def eve
|
|
||||||
@eve ||= User.where(:username => 'eve').first
|
|
||||||
end
|
|
||||||
|
|
||||||
def local_luke
|
|
||||||
@local_luke ||= User.where(:username => 'luke').first
|
|
||||||
end
|
|
||||||
|
|
||||||
def local_leia
|
|
||||||
@local_leia ||= User.where(:username => 'leia').first
|
|
||||||
end
|
|
||||||
|
|
||||||
def remote_raphael
|
|
||||||
@remote_raphael ||= Person.where(:diaspora_handle => 'raphael@remote.net').first
|
|
||||||
end
|
|
||||||
|
|
||||||
def photo_fixture_name
|
|
||||||
@photo_fixture_name = File.join(File.dirname(__FILE__), 'fixtures', 'button.png')
|
|
||||||
end
|
end
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue