spreewald 0.5.10 → 0.5.11

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (49) hide show
  1. data/.gitignore +7 -10
  2. data/Rakefile +38 -1
  3. data/lib/spreewald/table_steps.rb +5 -2
  4. data/lib/spreewald/web_steps.rb +1 -0
  5. data/lib/spreewald_support/version.rb +1 -1
  6. data/tests/rails-2.3/Gemfile +17 -0
  7. data/tests/rails-2.3/Rakefile +11 -0
  8. data/tests/rails-2.3/config/boot.rb +128 -0
  9. data/tests/rails-2.3/config/database.yml +6 -0
  10. data/tests/rails-2.3/config/environment.rb +11 -0
  11. data/tests/rails-2.3/config/environments/cucumber.rb +6 -0
  12. data/tests/rails-2.3/config/initializers/backtrace_silencers.rb +7 -0
  13. data/tests/rails-2.3/config/initializers/cookie_verification_secret.rb +7 -0
  14. data/tests/rails-2.3/config/initializers/inflections.rb +10 -0
  15. data/tests/rails-2.3/config/initializers/mime_types.rb +5 -0
  16. data/tests/rails-2.3/config/initializers/new_rails_defaults.rb +21 -0
  17. data/tests/rails-2.3/config/initializers/session_store.rb +15 -0
  18. data/tests/rails-2.3/config/preinitializer.rb +20 -0
  19. data/tests/rails-2.3/config/routes.rb +5 -0
  20. data/tests/rails-2.3/features/support/env.rb +65 -0
  21. data/tests/rails-2.3/features/support/paths.rb +16 -0
  22. data/tests/rails-2.3/scripts/generate +3 -0
  23. data/tests/rails-3.2/Gemfile +13 -0
  24. data/tests/rails-3.2/Rakefile +12 -0
  25. data/tests/rails-3.2/config/application.rb +29 -0
  26. data/tests/rails-3.2/config/boot.rb +15 -0
  27. data/tests/rails-3.2/config/database.yml +6 -0
  28. data/tests/rails-3.2/config/environment.rb +9 -0
  29. data/tests/rails-3.2/config/initializers/backtrace_silencers.rb +9 -0
  30. data/tests/rails-3.2/config/initializers/inflections.rb +12 -0
  31. data/tests/rails-3.2/config/initializers/mime_types.rb +7 -0
  32. data/tests/rails-3.2/config/initializers/secret_token.rb +9 -0
  33. data/tests/rails-3.2/config/initializers/session_store.rb +5 -0
  34. data/tests/rails-3.2/config/routes.rb +5 -0
  35. data/tests/rails-3.2/features/support/env.rb +65 -0
  36. data/tests/rails-3.2/features/support/paths.rb +16 -0
  37. data/tests/shared/app/controllers/application_controller.rb +2 -0
  38. data/tests/shared/app/controllers/emails_controller.rb +19 -0
  39. data/tests/shared/app/controllers/tables_controller.rb +3 -0
  40. data/tests/shared/app/models/mailer.rb +25 -0
  41. data/tests/shared/app/views/layouts/application.html.haml +5 -0
  42. data/tests/shared/app/views/tables/table1.html.haml +13 -0
  43. data/tests/shared/config/database.sample.yml +6 -0
  44. data/tests/shared/db/migrate/.gitignore +0 -0
  45. data/tests/shared/features/shared/emails.feature +16 -0
  46. data/tests/shared/features/shared/step_definitions/test_steps.rb +32 -0
  47. data/tests/shared/features/shared/tables.feature +279 -0
  48. data/tests/shared/features/support/paths.rb +16 -0
  49. metadata +48 -4
data/.gitignore CHANGED
@@ -2,17 +2,14 @@
2
2
  *.rbc
3
3
  .bundle
4
4
  .config
5
+ .DS_Store
6
+ .idea
5
7
  .yardoc
6
- Gemfile.lock
7
- InstalledFiles
8
- _yardoc
9
8
  coverage
10
9
  doc/
11
- lib/bundler/man
12
- pkg
13
- rdoc
14
- spec/reports
15
- test/tmp
16
- test/version_tmp
10
+ Gemfile.lock
11
+ InstalledFiles
12
+ tests/shared/config/database.yml
17
13
  tmp
18
- .idea
14
+ _yardoc
15
+ *.log
data/Rakefile CHANGED
@@ -1,9 +1,12 @@
1
1
  #!/usr/bin/env rake
2
2
  require "bundler/gem_tasks"
3
3
 
4
+ desc 'Default: Run all tests.'
5
+ task :default => 'tests:run' # now you can run the tests by just typing "rake" into your console
6
+
4
7
 
5
8
  desc 'Update the "Steps" section of the README'
6
- task "update_readme" do
9
+ task :update_readme do
7
10
  require 'support/documentation_generator'
8
11
  readme = File.read('README.md')
9
12
  start_of_steps_section = readme =~ /^## Steps/
@@ -11,3 +14,37 @@ task "update_readme" do
11
14
  readme[start_of_steps_section, length_of_steps_section] = "## Steps\n\n" + DocumentationGenerator::StepDefinitionsDirectory.new('lib/spreewald').format
12
15
  File.open('README.md', 'w') { |f| f.write(readme) }
13
16
  end
17
+
18
+ namespace :tests do
19
+
20
+ desc "Run tests on all test apps"
21
+ task :run do # to run the tests type "rake tests:run" into your console
22
+ success = true
23
+ for_each_directory_of('tests/**/Rakefile') do |directory|
24
+ env = "SPEC=../../#{ENV['SPEC']} " if ENV['SPEC']
25
+ success &= system("cd #{directory} && #{env} bundle exec rake features")
26
+ end
27
+ fail "Tests failed" unless success
28
+ end
29
+
30
+ desc "Bundle all test apps"
31
+ task :bundle do
32
+ for_each_directory_of('tests/**/Gemfile') do |directory|
33
+ system("cd #{directory} && rm -f Gemfile.lock && bundle install")
34
+ end
35
+ end
36
+
37
+ desc 'Shortcut for creating a database'
38
+ task :create_database do
39
+ system("mysql -uroot -p -e 'create database spreewald_test;'")
40
+ end
41
+
42
+ end
43
+
44
+ def for_each_directory_of(path, &block)
45
+ Dir[path].sort.each do |rakefile|
46
+ directory = File.dirname(rakefile)
47
+ puts '', "\033[44m#{directory}\033[0m", ''
48
+ block.call(directory)
49
+ end
50
+ end
@@ -46,6 +46,7 @@ module TableStepsHelper
46
46
  @best_rows_matched = -1
