mirror of
https://github.com/TracksApp/tracks.git
synced 2025-12-17 15:50:13 +01:00
Added Rspec and Webrat plugins and started porting Selenium on Rails tests to Rspec Plain Text Stories driving Webrat driving Selenium.
This commit is contained in:
parent
0600756bbf
commit
0f7d6f7a1d
602 changed files with 47788 additions and 29 deletions
1
vendor/plugins/rspec-rails/generators/rspec/CHANGES
vendored
Normal file
1
vendor/plugins/rspec-rails/generators/rspec/CHANGES
vendored
Normal file
|
|
@ -0,0 +1 @@
|
|||
Please refer to the CHANGES file for RSpec's core
|
||||
35
vendor/plugins/rspec-rails/generators/rspec/rspec_generator.rb
vendored
Normal file
35
vendor/plugins/rspec-rails/generators/rspec/rspec_generator.rb
vendored
Normal file
|
|
@ -0,0 +1,35 @@
|
|||
require 'rbconfig'
|
||||
|
||||
# This generator bootstraps a Rails project for use with RSpec
|
||||
class RspecGenerator < Rails::Generator::Base
|
||||
DEFAULT_SHEBANG = File.join(Config::CONFIG['bindir'],
|
||||
Config::CONFIG['ruby_install_name'])
|
||||
|
||||
def initialize(runtime_args, runtime_options = {})
|
||||
super
|
||||
end
|
||||
|
||||
def manifest
|
||||
record do |m|
|
||||
script_options = { :chmod => 0755, :shebang => options[:shebang] == DEFAULT_SHEBANG ? nil : options[:shebang] }
|
||||
|
||||
m.directory 'spec'
|
||||
m.template 'spec_helper.rb', 'spec/spec_helper.rb'
|
||||
m.file 'spec.opts', 'spec/spec.opts'
|
||||
m.file 'rcov.opts', 'spec/rcov.opts'
|
||||
m.file 'script/spec_server', 'script/spec_server', script_options
|
||||
m.file 'script/spec', 'script/spec', script_options
|
||||
|
||||
m.directory 'stories'
|
||||
m.file 'all_stories.rb', 'stories/all.rb'
|
||||
m.file 'stories_helper.rb', 'stories/helper.rb'
|
||||
end
|
||||
end
|
||||
|
||||
protected
|
||||
|
||||
def banner
|
||||
"Usage: #{$0} rspec"
|
||||
end
|
||||
|
||||
end
|
||||
4
vendor/plugins/rspec-rails/generators/rspec/templates/all_stories.rb
vendored
Normal file
4
vendor/plugins/rspec-rails/generators/rspec/templates/all_stories.rb
vendored
Normal file
|
|
@ -0,0 +1,4 @@
|
|||
dir = File.dirname(__FILE__)
|
||||
Dir[File.expand_path("#{dir}/**/*.rb")].uniq.each do |file|
|
||||
require file
|
||||
end
|
||||
0
vendor/plugins/rspec-rails/generators/rspec/templates/previous_failures.txt
vendored
Normal file
0
vendor/plugins/rspec-rails/generators/rspec/templates/previous_failures.txt
vendored
Normal file
2
vendor/plugins/rspec-rails/generators/rspec/templates/rcov.opts
vendored
Normal file
2
vendor/plugins/rspec-rails/generators/rspec/templates/rcov.opts
vendored
Normal file
|
|
@ -0,0 +1,2 @@
|
|||
--exclude "spec/*,gems/*"
|
||||
--rails
|
||||
4
vendor/plugins/rspec-rails/generators/rspec/templates/script/spec
vendored
Normal file
4
vendor/plugins/rspec-rails/generators/rspec/templates/script/spec
vendored
Normal file
|
|
@ -0,0 +1,4 @@
|
|||
#!/usr/bin/env ruby
|
||||
$LOAD_PATH.unshift(File.expand_path(File.dirname(__FILE__) + "/../vendor/plugins/rspec/lib"))
|
||||
require 'spec'
|
||||
exit ::Spec::Runner::CommandLine.run(::Spec::Runner::OptionParser.parse(ARGV, STDERR, STDOUT))
|
||||
116
vendor/plugins/rspec-rails/generators/rspec/templates/script/spec_server
vendored
Normal file
116
vendor/plugins/rspec-rails/generators/rspec/templates/script/spec_server
vendored
Normal file
|
|
@ -0,0 +1,116 @@
|
|||
#!/usr/bin/env ruby
|
||||
$LOAD_PATH.unshift File.dirname(__FILE__) + '/../vendor/plugins/rspec/lib' # For rspec installed as plugin
|
||||
require 'rubygems'
|
||||
require 'drb/drb'
|
||||
require 'rbconfig'
|
||||
require 'spec'
|
||||
require 'optparse'
|
||||
|
||||
# This is based on Florian Weber's TDDMate
|
||||
module Spec
|
||||
module Runner
|
||||
class RailsSpecServer
|
||||
def run(argv, stderr, stdout)
|
||||
$stdout = stdout
|
||||
$stderr = stderr
|
||||
|
||||
base = ActiveRecord::Base
|
||||
def base.clear_reloadable_connections!
|
||||
active_connections.each do |name, conn|
|
||||
if conn.requires_reloading?
|
||||
conn.disconnect!
|
||||
active_connections.delete(name)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
if ActionController.const_defined?(:Dispatcher)
|
||||
dispatcher = ::ActionController::Dispatcher.new($stdout)
|
||||
dispatcher.cleanup_application
|
||||
elsif ::Dispatcher.respond_to?(:reset_application!)
|
||||
::Dispatcher.reset_application!
|
||||
else
|
||||
raise "Application reloading failed"
|
||||
end
|
||||
if Object.const_defined?(:Fixtures) && Fixtures.respond_to?(:reset_cache)
|
||||
Fixtures.reset_cache
|
||||
end
|
||||
|
||||
::Dependencies.mechanism = :load
|
||||
require_dependency('application.rb') unless Object.const_defined?(:ApplicationController)
|
||||
load File.dirname(__FILE__) + '/../spec/spec_helper.rb'
|
||||
|
||||
if in_memory_database?
|
||||
load "#{RAILS_ROOT}/db/schema.rb" # use db agnostic schema by default
|
||||
ActiveRecord::Migrator.up('db/migrate') # use migrations
|
||||
end
|
||||
|
||||
::Spec::Runner::CommandLine.run(
|
||||
::Spec::Runner::OptionParser.parse(
|
||||
argv,
|
||||
$stderr,
|
||||
$stdout
|
||||
)
|
||||
)
|
||||
end
|
||||
|
||||
def in_memory_database?
|
||||
ENV["RAILS_ENV"] == "test" and
|
||||
::ActiveRecord::Base.connection.class.to_s == "ActiveRecord::ConnectionAdapters::SQLite3Adapter" and
|
||||
::Rails::Configuration.new.database_configuration['test']['database'] == ':memory:'
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
puts "Loading Rails environment"
|
||||
|
||||
ENV["RAILS_ENV"] = "test"
|
||||
require File.expand_path(File.dirname(__FILE__) + "/../config/environment")
|
||||
require 'dispatcher'
|
||||
|
||||
def restart_test_server
|
||||
puts "restarting"
|
||||
config = ::Config::CONFIG
|
||||
ruby = File::join(config['bindir'], config['ruby_install_name']) + config['EXEEXT']
|
||||
command_line = [ruby, $0, ARGV].flatten.join(' ')
|
||||
exec(command_line)
|
||||
end
|
||||
|
||||
def daemonize(pid_file = nil)
|
||||
return yield if $DEBUG
|
||||
pid = Process.fork{
|
||||
Process.setsid
|
||||
Dir.chdir(RAILS_ROOT)
|
||||
trap("SIGINT"){ exit! 0 }
|
||||
trap("SIGTERM"){ exit! 0 }
|
||||
trap("SIGHUP"){ restart_test_server }
|
||||
File.open("/dev/null"){|f|
|
||||
STDERR.reopen f
|
||||
STDIN.reopen f
|
||||
STDOUT.reopen f
|
||||
}
|
||||
yield
|
||||
}
|
||||
puts "spec_server launched. (PID: %d)" % pid
|
||||
File.open(pid_file,"w"){|f| f.puts pid } if pid_file
|
||||
exit! 0
|
||||
end
|
||||
|
||||
options = Hash.new
|
||||
opts = OptionParser.new
|
||||
opts.on("-d", "--daemon"){|v| options[:daemon] = true }
|
||||
opts.on("-p", "--pid PIDFILE"){|v| options[:pid] = v }
|
||||
opts.parse!(ARGV)
|
||||
|
||||
puts "Ready"
|
||||
exec_server = lambda {
|
||||
trap("USR2") { restart_test_server } if Signal.list.has_key?("USR2")
|
||||
DRb.start_service("druby://127.0.0.1:8989", Spec::Runner::RailsSpecServer.new)
|
||||
DRb.thread.join
|
||||
}
|
||||
|
||||
if options[:daemon]
|
||||
daemonize(options[:pid], &exec_server)
|
||||
else
|
||||
exec_server.call
|
||||
end
|
||||
4
vendor/plugins/rspec-rails/generators/rspec/templates/spec.opts
vendored
Normal file
4
vendor/plugins/rspec-rails/generators/rspec/templates/spec.opts
vendored
Normal file
|
|
@ -0,0 +1,4 @@
|
|||
--colour
|
||||
--format progress
|
||||
--loadby mtime
|
||||
--reverse
|
||||
47
vendor/plugins/rspec-rails/generators/rspec/templates/spec_helper.rb
vendored
Normal file
47
vendor/plugins/rspec-rails/generators/rspec/templates/spec_helper.rb
vendored
Normal file
|
|
@ -0,0 +1,47 @@
|
|||
# This file is copied to ~/spec when you run 'ruby script/generate rspec'
|
||||
# from the project root directory.
|
||||
ENV["RAILS_ENV"] = "test"
|
||||
require File.expand_path(File.dirname(__FILE__) + "/../config/environment")
|
||||
require 'spec'
|
||||
require 'spec/rails'
|
||||
|
||||
Spec::Runner.configure do |config|
|
||||
# If you're not using ActiveRecord you should remove these
|
||||
# lines, delete config/database.yml and disable :active_record
|
||||
# in your config/boot.rb
|
||||
config.use_transactional_fixtures = true
|
||||
config.use_instantiated_fixtures = false
|
||||
config.fixture_path = RAILS_ROOT + '/spec/fixtures/'
|
||||
|
||||
# == Fixtures
|
||||
#
|
||||
# You can declare fixtures for each example_group like this:
|
||||
# describe "...." do
|
||||
# fixtures :table_a, :table_b
|
||||
#
|
||||
# Alternatively, if you prefer to declare them only once, you can
|
||||
# do so right here. Just uncomment the next line and replace the fixture
|
||||
# names with your fixtures.
|
||||
#
|
||||
# config.global_fixtures = :table_a, :table_b
|
||||
#
|
||||
# If you declare global fixtures, be aware that they will be declared
|
||||
# for all of your examples, even those that don't use them.
|
||||
#
|
||||
# You can also declare which fixtures to use (for example fixtures for test/fixtures):
|
||||
#
|
||||
# config.fixture_path = RAILS_ROOT + '/spec/fixtures/'
|
||||
#
|
||||
# == Mock Framework
|
||||
#
|
||||
# RSpec uses it's own mocking framework by default. If you prefer to
|
||||
# use mocha, flexmock or RR, uncomment the appropriate line:
|
||||
#
|
||||
# config.mock_with :mocha
|
||||
# config.mock_with :flexmock
|
||||
# config.mock_with :rr
|
||||
#
|
||||
# == Notes
|
||||
#
|
||||
# For more information take a look at Spec::Example::Configuration and Spec::Runner
|
||||
end
|
||||
3
vendor/plugins/rspec-rails/generators/rspec/templates/stories_helper.rb
vendored
Normal file
3
vendor/plugins/rspec-rails/generators/rspec/templates/stories_helper.rb
vendored
Normal file
|
|
@ -0,0 +1,3 @@
|
|||
ENV["RAILS_ENV"] = "test"
|
||||
require File.expand_path(File.dirname(__FILE__) + "/../config/environment")
|
||||
require 'spec/rails/story_adapter'
|
||||
Loading…
Add table
Add a link
Reference in a new issue