47
47
  options = args.extract_options!
48
48
  expected_table = args.first
49
+ skipped_rows = []
49
50
  tables.any? do |table|
50
51
  rows_matched = 0
51
52
  match = expected_table.all? do |expected_row|
@@ -62,13 +63,15 @@ module TableStepsHelper
62
63
  if options[:unordered]
63
64
  table.delete_at(first_row)
64
65
  else
66
+ skipped_rows += table[0...first_row]
65
67
  table = table[(first_row + 1)..-1]
66
68
  end
67
69
  true
68
70
  end
69
71
  end
70
- if match and options[:exactly] and not table.empty?
71
- @extra_rows = table
72
+ remaining_rows = skipped_rows + table
73
+ if match and options[:exactly] and not remaining_rows.empty?
74
+ @extra_rows = remaining_rows
72
75
  match = false
73
76
  end
74
77
  match
@@ -223,6 +223,7 @@ end
223
223
  Then /^(?:|I )should be on (.+)$/ do |page_name|
224
224
  patiently do
225
225
  fragment = URI.parse(current_url).fragment
226
+ fragment.sub!(/[#?].*/, '') if fragment # most js frameworks will usually use ? and # for params, we dont care about those
226
227
  current_path = URI.parse(current_url).path
227
228
  current_path << "##{fragment}" if fragment.present?
228
229
  expected_path = _path_to(page_name)
@@ -1,5 +1,5 @@
1
1
  # coding: UTF-8
2
2
 
3
3
  module Spreewald
4
- VERSION = "0.5.10"
4
+ VERSION = "0.5.11"
5
5
  end
@@ -0,0 +1,17 @@
1
+ source 'https://rubygems.org'
2
+
3
+ gem 'rails', '~>2.3'
4
+
5
+ gem 'mysql2', '~>0.2.1'
6
+ gem 'activerecord-mysql2-adapter'
7
+ gem 'ruby-debug', :platforms => :ruby_18
8
+ gem 'database_cleaner'
9
+
10
+ gem "capybara", "1.1.1"
11
+ gem "cucumber", "1.1.0"
12
+ gem "cucumber-rails", '=0.3.2'
13
+ gem 'rspec-rails', '~>1.3'
14
+
15
+ gem 'haml', '<3'
16
+
17
+ gem 'spreewald', :path => '../..'
@@ -0,0 +1,11 @@
1
+ #!/usr/bin/env rake
2
+ require 'cucumber/rake/task'
3
+
4
+ desc 'Default: Run all specs for a specific rails version.'
5
+ task :default => :features
6
+
7
+ desc 'Run all specs for rails 2.3'
8
+ Cucumber::Rake::Task.new(:features) do |t|
9
+ # tell cucumber where it finds it files (subdirectories and symlinks are confusing it)
10
+ t.cucumber_opts = "--require features --require features/shared features/shared/"
11
+ end
@@ -0,0 +1,128 @@
1
+ # Don't change this file!
2
+ # Configure your app in config/environment.rb and config/environments/*.rb
3
+
4
+ RAILS_ROOT = "#{File.dirname(__FILE__)}/.." unless defined?(RAILS_ROOT)
5
+
6
+ module Rails
7
+ class << self
8
+ def boot!
9
+ unless booted?
10
+ preinitialize
11
+ pick_boot.run
12
+ end
13
+ end
14
+
15
+ def booted?
16
+ defined? Rails::Initializer
17
+ end
18
+
19
+ def pick_boot
20
+ (vendor_rails? ? VendorBoot : GemBoot).new
21
+ end
22
+
23
+ def vendor_rails?
24
+ File.exist?("#{RAILS_ROOT}/vendor/rails")
25
+ end
26
+
27
+ def preinitialize
28
+ load(preinitializer_path) if File.exist?(preinitializer_path)
29
+ end
30
+
31
+ def preinitializer_path
32
+ "#{RAILS_ROOT}/config/preinitializer.rb"
33
+ end
34
+ end
35
+
36
+ class Boot
37
+ def run
38
+ load_initializer
39
+ Rails::Initializer.run(:set_load_path)
40
+ end
41
+ end
42
+
43
+ class VendorBoot < Boot
44
+ def load_initializer
45
+ require "#{RAILS_ROOT}/vendor/rails/railties/lib/initializer"
46
+ Rails::Initializer.run(:install_gem_spec_stubs)
47
+ Rails::GemDependency.add_frozen_gem_path
48
+ end
49
+ end
50
+
51
+ class GemBoot < Boot
52
+ def load_initializer
53
+ self.class.load_rubygems
54
+ load_rails_gem
55
+ require 'initializer'
56
+ end
57
+
58
+ def load_rails_gem
59
+ if version = self.class.gem_version
60
+ gem 'rails', version
61
+ else
62
+ gem 'rails'
63
+ end
64
+ rescue Gem::LoadError => load_error
65
+ if load_error.message =~ /Could not find RubyGem rails/
66
+ STDERR.puts %(Missing the Rails #{version} gem. Please `gem install -v=#{version} rails`, update your RAILS_GEM_VERSION setting in config/environment.rb for the Rails version you do have installed, or comment out RAILS_GEM_VERSION to use the latest version installed.)
67
+ exit 1
68
+ else
69
+ raise
70
+ end
71
+ end
72
+
73
+ class << self
74
+ def rubygems_version
75
+ Gem::RubyGemsVersion rescue nil
76
+ end
77
+
78
+ def gem_version
79
+ if defined? RAILS_GEM_VERSION
80
+ RAILS_GEM_VERSION
81
+ elsif ENV.include?('RAILS_GEM_VERSION')
82
+ ENV['RAILS_GEM_VERSION']
83
+ else
84
+ parse_gem_version(read_environment_rb)
85
+ end
86
+ end
87
+
88
+ def load_rubygems
89
+ min_version = '1.3.2'
90
+ require 'rubygems'
91
+ unless rubygems_version >= min_version
92
+ $stderr.puts %Q(Rails requires RubyGems >= #{min_version} (you have #{rubygems_version}). Please `gem update --system` and try again.)
93
+ exit 1
94
+ end
95
+
96
+ rescue LoadError
97
+ $stderr.puts %Q(Rails requires RubyGems >= #{min_version}. Please install RubyGems and try again: http://rubygems.rubyforge.org)
98
+ exit 1
99
+ end
100
+
101
+ def parse_gem_version(text)
102
+ $1 if text =~ /^[^#]*RAILS_GEM_VERSION\s*=\s*["']([!~<>=]*\s*[\d.]+)["']/
103
+ end
104
+
105
+ private
106
+ def read_environment_rb
107
+ File.read("#{RAILS_ROOT}/config/environment.rb")
108
+ end
109
+ end
110
+ end
111
+ end
112
+
113
+ class Rails::Boot
114
+ def run
115
+ load_initializer
116
+
117
+ Rails::Initializer.class_eval do
118
+ def load_gems
119
+ @bundler_loaded ||= Bundler.require :default, Rails.env
120
+ end
121
+ end
122
+
123
+ Rails::Initializer.run(:set_load_path)
124
+ end
125
+ end
126
+
127
+ # All that for this:
128
+ Rails.boot!
@@ -0,0 +1,6 @@
1
+ cucumber:
2
+ database: spreewald_test
3
+ adapter: mysql2
4
+ host: localhost
5
+ username: root
6
+ password: secret
@@ -0,0 +1,11 @@
1
+ # Be sure to restart your server when you modify this file
2
+
3
+ # Specifies gem version of Rails to use when vendor/rails is not present
4
+ RAILS_GEM_VERSION = '2.3.18' unless defined? RAILS_GEM_VERSION
5
+
6
+ # Bootstrap the Rails environment, frameworks, and default configuration
7
+ require File.join(File.dirname(__FILE__), 'boot')
8
+
9
+ Rails::Initializer.run do |config|
10
+ config.time_zone = 'UTC'
11
+ end
@@ -0,0 +1,6 @@
1
+ EMAIL_RECIPIENT = "to@example.com"
2
+ EMAIL_SENDER = "from@example.com"
3
+
4
+ RSPEC_EXPECTATION_NOT_MET_ERROR = Spec::Expectations::ExpectationNotMetError
5
+
6
+ config.action_mailer.delivery_method = :test
@@ -0,0 +1,7 @@
1
+ # Be sure to restart your server when you modify this file.
2
+
3
+ # You can add backtrace silencers for libraries that you're using but don't wish to see in your backtraces.
4
+ # Rails.backtrace_cleaner.add_silencer { |line| line =~ /my_noisy_library/ }
5
+
6
+ # You can also remove all the silencers if you're trying do debug a problem that might steem from framework code.
7
+ # Rails.backtrace_cleaner.remove_silencers!
@@ -0,0 +1,7 @@
1
+ # Be sure to restart your server when you modify this file.
2
+
3
+ # Your secret key for verifying the integrity of signed cookies.
4
+ # If you change this key, all old signed cookies will become invalid!
5
+ # Make sure the secret is at least 30 characters and all random,
6
+ # no regular words or you'll be exposed to dictionary attacks.
7
+ ActionController::Base.cookie_verifier_secret = '4d6b24a9d5bfac6edceecec91d4f9c82b22c7155c1569080a4173d1bf833ed5970652f7da6626949cf71ed764f0294627e6160c899d8279f11e84bde7a9f20b4';
@@ -0,0 +1,10 @@
1
+ # Be sure to restart your server when you modify this file.
2
+
3
+ # Add new inflection rules using the following format
4
+ # (all these examples are active by default):
5
+ # ActiveSupport::Inflector.inflections do |inflect|
6
+ # inflect.plural /^(ox)$/i, '\1en'
7
+ # inflect.singular /^(ox)en/i, '\1'
8
+ # inflect.irregular 'person', 'people'
9
+ # inflect.uncountable %w( fish sheep )
10
+ # end
@@ -0,0 +1,5 @@
1
+ # Be sure to restart your server when you modify this file.
2
+
3
+ # Add new mime types for use in respond_to blocks:
4
+ # Mime::Type.register "text/richtext", :rtf
5
+ # Mime::Type.register_alias "text/html", :iphone
@@ -0,0 +1,21 @@
1
+ # Be sure to restart your server when you modify this file.
2
+
3
+ # These settings change the behavior of Rails 2 apps and will be defaults
4
+ # for Rails 3. You can remove this initializer when Rails 3 is released.
5
+
6
+ if defined?(ActiveRecord)
7
+ # Include Active Record class name as root for JSON serialized output.
8
+ ActiveRecord::Base.include_root_in_json = true
9
+
10
+ # Store the full class name (including module namespace) in STI type column.
11
+ ActiveRecord::Base.store_full_sti_class = true
12
+ end
13
+
14
+ ActionController::Routing.generate_best_match = false
15
+
16
+ # Use ISO 8601 format for JSON serialized times and dates.
17
+ ActiveSupport.use_standard_json_time_format = true
18
+
19
+ # Don't escape HTML entities in JSON, leave that for the #json_escape helper.
20
+ # if you're including raw json in an HTML page.
21
+ ActiveSupport.escape_html_entities_in_json = false
@@ -0,0 +1,15 @@
1
+ # Be sure to restart your server when you modify this file.
2
+
3
+ # Your secret key for verifying cookie session data integrity.
4
+ # If you change this key, all old sessions will become invalid!
5
+ # Make sure the secret is at least 30 characters and all random,
6
+ # no regular words or you'll be exposed to dictionary attacks.
7
+ ActionController::Base.session = {
8
+ :key => '_spreewald_test_session',
9
+ :secret => 'cd29dba6c040376838de77ac6d96c2ca6377989989069d4da7abe097b50ef0679dc60251bdee61cb9e7da1253546fe9af87b74752725f91bdbb258f22f061102'
10
+ }
11
+
12
+ # Use the database for sessions instead of the cookie-based default,
13
+ # which shouldn't be used to store highly confidential information
14
+ # (create the session table with "rake db:sessions:create")
15
+ # ActionController::Base.session_store = :active_record_store
@@ -0,0 +1,20 @@
1
+ begin
2
+ require "rubygems"
3
+ require "bundler"
4
+ rescue LoadError
5
+ raise "Could not load the bundler gem. Install it with `gem install bundler`."
6
+ end
7
+
8
+ if Gem::Version.new(Bundler::VERSION) <= Gem::Version.new("0.9.24")
9
+ raise RuntimeError, "Your bundler version is too old for Rails 2.3." +
10
+ "Run `gem install bundler` to upgrade."
11
+ end
12
+
13
+ begin
14
+ # Set up load paths for all bundled gems
15
+ ENV["BUNDLE_GEMFILE"] = File.expand_path("../../Gemfile", __FILE__)
16
+ Bundler.setup
17
+ rescue Bundler::GemNotFound
18
+ raise RuntimeError, "Bundler couldn't find some gems." +
19
+ "Did you run `bundle install`?"
20
+ end
@@ -0,0 +1,5 @@
1
+ ActionController::Routing::Routes.draw do |map|
2
+ map.connect ':controller/:action'
3
+ map.connect ':controller/:action/:id'
4
+ map.connect ':controller/:action/:id.:format'
5
+ end
@@ -0,0 +1,65 @@
1
+ # IMPORTANT: This file is generated by cucumber-rails - edit at your own peril.
2
+ # It is recommended to regenerate this file in the future when you upgrade to a
3
+ # newer version of cucumber-rails. Consider adding your own code to a new file
4
+ # instead of editing this one. Cucumber will automatically load all features/**/*.rb
5
+ # files.
6
+
7
+ ENV["RAILS_ENV"] ||= "cucumber"
8
+ require File.expand_path(File.dirname(__FILE__) + '/../../config/environment')
9
+
10
+ # require 'spec/support/blueprints'
11
+ # require 'features/support/find_or_make'
12
+
13
+ require 'cucumber/formatter/unicode' # Remove this line if you don't want Cucumber Unicode support
14
+ require 'cucumber/rails/world'
15
+ require 'cucumber/rails/rspec'
16
+ require 'cucumber/rails/active_record'
17
+ require 'cucumber/web/tableish'
18
+
19
+ require 'capybara/rails'
20
+ require 'capybara/cucumber'
21
+ require 'capybara/session'
22
+
23
+
24
+ # load Spreewald steps
25
+ require File.expand_path('../../lib/spreewald/all_steps')
26
+
27
+ # Capybara defaults to XPath selectors rather than Webrat's default of CSS3. In
28
+ # order to ease the transition to Capybara we set the default here. If you'd
29
+ # prefer to use XPath just remove this line and adjust any selectors in your
30
+ # steps to use the XPath syntax.
31
+ Capybara.default_selector = :css
32
+
33
+ # If you set this to false, any error raised from within your app will bubble
34
+ # up to your step definition and out to cucumber unless you catch it somewhere
35
+ # on the way. You can make Rails rescue errors and render error pages on a
36
+ # per-scenario basis by tagging a scenario or feature with the @allow-rescue tag.
37
+ #
38
+ # If you set this to true, Rails will rescue all errors and render error
39
+ # pages, more or less in the same way your application would behave in the
40
+ # default production environment. It's not recommended to do this for all
41
+ # of your scenarios, as this makes it hard to discover errors in your application.
42
+ ActionController::Base.allow_rescue = false
43
+
44
+ # If you set this to true, each scenario will run in a database transaction.
45
+ # You can still turn off transactions on a per-scenario basis, simply tagging
46
+ # a feature or scenario with the @no-txn tag. If you are using Capybara,
47
+ # tagging with @culerity or @javascript will also turn transactions off.
48
+ #
49
+ # If you set this to false, transactions will be off for all scenarios,
50
+ # regardless of whether you use @no-txn or not.
51
+ #
52
+ # Beware that turning transactions off will leave data in your database
53
+ # after each scenario, which can lead to hard-to-debug failures in
54
+ # subsequent scenarios. If you do this, we recommend you create a Before
55
+ # block that will explicitly put your database in a known state.
56
+ Cucumber::Rails::World.use_transactional_fixtures = true
57
+ # How to clean your database when transactions are turned off. See
58
+ # http://github.com/bmabey/database_cleaner for more info.
59
+ if defined?(ActiveRecord::Base)
60
+ begin
61
+ require 'database_cleaner'
62
+ DatabaseCleaner.strategy = :truncation
63
+ rescue LoadError => ignore_if_database_cleaner_not_present
64
+ end
65
+ end
@@ -0,0 +1,16 @@
1
+ module NavigationHelpers
2
+
3
+ def path_to(page_name)
4
+ case page_name
5
+ when /^"(.*)"$/
6
+ $1
7
+
8
+ else
9
+ raise "Can't find mapping from \"#{page_name}\" to a path.\n" +
10
+ "Now, go and add a mapping in #{__FILE__}"
11
+ end
12
+ end
13
+
14
+ end
15
+
16
+ World(NavigationHelpers)
@@ -0,0 +1,3 @@
1
+ #!/usr/bin/env ruby
2
+ require File.expand_path('../../config/boot', __FILE__)
3
+ require 'commands/generate'
@@ -0,0 +1,13 @@
1
+ source 'https://rubygems.org'
2
+
3
+ gem 'rails', '~>3.2'
4
+ gem 'mysql2'
5
+ gem 'ruby-debug', :platforms => :ruby_18
6
+ gem 'database_cleaner'
7
+ gem 'capybara', "~>1" # for ruby 1.8.7 (capybara 2.x requires ruby 1.9)
8
+ # gem 'andand'
9
+
10
+ gem 'rspec-rails'
11
+ gem 'spreewald', :path => '../..'
12
+
13
+ gem 'haml-rails'
@@ -0,0 +1,12 @@
1
+ #!/usr/bin/env rake
2
+ require 'cucumber/rake/task'
3
+
4
+ desc 'Default: Run all specs for a specific rails version.'
5
+ task :default => :features
6
+
7
+ desc 'Run all specs for rails 3.2'
8
+ Cucumber::Rake::Task.new(:features) do |t|
9
+ # tell cucumber where it finds it files (subdirectories and symlinks are confusing it)
10
+ t.cucumber_opts = "--require features --require features/shared features/shared/"
11
+ end
12
+
@@ -0,0 +1,29 @@
1
+ # encoding: utf-8
2
+
3
+ require File.expand_path('../boot', __FILE__)
4
+
5
+ require 'rails/all'
6
+
7
+ # If you have a Gemfile, require the gems listed there, including any gems
8
+ # you've limited to :test, :development, or :production.
9
+ Bundler.require(:default, Rails.env) if defined?(Bundler)
10
+
11
+ module SpreewaldTest
12
+ class Application < Rails::Application
13
+ config.encoding = "utf-8"
14
+
15
+ config.cache_classes = true
16
+ config.whiny_nils = true
17
+
18
+ config.consider_all_requests_local = true
19
+ config.action_controller.perform_caching = false
20
+ config.action_controller.allow_forgery_protection = false
21
+
22
+ config.action_dispatch.show_exceptions = false
23
+ config.action_mailer.delivery_method = :test
24
+ config.action_mailer.raise_delivery_errors = true
25
+ config.active_support.deprecation = :stderr
26
+
27
+ config.root = File.expand_path('../..', __FILE__)
28
+ end
29
+ end
@@ -0,0 +1,15 @@
1
+ # encoding: utf-8
2
+
3
+ require 'rubygems'
4
+
5
+ # Set up gems listed in the Gemfile.
6
+ gemfile = File.expand_path('../../Gemfile', __FILE__)
7
+ begin
8
+ ENV['BUNDLE_GEMFILE'] = gemfile
9
+ require 'bundler'
10
+ Bundler.setup
11
+ rescue Bundler::GemNotFound => e
12
+ STDERR.puts e.message
13
+ STDERR.puts "Try running `bundle install`."
14
+ exit!
15
+ end if File.exist?(gemfile)
@@ -0,0 +1,6 @@
1
+ cucumber:
2
+ database: spreewald_test
3
+ adapter: mysql2
4
+ host: localhost
5
+ username: root
6
+ password: secret
@@ -0,0 +1,9 @@
1
+ # encoding: utf-8
2
+
3
+ # Load the rails application
4
+ require File.expand_path('../application', __FILE__)
5
+
6
+ # Initialize the rails application
7
+ SpreewaldTest::Application.initialize!
8
+
9
+ RSPEC_EXPECTATION_NOT_MET_ERROR = RSpec::Expectations::ExpectationNotMetError
@@ -0,0 +1,9 @@
1
+ # encoding: utf-8
2
+
3
+ # Be sure to restart your server when you modify this file.
4
+
5
+ # You can add backtrace silencers for libraries that you're using but don't wish to see in your backtraces.
6
+ # Rails.backtrace_cleaner.add_silencer { |line| line =~ /my_noisy_library/ }
7
+
8
+ # You can also remove all the silencers if you're trying to debug a problem that might stem from framework code.
9
+ # Rails.backtrace_cleaner.remove_silencers!
@@ -0,0 +1,12 @@
1
+ # encoding: utf-8
2
+
3
+ # Be sure to restart your server when you modify this file.
4
+
5
+ # Add new inflection rules using the following format
6
+ # (all these examples are active by default):
7
+ # ActiveSupport::Inflector.inflections do |inflect|
8
+ # inflect.plural /^(ox)$/i, '\1en'
9
+ # inflect.singular /^(ox)en/i, '\1'
10
+ # inflect.irregular 'person', 'people'
11
+ # inflect.uncountable %w( fish sheep )
12
+ # end
@@ -0,0 +1,7 @@
1
+ # encoding: utf-8
2
+
3
+ # Be sure to restart your server when you modify this file.
4
+
5
+ # Add new mime types for use in respond_to blocks:
6
+ # Mime::Type.register "text/richtext", :rtf
7
+ # Mime::Type.register_alias "text/html", :iphone
@@ -0,0 +1,9 @@
1
+ # encoding: utf-8
2
+
3
+ # Be sure to restart your server when you modify this file.
4
+
5
+ # Your secret key for verifying the integrity of signed cookies.
6
+ # If you change this key, all old signed cookies will become invalid!
7
+ # Make sure the secret is at least 30 characters and all random,
8
+ # no regular words or you'll be exposed to dictionary attacks.
9
+ SpreewaldTest::Application.config.secret_token = 'cb014a08a45243e7143f31e04774c342c1fba329fd594ae1a480d8283b1a851f425dc08044311fb4be6d000b6e6681de7c76d19148419a5ffa0a9f84556d3b33'
@@ -0,0 +1,5 @@
1
+ # encoding: utf-8
2
+
3
+ # Be sure to restart your server when you modify this file.
4
+
5
+ SpreewaldTest::Application.config.session_store :cookie_store, :key => '_spreewald_test_session'
@@ -0,0 +1,5 @@
1
+ # encoding: utf-8
2
+
3
+ SpreewaldTest::Application.routes.draw do
4
+ match ':controller(/:action(/:id(.:format)))'
5
+ end
@@ -0,0 +1,65 @@
1
+ # IMPORTANT: This file is generated by cucumber-rails - edit at your own peril.
2
+ # It is recommended to regenerate this file in the future when you upgrade to a
3
+ # newer version of cucumber-rails. Consider adding your own code to a new file
4
+ # instead of editing this one. Cucumber will automatically load all features/**/*.rb
5
+ # files.
6
+
7
+ ENV["RAILS_ENV"] ||= "cucumber"
8
+
9
+ require 'cucumber/rails'
10
+ # require 'capybara/rails'
11
+ # require 'spec/support/blueprints'
12
+ # require 'cucumber/rspec/doubles'
13
+ # require File.expand_path(File.join(File.dirname(__FILE__), "..", "support", "selectors"))
14
+
15
+ # load Spreewald steps
16
+ require File.expand_path('../../lib/spreewald/all_steps')
17
+
18
+ # Capybara defaults to XPath selectors rather than Webrat's default of CSS3. In
19
+ # order to ease the transition to Capybara we set the default here. If you'd
20
+ # prefer to use XPath just remove this line and adjust any selectors in your
21
+ # steps to use the XPath syntax.
22
+ Capybara.default_selector = :css
23
+
24
+ # By default, any exception happening in your Rails application will bubble up
25
+ # to Cucumber so that your scenario will fail. This is a different from how
26
+ # your application behaves in the production environment, where an error page will
27
+ # be rendered instead.
28
+ #
29
+ # Sometimes we want to override this default behaviour and allow Rails to rescue
30
+ # exceptions and display an error page (just like when the app is running in production).
31
+ # Typical scenarios where you want to do this is when you test your error pages.
32
+ # There are two ways to allow Rails to rescue exceptions:
33
+ #
34
+ # 1) Tag your scenario (or feature) with @allow-rescue
35
+ #
36
+ # 2) Set the value below to true. Beware that doing this globally is not
37
+ # recommended as it will mask a lot of errors for you!
38
+ #
39
+ ActionController::Base.allow_rescue = false
40
+
41
+ # Remove/comment out the lines below if your app doesn't have a database.
42
+ # For some databases (like MongoDB and CouchDB) you may need to use :truncation instead.
43
+ DatabaseCleaner.strategy = :transaction
44
+
45
+ # You may also want to configure DatabaseCleaner to use different strategies for certain features and scenarios.
46
+ # See the DatabaseCleaner documentation for details. Example:
47
+ #
48
+ # Before('@no-txn,@selenium,@culerity,@celerity,@javascript') do
49
+ # # { :except => [:widgets] } may not do what you expect here
50
+ # # as tCucumber::Rails::Database.javascript_strategy overrides
51
+ # # this setting.
52
+ # DatabaseCleaner.strategy = :truncation
53
+ # end
54
+ #
55
+ # Before('~@no-txn', '~@selenium', '~@culerity', '~@celerity', '~@javascript') do
56
+ # DatabaseCleaner.strategy = :transaction
57
+ # end
58
+ #
59
+
60
+ # Possible values are :truncation and :transaction
61
+ # The :transaction strategy is faster, but might give you threading problems.
62
+ # See https://github.com/cucumber/cucumber-rails/blob/master/features/choose_javascript_database_strategy.feature
63
+ Cucumber::Rails::Database.javascript_strategy = :deletion
64
+
65
+ Capybara.default_wait_time = 5
@@ -0,0 +1,16 @@
1
+ module NavigationHelpers
2
+
3
+ def path_to(page_name)
4
+ case page_name
5
+ when /^"(.*)"$/
6
+ $1
7
+
8
+ else
9
+ raise "Can't find mapping from \"#{page_name}\" to a path.\n" +
10
+ "Now, go and add a mapping in #{__FILE__}"
11
+ end
12
+ end
13
+
14
+ end
15
+
16
+ World(NavigationHelpers)
@@ -0,0 +1,2 @@
1
+ class ApplicationController < ActionController::Base
2
+ end
@@ -0,0 +1,19 @@
1
+ class EmailsController < ApplicationController
2
+
3
+ def do_nothing
4
+ render :nothing => true
5
+ end
6
+
7
+ def send_email
8
+ text = params[:id].to_s
9
+
10
+ if Rails.version >= "3"
11
+ Mailer.email(text).deliver
12
+ else
13
+ Mailer.deliver_email(text)
14
+ end
15
+
16
+ render :nothing => true
17
+ end
18
+
19
+ end
@@ -0,0 +1,3 @@
1
+ class TablesController < ApplicationController
2
+
3
+ end
@@ -0,0 +1,25 @@
1
+ class Mailer < ActionMailer::Base
2
+
3
+ if Rails.version >= "3"
4
+
5
+ default :from => "from@example.com",
6
+ :to => "to@example.com"
7
+
8
+ def email(body = "body")
9
+ mail(:subject => "email") do |format|
10
+ format.text { render :text => body }
11
+ end
12
+ end
13
+
14
+ else
15
+
16
+ def email(body_text = "body")
17
+ recipients EMAIL_RECIPIENT
18
+ from EMAIL_SENDER
19
+ subject "email"
20
+ body body_text
21
+ end
22
+
23
+ end
24
+
25
+ end
@@ -0,0 +1,5 @@
1
+ !!!
2
+ %html
3
+ %head
4
+ %body
5
+ = yield
@@ -0,0 +1,13 @@
1
+ %table
2
+ %tr
3
+ %th 1-1
4
+ %th 1-2
5
+ %th 1-3
6
+ %tr
7
+ %td 2-1
8
+ %td 2-2
9
+ %td 2-3
10
+ %tr
11
+ %td 3-1
12
+ %td 3-2
13
+ %td 3-3
@@ -0,0 +1,6 @@
1
+ cucumber:
2
+ database: spreewald_test
3
+ adapter: mysql2
4
+ host: localhost
5
+ username: root
6
+ password:
File without changes
@@ -0,0 +1,16 @@
1
+ Feature: Test Spreewald's email steps
2
+
3
+ Scenario: /^no e?mail should have been sent$/
4
+ When I go to "/emails/do_nothing"
5
+ Then the following step should succeed:
6
+ | no email should have been sent |
7
+
8
+ When I go to "/emails/send_email"
9
+ Then the following step should fail:
10
+ | no email should have been sent |
11
+
12
+
13
+ Scenario: /^I should see "([^\"]*)" in the e?mail$/
14
+ When I go to "/emails/send_email/message_body"
15
+ Then the following step should succeed:
16
+ | I should see "message_body" in the email |
@@ -0,0 +1,32 @@
1
+ Then /^the following steps? should (fail|succeed):$/ do |expectation, steps_table|
2
+ steps = steps_table.raw.flatten
3
+
4
+ steps.each do |step|
5
+ if expectation == 'fail'
6
+ expect { step(step) }.to raise_error(RSPEC_EXPECTATION_NOT_MET_ERROR)
7
+
8
+ else # succeed
9
+ step(step)
10
+ end
11
+
12
+ end
13
+ end
14
+
15
+ When /^I run the following steps?:$/ do |steps_table|
16
+ steps = steps_table.raw.flatten
17
+
18
+ steps.each do |step|
19
+ step(step)
20
+ end
21
+ end
22
+
23
+ Then /^the following multiline step should (fail|succeed):$/ do |expectation, multiline_step|
24
+
25
+ if expectation == 'fail'
26
+ expect { steps(multiline_step) }.to raise_error(RSPEC_EXPECTATION_NOT_MET_ERROR)
27
+ else # succeed
28
+ steps(multiline_step)
29
+ end
30
+
31
+ end
32
+
@@ -0,0 +1,279 @@
1
+ Feature: Table steps
2
+
3
+ Background:
4
+ When I go to "/tables/table1"
5
+
6
+
7
+ Scenario: should see a table with the following rows
8
+ Then the following multiline step should succeed:
9
+ """
10
+ Then I should see a table with the following rows:
11
+ | 1-1 | 1-2 | 1-3 |
12
+ | 2-1 | 2-2 | 2-3 |
13
+ | 3-1 | 3-2 | 3-3 |
14
+ """
15
+ And the following multiline step should succeed:
16
+ """
17
+ Then I should see a table with the following rows:
18
+ | 1-1 | 1-3 |
19
+ | 2-1 | 2-3 |
20
+ | 3-1 | 3-3 |
21
+ """
22
+ And the following multiline step should succeed:
23
+ """
24
+ Then I should see a table with the following rows:
25
+ | 1-2 | 1-3 |
26
+ | 2-2 | 2-3 |
27
+ | 3-2 | 3-3 |
28
+ """
29
+ And the following multiline step should succeed:
30
+ """
31
+ Then I should see a table with the following rows:
32
+ | 1-1 | 1-2 | 1-3 |
33
+ | 3-1 | 3-2 | 3-3 |
34
+ """
35
+ And the following multiline step should succeed:
36
+ """
37
+ Then I should see a table with the following rows:
38
+ | 2-1 | 2-2 | 2-3 |
39
+ | 3-1 | 3-2 | 3-3 |
40
+ """
41
+ And the following multiline step should succeed:
42
+ """
43
+ Then I should see a table with the following rows:
44
+ | 1-1 | 1-2 | 1-3 |
45
+ | 2-1 | 2-2 | 2-3 |
46
+ """
47
+ And the following multiline step should succeed:
48
+ """
49
+ Then I should see a table with the following rows:
50
+ | 1-1 | 1-3 |
51
+ | 3-1 | 3-3 |
52
+ """
53
+ And the following multiline step should succeed:
54
+ """
55
+ Then I should see a table with the following rows:
56
+ | 1* | 1-3 |
57
+ | 3* | 3-3 |
58
+ """
59
+ And the following multiline step should fail:
60
+ """
61
+ Then I should see a table with the following rows:
62
+ | 3-1 | 3-2 | 3-3 |
63
+ | 1-1 | 1-2 | 1-3 |
64
+ | 2-1 | 2-2 | 2-3 |
65
+ """
66
+ But the following multiline step should fail:
67
+ """
68
+ Then I should see a table with the following rows:
69
+ | 1-1 | 1-2 | 1-3 |
70
+ | 2-1 | 2-2 | 2-3 |
71
+ | 3-1 | 3-2 | foo |
72
+ """
73
+ And the following multiline step should fail:
74
+ """
75
+ Then I should see a table with the following rows:
76
+ | 1-1 | 1-2 | 1-3 |
77
+ | 2-1 | foo | 2-3 |
78
+ | 3-1 | 3-2 | 3-3 |
79
+ """
80
+ And the following multiline step should fail:
81
+ """
82
+ Then I should see a table with the following rows:
83
+ | 1 | 1-3 |
84
+ | 3 | 3-3 |
85
+ """
86
+
87
+
88
+ Scenario: should not see a table with the following rows
89
+ Then the following multiline step should fail:
90
+ """
91
+ Then I should not see a table with the following rows:
92
+ | 1-1 | 1-2 | 1-3 |
93
+ | 2-1 | 2-2 | 2-3 |
94
+ | 3-1 | 3-2 | 3-3 |
95
+ """
96
+ But the following multiline step should succeed:
97
+ """
98
+ Then I should not see a table with the following rows:
99
+ | 3-1 | 3-2 | 3-3 |
100
+ | 1-1 | 1-2 | 1-3 |
101
+ | 2-1 | 2-2 | 2-3 |
102
+ """
103
+
104
+
105
+ Scenario: should see a table with exactly the following rows
106
+ Then the following multiline step should succeed:
107
+ """
108
+ Then I should see a table with exactly the following rows:
109
+ | 1-1 | 1-2 | 1-3 |
110
+ | 2-1 | 2-2 | 2-3 |
111
+ | 3-1 | 3-2 | 3-3 |
112
+ """
113
+ And the following multiline step should succeed:
114
+ """
115
+ Then I should see a table with exactly the following rows:
116
+ | 1-1 | 1-3 |
117
+ | 2-1 | 2-3 |
118
+ | 3-1 | 3-3 |
119
+ """
120
+ But the following multiline step should fail:
121
+ """
122
+ Then I should see a table with exactly the following rows:
123
+ | 2-1 | 2-2 | 2-3 |
124
+ | 1-1 | 1-2 | 1-3 |
125
+ | 3-1 | 3-2 | 3-3 |
126
+ """
127
+ And the following multiline step should fail:
128
+ """
129
+ Then I should see a table with exactly the following rows:
130
+ | 1-1 | 1-2 | 1-3 |
131
+ | 3-1 | 3-2 | 3-3 |
132
+ """
133
+
134
+ Scenario: should not see a table with exactly the following rows
135
+ Then the following multiline step should fail:
136
+ """
137
+ Then I should not see a table with exactly the following rows:
138
+ | 1-1 | 1-2 | 1-3 |
139
+ | 2-1 | 2-2 | 2-3 |
140
+ | 3-1 | 3-2 | 3-3 |
141
+ """
142
+ And the following multiline step should fail:
143
+ """
144
+ Then I should not see a table with exactly the following rows:
145
+ | 1-1 | 1-3 |
146
+ | 2-1 | 2-3 |
147
+ | 3-1 | 3-3 |
148
+ """
149
+ But the following multiline step should succeed:
150
+ """
151
+ Then I should not see a table with exactly the following rows:
152
+ | 2-1 | 2-2 | 2-3 |
153
+ | 1-1 | 1-2 | 1-3 |
154
+ | 3-1 | 3-2 | 3-3 |
155
+ """
156
+ And the following multiline step should succeed:
157
+ """
158
+ Then I should not see a table with exactly the following rows:
159
+ | 1-1 | 1-2 | 1-3 |
160
+ | 3-1 | 3-2 | 3-3 |
161
+ """
162
+
163
+
164
+ Scenario: should see a table with the following rows in any order
165
+ Then the following multiline step should succeed:
166
+ """
167
+ Then I should see a table with the following rows in any order:
168
+ | 1-1 | 1-2 | 1-3 |
169
+ | 2-1 | 2-2 | 2-3 |
170
+ | 3-1 | 3-2 | 3-3 |
171
+ """
172
+ And the following multiline step should succeed:
173
+ """
174
+ Then I should see a table with the following rows in any order:
175
+ | 1-1 | 1-2 | 1-3 |
176
+ | 3-1 | 3-2 | 3-3 |
177
+ """
178
+ And the following multiline step should succeed:
179
+ """
180
+ Then I should see a table with the following rows in any order:
181
+ | 3-1 | 3-2 | 3-3 |
182
+ | 1-1 | 1-2 | 1-3 |
183
+ | 2-1 | 2-2 | 2-3 |
184
+ """
185
+ But the following multiline step should fail:
186
+ """
187
+ Then I should see a table with the following rows in any order:
188
+ | 1-1 | 1-2 | 1-3 |
189
+ | 2-1 | 2-2 | 2-3 |
190
+ | 3-1 | 3-2 | foo |
191
+ """
192
+ And the following multiline step should fail:
193
+ """
194
+ Then I should see a table with the following rows in any order:
195
+ | 1 | 1-3 |
196
+ | 3 | 3-3 |
197
+ """
198
+
199
+
200
+ Scenario: should not see a table with the following rows in any order
201
+ Then the following multiline step should fail:
202
+ """
203
+ Then I should not see a table with the following rows in any order:
204
+ | 1-1 | 1-2 | 1-3 |
205
+ | 2-1 | 2-2 | 2-3 |
206
+ | 3-1 | 3-2 | 3-3 |
207
+ """
208
+ And the following multiline step should fail:
209
+ """
210
+ Then I should not see a table with the following rows in any order:
211
+ | 1-1 | 1-2 | 1-3 |
212
+ | 3-1 | 3-2 | 3-3 |
213
+ """
214
+ And the following multiline step should fail:
215
+ """
216
+ Then I should not see a table with the following rows in any order:
217
+ | 3-1 | 3-2 | 3-3 |
218
+ | 1-1 | 1-2 | 1-3 |
219
+ | 2-1 | 2-2 | 2-3 |
220
+ """
221
+ But the following multiline step should succeed:
222
+ """
223
+ Then I should not see a table with the following rows in any order:
224
+ | 1-1 | 1-2 | 1-3 |
225
+ | 2-1 | 2-2 | 2-3 |
226
+ | 3-1 | 3-2 | foo |
227
+ """
228
+ And the following multiline step should succeed:
229
+ """
230
+ Then I should not see a table with the following rows in any order:
231
+ | 1 | 1-3 |
232
+ | 3 | 3-3 |
233
+ """
234
+
235
+
236
+ Scenario: should see a table with exactly the following rows in any order
237
+ Then the following multiline step should succeed:
238
+ """
239
+ Then I should see a table with exactly the following rows in any order:
240
+ | 1-1 | 1-2 | 1-3 |
241
+ | 2-1 | 2-2 | 2-3 |
242
+ | 3-1 | 3-2 | 3-3 |
243
+ """
244
+ And the following multiline step should succeed:
245
+ """
246
+ Then I should see a table with exactly the following rows in any order:
247
+ | 3-1 | 3-2 | 3-3 |
248
+ | 1-1 | 1-2 | 1-3 |
249
+ | 2-1 | 2-2 | 2-3 |
250
+ """
251
+ But the following multiline step should fail:
252
+ """
253
+ Then I should see a table with exactly the following rows in any order:
254
+ | 1-1 | 1-2 | 1-3 |
255
+ | 3-1 | 3-2 | 3-3 |
256
+ """
257
+
258
+
259
+ Scenario: should not see a table with exactly the following rows in any order
260
+ Then the following multiline step should fail:
261
+ """
262
+ Then I should not see a table with exactly the following rows in any order:
263
+ | 1-1 | 1-2 | 1-3 |
264
+ | 2-1 | 2-2 | 2-3 |
265
+ | 3-1 | 3-2 | 3-3 |
266
+ """
267
+ And the following multiline step should fail:
268
+ """
269
+ Then I should not see a table with exactly the following rows in any order:
270
+ | 3-1 | 3-2 | 3-3 |
271
+ | 1-1 | 1-2 | 1-3 |
272
+ | 2-1 | 2-2 | 2-3 |
273
+ """
274
+ But the following multiline step should succeed:
275
+ """
276
+ Then I should not see a table with exactly the following rows in any order:
277
+ | 1-1 | 1-2 | 1-3 |
278
+ | 3-1 | 3-2 | 3-3 |
279
+ """
@@ -0,0 +1,16 @@
1
+ module NavigationHelpers
2
+
3
+ def path_to(page_name)
4
+ case page_name
5
+ when /^"(.*)"$/
6
+ $1
7
+
8
+ else
9
+ raise "Can't find mapping from \"#{page_name}\" to a path.\n" +
10
+ "Now, go and add a mapping in #{__FILE__}"
11
+ end
12
+ end
13
+
14
+ end
15
+
16
+ World(NavigationHelpers)
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: spreewald
3
3
  version: !ruby/object:Gem::Version
4
- hash: 31
4
+ hash: 29
5
5
  prerelease:
6
6
  segments:
7
7
  - 0
8
8
  - 5
9
- - 10
10
- version: 0.5.10
9
+ - 11
10
+ version: 0.5.11
11
11
  platform: ruby
12
12
  authors:
13
13
  - Tobias Kraze
@@ -15,7 +15,7 @@ autorequire:
15
15
  bindir: bin
16
16
  cert_chain: []
17
17
 
18
- date: 2013-03-28 00:00:00 +01:00
18
+ date: 2013-04-30 00:00:00 +02:00
19
19
  default_executable:
20
20
  dependencies:
21
21
  - !ruby/object:Gem::Dependency
@@ -93,6 +93,50 @@ files:
93
93
  - lib/spreewald_support/version.rb
94
94
  - spreewald.gemspec
95
95
  - support/documentation_generator.rb
96
+ - tests/rails-2.3/Gemfile
97
+ - tests/rails-2.3/Rakefile
98
+ - tests/rails-2.3/config/boot.rb
99
+ - tests/rails-2.3/config/database.yml
100
+ - tests/rails-2.3/config/environment.rb
101
+ - tests/rails-2.3/config/environments/cucumber.rb
102
+ - tests/rails-2.3/config/initializers/backtrace_silencers.rb
103
+ - tests/rails-2.3/config/initializers/cookie_verification_secret.rb
104
+ - tests/rails-2.3/config/initializers/inflections.rb
105
+ - tests/rails-2.3/config/initializers/mime_types.rb
106
+ - tests/rails-2.3/config/initializers/new_rails_defaults.rb
107
+ - tests/rails-2.3/config/initializers/session_store.rb
108
+ - tests/rails-2.3/config/preinitializer.rb
109
+ - tests/rails-2.3/config/routes.rb
110
+ - tests/rails-2.3/features/support/env.rb
111
+ - tests/rails-2.3/features/support/paths.rb
112
+ - tests/rails-2.3/scripts/generate
113
+ - tests/rails-3.2/.DS_Store
114
+ - tests/rails-3.2/Gemfile
115
+ - tests/rails-3.2/Rakefile
116
+ - tests/rails-3.2/config/application.rb
117
+ - tests/rails-3.2/config/boot.rb
118
+ - tests/rails-3.2/config/database.yml
119
+ - tests/rails-3.2/config/environment.rb
120
+ - tests/rails-3.2/config/initializers/backtrace_silencers.rb
121
+ - tests/rails-3.2/config/initializers/inflections.rb
122
+ - tests/rails-3.2/config/initializers/mime_types.rb
123
+ - tests/rails-3.2/config/initializers/secret_token.rb
124
+ - tests/rails-3.2/config/initializers/session_store.rb
125
+ - tests/rails-3.2/config/routes.rb
126
+ - tests/rails-3.2/features/support/env.rb
127
+ - tests/rails-3.2/features/support/paths.rb
128
+ - tests/shared/app/controllers/application_controller.rb
129
+ - tests/shared/app/controllers/emails_controller.rb
130
+ - tests/shared/app/controllers/tables_controller.rb
131
+ - tests/shared/app/models/mailer.rb
132
+ - tests/shared/app/views/layouts/application.html.haml
133
+ - tests/shared/app/views/tables/table1.html.haml
134
+ - tests/shared/config/database.sample.yml
135
+ - tests/shared/db/migrate/.gitignore
136
+ - tests/shared/features/shared/emails.feature
137
+ - tests/shared/features/shared/step_definitions/test_steps.rb
138
+ - tests/shared/features/shared/tables.feature
139
+ - tests/shared/features/support/paths.rb
96
140
  has_rdoc: true
97
141
  homepage: https://github.com/makandra/spreewald
98
142
  licenses: []