mcmire-rspec-rails 1.1.99.9

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 (164) hide show
  1. data/History.txt +174 -0
  2. data/License.txt +33 -0
  3. data/Manifest.txt +164 -0
  4. data/README.txt +45 -0
  5. data/Rakefile +63 -0
  6. data/TODO.txt +1 -0
  7. data/Upgrade.markdown +52 -0
  8. data/features/step_definitions/people.rb +6 -0
  9. data/features/support/env.rb +13 -0
  10. data/features/transactions/transactions_should_rollback.feature +16 -0
  11. data/generators/rspec/CHANGES +1 -0
  12. data/generators/rspec/rspec_generator.rb +37 -0
  13. data/generators/rspec/templates/previous_failures.txt +0 -0
  14. data/generators/rspec/templates/rcov.opts +2 -0
  15. data/generators/rspec/templates/rspec.rake +177 -0
  16. data/generators/rspec/templates/script/autospec +5 -0
  17. data/generators/rspec/templates/script/spec +4 -0
  18. data/generators/rspec/templates/script/spec_server +37 -0
  19. data/generators/rspec/templates/spec.opts +4 -0
  20. data/generators/rspec/templates/spec_helper.rb +47 -0
  21. data/generators/rspec_controller/USAGE +33 -0
  22. data/generators/rspec_controller/rspec_controller_generator.rb +45 -0
  23. data/generators/rspec_controller/templates/controller_spec.rb +25 -0
  24. data/generators/rspec_controller/templates/helper_spec.rb +11 -0
  25. data/generators/rspec_controller/templates/view_spec.rb +12 -0
  26. data/generators/rspec_default_values.rb +19 -0
  27. data/generators/rspec_model/USAGE +18 -0
  28. data/generators/rspec_model/rspec_model_generator.rb +35 -0
  29. data/generators/rspec_model/templates/model_spec.rb +15 -0
  30. data/generators/rspec_scaffold/rspec_scaffold_generator.rb +150 -0
  31. data/generators/rspec_scaffold/templates/controller_spec.rb +171 -0
  32. data/generators/rspec_scaffold/templates/edit_erb_spec.rb +27 -0
  33. data/generators/rspec_scaffold/templates/helper_spec.rb +11 -0
  34. data/generators/rspec_scaffold/templates/index_erb_spec.rb +28 -0
  35. data/generators/rspec_scaffold/templates/new_erb_spec.rb +27 -0
  36. data/generators/rspec_scaffold/templates/routing_spec.rb +63 -0
  37. data/generators/rspec_scaffold/templates/show_erb_spec.rb +23 -0
  38. data/init.rb +9 -0
  39. data/lib/autotest/discover.rb +1 -0
  40. data/lib/autotest/rails_rspec.rb +76 -0
  41. data/lib/spec/rails.rb +37 -0
  42. data/lib/spec/rails/example.rb +53 -0
  43. data/lib/spec/rails/example/assigns_hash_proxy.rb +39 -0
  44. data/lib/spec/rails/example/controller_example_group.rb +242 -0
  45. data/lib/spec/rails/example/cookies_proxy.rb +29 -0
  46. data/lib/spec/rails/example/functional_example_group.rb +84 -0
  47. data/lib/spec/rails/example/helper_example_group.rb +167 -0
  48. data/lib/spec/rails/example/model_example_group.rb +14 -0
  49. data/lib/spec/rails/example/render_observer.rb +67 -0
  50. data/lib/spec/rails/example/routing_helpers.rb +68 -0
  51. data/lib/spec/rails/example/view_example_group.rb +186 -0
  52. data/lib/spec/rails/extensions.rb +15 -0
  53. data/lib/spec/rails/extensions/action_controller/rescue.rb +42 -0
  54. data/lib/spec/rails/extensions/action_controller/test_case.rb +16 -0
  55. data/lib/spec/rails/extensions/action_controller/test_response.rb +21 -0
  56. data/lib/spec/rails/extensions/action_view/base.rb +33 -0
  57. data/lib/spec/rails/extensions/active_record/base.rb +43 -0
  58. data/lib/spec/rails/extensions/active_support/test_case.rb +7 -0
  59. data/lib/spec/rails/extensions/spec/matchers/have.rb +23 -0
  60. data/lib/spec/rails/extensions/spec/runner/configuration.rb +48 -0
  61. data/lib/spec/rails/interop/testcase.rb +14 -0
  62. data/lib/spec/rails/matchers.rb +40 -0
  63. data/lib/spec/rails/matchers/ar_be_valid.rb +44 -0
  64. data/lib/spec/rails/matchers/assert_select.rb +131 -0
  65. data/lib/spec/rails/matchers/change.rb +11 -0
  66. data/lib/spec/rails/matchers/have_text.rb +57 -0
  67. data/lib/spec/rails/matchers/include_text.rb +54 -0
  68. data/lib/spec/rails/matchers/redirect_to.rb +126 -0
  69. data/lib/spec/rails/matchers/render_template.rb +114 -0
  70. data/lib/spec/rails/mocks.rb +135 -0
  71. data/lib/spec/rails/spec_server.rb +97 -0
  72. data/lib/spec/rails/story_adapter.rb +79 -0
  73. data/lib/spec/rails/version.rb +16 -0
  74. data/rspec-rails.gemspec +39 -0
  75. data/spec/autotest/mappings_spec.rb +36 -0
  76. data/spec/rails_suite.rb +7 -0
  77. data/spec/resources/controllers/action_view_base_spec_controller.rb +2 -0
  78. data/spec/resources/controllers/application.rb +9 -0
  79. data/spec/resources/controllers/controller_spec_controller.rb +116 -0
  80. data/spec/resources/controllers/redirect_spec_controller.rb +70 -0
  81. data/spec/resources/controllers/render_spec_controller.rb +30 -0
  82. data/spec/resources/controllers/rjs_spec_controller.rb +58 -0
  83. data/spec/resources/helpers/addition_helper.rb +5 -0
  84. data/spec/resources/helpers/explicit_helper.rb +46 -0
  85. data/spec/resources/helpers/more_explicit_helper.rb +5 -0
  86. data/spec/resources/helpers/plugin_application_helper.rb +6 -0
  87. data/spec/resources/helpers/view_spec_helper.rb +13 -0
  88. data/spec/resources/models/animal.rb +4 -0
  89. data/spec/resources/models/person.rb +18 -0
  90. data/spec/resources/models/thing.rb +3 -0
  91. data/spec/resources/views/controller_spec/_partial.rhtml +0 -0
  92. data/spec/resources/views/controller_spec/action_setting_flash_after_session_reset.rhtml +1 -0
  93. data/spec/resources/views/controller_spec/action_setting_flash_before_session_reset.rhtml +1 -0
  94. data/spec/resources/views/controller_spec/action_setting_the_assigns_hash.rhtml +0 -0
  95. data/spec/resources/views/controller_spec/action_with_errors_in_template.rhtml +1 -0
  96. data/spec/resources/views/controller_spec/action_with_template.rhtml +1 -0
  97. data/spec/resources/views/layouts/application.rhtml +0 -0
  98. data/spec/resources/views/layouts/simple.rhtml +0 -0
  99. data/spec/resources/views/objects/_object.html.erb +1 -0
  100. data/spec/resources/views/render_spec/_a_partial.rhtml +0 -0
  101. data/spec/resources/views/render_spec/action_with_alternate_layout.rhtml +0 -0
  102. data/spec/resources/views/render_spec/some_action.html.erb +0 -0
  103. data/spec/resources/views/render_spec/some_action.js.rjs +1 -0
  104. data/spec/resources/views/render_spec/some_action.rjs +1 -0
  105. data/spec/resources/views/rjs_spec/_replacement_partial.rhtml +1 -0
  106. data/spec/resources/views/rjs_spec/hide_div.rjs +1 -0
  107. data/spec/resources/views/rjs_spec/hide_page_element.rjs +1 -0
  108. data/spec/resources/views/rjs_spec/insert_html.rjs +1 -0
  109. data/spec/resources/views/rjs_spec/replace.rjs +1 -0
  110. data/spec/resources/views/rjs_spec/replace_html.rjs +1 -0
  111. data/spec/resources/views/rjs_spec/replace_html_with_partial.rjs +1 -0
  112. data/spec/resources/views/rjs_spec/visual_effect.rjs +1 -0
  113. data/spec/resources/views/rjs_spec/visual_toggle_effect.rjs +1 -0
  114. data/spec/resources/views/tag_spec/no_tags.rhtml +1 -0
  115. data/spec/resources/views/tag_spec/single_div_with_no_attributes.rhtml +1 -0
  116. data/spec/resources/views/tag_spec/single_div_with_one_attribute.rhtml +1 -0
  117. data/spec/resources/views/view_spec/_partial.rhtml +2 -0
  118. data/spec/resources/views/view_spec/_partial_used_twice.rhtml +0 -0
  119. data/spec/resources/views/view_spec/_partial_with_local_variable.rhtml +1 -0
  120. data/spec/resources/views/view_spec/_partial_with_sub_partial.rhtml +1 -0
  121. data/spec/resources/views/view_spec/_spacer.rhtml +1 -0
  122. data/spec/resources/views/view_spec/accessor.rhtml +5 -0
  123. data/spec/resources/views/view_spec/block_helper.rhtml +3 -0
  124. data/spec/resources/views/view_spec/entry_form.rhtml +2 -0
  125. data/spec/resources/views/view_spec/explicit_helper.rhtml +2 -0
  126. data/spec/resources/views/view_spec/foo/show.rhtml +1 -0
  127. data/spec/resources/views/view_spec/implicit_helper.rhtml +2 -0
  128. data/spec/resources/views/view_spec/multiple_helpers.rhtml +3 -0
  129. data/spec/resources/views/view_spec/path_params.html.erb +1 -0
  130. data/spec/resources/views/view_spec/should_not_receive.rhtml +3 -0
  131. data/spec/resources/views/view_spec/template_with_partial.rhtml +5 -0
  132. data/spec/resources/views/view_spec/template_with_partial_using_collection.rhtml +3 -0
  133. data/spec/resources/views/view_spec/template_with_partial_with_array.rhtml +1 -0
  134. data/spec/spec/rails/example/assigns_hash_proxy_spec.rb +109 -0
  135. data/spec/spec/rails/example/configuration_spec.rb +65 -0
  136. data/spec/spec/rails/example/controller_example_group_spec.rb +275 -0
  137. data/spec/spec/rails/example/controller_isolation_spec.rb +56 -0
  138. data/spec/spec/rails/example/cookies_proxy_spec.rb +87 -0
  139. data/spec/spec/rails/example/error_handling_spec.rb +90 -0
  140. data/spec/spec/rails/example/example_group_factory_spec.rb +112 -0
  141. data/spec/spec/rails/example/helper_example_group_spec.rb +206 -0
  142. data/spec/spec/rails/example/model_example_group_spec.rb +20 -0
  143. data/spec/spec/rails/example/test_unit_assertion_accessibility_spec.rb +33 -0
  144. data/spec/spec/rails/example/view_example_group_spec.rb +335 -0
  145. data/spec/spec/rails/extensions/action_view_base_spec.rb +48 -0
  146. data/spec/spec/rails/extensions/active_record_spec.rb +14 -0
  147. data/spec/spec/rails/interop/testcase_spec.rb +70 -0
  148. data/spec/spec/rails/matchers/ar_be_valid_spec.rb +45 -0
  149. data/spec/spec/rails/matchers/assert_select_spec.rb +811 -0
  150. data/spec/spec/rails/matchers/errors_on_spec.rb +25 -0
  151. data/spec/spec/rails/matchers/have_text_spec.rb +70 -0
  152. data/spec/spec/rails/matchers/include_text_spec.rb +62 -0
  153. data/spec/spec/rails/matchers/redirect_to_spec.rb +253 -0
  154. data/spec/spec/rails/matchers/render_template_spec.rb +183 -0
  155. data/spec/spec/rails/matchers/should_change_spec.rb +15 -0
  156. data/spec/spec/rails/mocks/ar_classes.rb +10 -0
  157. data/spec/spec/rails/mocks/mock_model_spec.rb +106 -0
  158. data/spec/spec/rails/mocks/stub_model_spec.rb +80 -0
  159. data/spec/spec/rails/sample_modified_fixture.rb +8 -0
  160. data/spec/spec/rails/sample_spec.rb +8 -0
  161. data/spec/spec/rails/spec_server_spec.rb +107 -0
  162. data/spec/spec/rails/spec_spec.rb +11 -0
  163. data/spec/spec_helper.rb +78 -0
  164. metadata +262 -0
@@ -0,0 +1 @@
1
+ * delegate params_from to assert_recognizes
@@ -0,0 +1,52 @@
1
+ # Upgrade to rspec-rails-1.1.99.x
2
+
3
+ ## Supported Rails Versions
4
+
5
+ This release supports the following versions of rails:
6
+
7
+ * 2.0.5
8
+ * 2.1.2
9
+ * 2.2.2
10
+ * 2.3.0
11
+
12
+ ## update generated files
13
+
14
+ Be sure to run "script/generate rspec" and allow the following files to be overwritten:
15
+
16
+ * lib/tasks/rspec.rake
17
+ * script/spec
18
+ * script/spec_server
19
+
20
+ ## controller.use\_rails\_error\_handling! is deprecated
21
+
22
+ Use rescue\_action\_in\_public! instead. It comes directly from rails and does
23
+ exactly the same thing
24
+
25
+ ## route_for
26
+
27
+ After a change to edge rails broke our monkey-patched #route_for method, I
28
+ decided to just delegate to rails' #assert_generates method. For most cases,
29
+ this will not present a problem, but for some it might. You'll know if you
30
+ upgrade and see any newly failing, route-related examples. Here are the things
31
+ that you might need to change.
32
+
33
+ * Make sure IDs are strings
34
+
35
+ If you had :id => 1 before, you need to change that to :id => "1"
36
+
37
+ #old
38
+ route_for(:controller => 'things', :action => 'show', :id => 1).should == "/things/1"
39
+
40
+ #new
41
+ route_for(:controller => 'things', :action => 'show', :id => "1").should == "/things/1"
42
+
43
+ * Convert paths for non-get methods to hashes
44
+
45
+ If you had an example with a route that requires post, put, or delete, you'll
46
+ need to declare that explicitly.
47
+
48
+ #old
49
+ route_for(:controller => 'things', :action => 'create').should == "/things"
50
+
51
+ #new
52
+ route_for(:controller => 'things', :action => 'create').should == {:path => "/things", :method => :post}
@@ -0,0 +1,6 @@
1
+ When "I add a Person" do
2
+ Person.create!(:name => "Foo")
3
+ end
4
+ Then "there should be one person" do
5
+ Person.count.should == 1
6
+ end
@@ -0,0 +1,13 @@
1
+ # Sets up the Rails environment for Cucumber
2
+ ENV["RAILS_ENV"] = "test"
3
+ require File.expand_path(File.dirname(__FILE__) + '/../../../../../config/environment')
4
+ require 'cucumber/rails/world'
5
+ Cucumber::Rails.use_transactional_fixtures
6
+
7
+ # require 'webrat/rails'
8
+
9
+ # Comment out the next two lines if you're not using RSpec's matchers (should / should_not) in your steps.
10
+ require 'cucumber/rails/rspec'
11
+ # require 'webrat/rspec-rails'
12
+
13
+ require File.join(File.dirname(__FILE__), "/../../spec/resources/models/person")
@@ -0,0 +1,16 @@
1
+ Story: transactions should rollback in plain text
2
+ As an RSpec/Rails Story author
3
+ I want transactions to roll back between scenarios in plain text
4
+ So that I can have confidence in the state of the database
5
+
6
+ Scenario: add one Person
7
+ When I add a Person
8
+ Then there should be one person
9
+
10
+ Scenario: add one Person for the second time
11
+ When I add a Person
12
+ Then there should be one person
13
+
14
+ Scenario: add yet another person
15
+ When I add a Person
16
+ Then there should be one person
@@ -0,0 +1 @@
1
+ Please refer to the CHANGES file for RSpec's core
@@ -0,0 +1,37 @@
1
+ require 'rbconfig'
2
+
3
+ # This generator bootstraps a Rails project for use with RSpec
4
+ class RspecGenerator < Rails::Generator::Base
5
+ DEFAULT_SHEBANG = File.join(Config::CONFIG['bindir'],
6
+ Config::CONFIG['ruby_install_name'])
7
+
8
+ def initialize(runtime_args, runtime_options = {})
9
+ Dir.mkdir('lib/tasks') unless File.directory?('lib/tasks')
10
+ super
11
+ end
12
+
13
+ def manifest
14
+ record do |m|
15
+ script_options = { :chmod => 0755, :shebang => options[:shebang] == DEFAULT_SHEBANG ? nil : options[:shebang] }
16
+
17
+ m.directory 'lib/tasks'
18
+ m.file 'rspec.rake', 'lib/tasks/rspec.rake'
19
+
20
+ m.file 'script/autospec', 'script/autospec', script_options
21
+ m.file 'script/spec', 'script/spec', script_options
22
+ m.file 'script/spec_server', 'script/spec_server', script_options
23
+
24
+ m.directory 'spec'
25
+ m.file 'rcov.opts', 'spec/rcov.opts'
26
+ m.file 'spec.opts', 'spec/spec.opts'
27
+ m.template 'spec_helper.rb', 'spec/spec_helper.rb'
28
+ end
29
+ end
30
+
31
+ protected
32
+
33
+ def banner
34
+ "Usage: #{$0} rspec"
35
+ end
36
+
37
+ end
@@ -0,0 +1,2 @@
1
+ --exclude "spec/*,gems/*"
2
+ --rails
@@ -0,0 +1,177 @@
1
+ rspec_gem_dir = nil
2
+ Dir["#{RAILS_ROOT}/vendor/gems/*"].each do |subdir|
3
+ rspec_gem_dir = subdir if subdir.gsub("#{RAILS_ROOT}/vendor/gems/","") =~ /^(\w+-)?rspec-(\d+)/ && File.exist?("#{subdir}/lib/spec/rake/spectask.rb")
4
+ end
5
+ rspec_plugin_dir = File.expand_path(File.dirname(__FILE__) + '/../../vendor/plugins/rspec')
6
+
7
+ if rspec_gem_dir && (test ?d, rspec_plugin_dir)
8
+ raise "\n#{'*'*50}\nYou have rspec installed in both vendor/gems and vendor/plugins\nPlease pick one and dispose of the other.\n#{'*'*50}\n\n"
9
+ end
10
+
11
+ if rspec_gem_dir
12
+ $LOAD_PATH.unshift("#{rspec_gem_dir}/lib")
13
+ elsif File.exist?(rspec_plugin_dir)
14
+ $LOAD_PATH.unshift("#{rspec_plugin_dir}/lib")
15
+ end
16
+
17
+ # Don't load rspec if running "rake gems:*"
18
+ unless ARGV.any? {|a| a =~ /^gems/}
19
+
20
+ begin
21
+ require 'spec/rake/spectask'
22
+ rescue MissingSourceFile
23
+ module Spec
24
+ module Rake
25
+ class SpecTask
26
+ def initialize(name)
27
+ task name do
28
+ # if rspec-rails is a configured gem, this will output helpful material and exit ...
29
+ require File.expand_path(File.dirname(__FILE__) + "/../../config/environment")
30
+
31
+ # ... otherwise, do this:
32
+ raise <<-MSG
33
+
34
+ #{"*" * 80}
35
+ * You are trying to run an rspec rake task defined in
36
+ * #{__FILE__},
37
+ * but rspec can not be found in vendor/gems, vendor/plugins or system gems.
38
+ #{"*" * 80}
39
+ MSG
40
+ end
41
+ end
42
+ end
43
+ end
44
+ end
45
+ end
46
+
47
+ Rake.application.instance_variable_get('@tasks').delete('default')
48
+
49
+ spec_prereq = File.exist?(File.join(RAILS_ROOT, 'config', 'database.yml')) ? "db:test:prepare" : :noop
50
+ task :noop do
51
+ end
52
+
53
+ task :default => :spec
54
+ task :stats => "spec:statsetup"
55
+
56
+ desc "Run all specs in spec directory (excluding plugin specs)"
57
+ Spec::Rake::SpecTask.new(:spec => spec_prereq) do |t|
58
+ t.spec_opts = ['--options', "\"#{RAILS_ROOT}/spec/spec.opts\""]
59
+ t.spec_files = FileList['spec/**/*/*_spec.rb']
60
+ end
61
+
62
+ namespace :spec do
63
+ desc "Run all specs in spec directory with RCov (excluding plugin specs)"
64
+ Spec::Rake::SpecTask.new(:rcov) do |t|
65
+ t.spec_opts = ['--options', "\"#{RAILS_ROOT}/spec/spec.opts\""]
66
+ t.spec_files = FileList['spec/**/*/*_spec.rb']
67
+ t.rcov = true
68
+ t.rcov_opts = lambda do
69
+ IO.readlines("#{RAILS_ROOT}/spec/rcov.opts").map {|l| l.chomp.split " "}.flatten
70
+ end
71
+ end
72
+
73
+ desc "Print Specdoc for all specs (excluding plugin specs)"
74
+ Spec::Rake::SpecTask.new(:doc) do |t|
75
+ t.spec_opts = ["--format", "specdoc", "--dry-run"]
76
+ t.spec_files = FileList['spec/**/*/*_spec.rb']
77
+ end
78
+
79
+ desc "Print Specdoc for all plugin examples"
80
+ Spec::Rake::SpecTask.new(:plugin_doc) do |t|
81
+ t.spec_opts = ["--format", "specdoc", "--dry-run"]
82
+ t.spec_files = FileList['vendor/plugins/**/spec/**/*/*_spec.rb'].exclude('vendor/plugins/rspec/*')
83
+ end
84
+
85
+ [:models, :controllers, :views, :helpers, :lib].each do |sub|
86
+ desc "Run the code examples in spec/#{sub}"
87
+ Spec::Rake::SpecTask.new(sub => spec_prereq) do |t|
88
+ t.spec_opts = ['--options', "\"#{RAILS_ROOT}/spec/spec.opts\""]
89
+ t.spec_files = FileList["spec/#{sub}/**/*_spec.rb"]
90
+ end
91
+ end
92
+
93
+ desc "Run the code examples in vendor/plugins (except RSpec's own)"
94
+ Spec::Rake::SpecTask.new(:plugins => spec_prereq) do |t|
95
+ t.spec_opts = ['--options', "\"#{RAILS_ROOT}/spec/spec.opts\""]
96
+ t.spec_files = FileList['vendor/plugins/**/spec/**/*/*_spec.rb'].exclude('vendor/plugins/rspec/*').exclude("vendor/plugins/rspec-rails/*")
97
+ end
98
+
99
+ namespace :plugins do
100
+ desc "Runs the examples for rspec_on_rails"
101
+ Spec::Rake::SpecTask.new(:rspec_on_rails) do |t|
102
+ t.spec_opts = ['--options', "\"#{RAILS_ROOT}/spec/spec.opts\""]
103
+ t.spec_files = FileList['vendor/plugins/rspec-rails/spec/**/*/*_spec.rb']
104
+ end
105
+ end
106
+
107
+ # Setup specs for stats
108
+ task :statsetup do
109
+ require 'code_statistics'
110
+ ::STATS_DIRECTORIES << %w(Model\ specs spec/models) if File.exist?('spec/models')
111
+ ::STATS_DIRECTORIES << %w(View\ specs spec/views) if File.exist?('spec/views')
112
+ ::STATS_DIRECTORIES << %w(Controller\ specs spec/controllers) if File.exist?('spec/controllers')
113
+ ::STATS_DIRECTORIES << %w(Helper\ specs spec/helpers) if File.exist?('spec/helpers')
114
+ ::STATS_DIRECTORIES << %w(Library\ specs spec/lib) if File.exist?('spec/lib')
115
+ ::CodeStatistics::TEST_TYPES << "Model specs" if File.exist?('spec/models')
116
+ ::CodeStatistics::TEST_TYPES << "View specs" if File.exist?('spec/views')
117
+ ::CodeStatistics::TEST_TYPES << "Controller specs" if File.exist?('spec/controllers')
118
+ ::CodeStatistics::TEST_TYPES << "Helper specs" if File.exist?('spec/helpers')
119
+ ::CodeStatistics::TEST_TYPES << "Library specs" if File.exist?('spec/lib')
120
+ ::STATS_DIRECTORIES.delete_if {|a| a[0] =~ /test/}
121
+ end
122
+
123
+ namespace :db do
124
+ namespace :fixtures do
125
+ desc "Load fixtures (from spec/fixtures) into the current environment's database. Load specific fixtures using FIXTURES=x,y. Load from subdirectory in test/fixtures using FIXTURES_DIR=z."
126
+ task :load => :environment do
127
+ ActiveRecord::Base.establish_connection(Rails.env)
128
+ base_dir = File.join(Rails.root, 'spec', 'fixtures')
129
+ fixtures_dir = ENV['FIXTURES_DIR'] ? File.join(base_dir, ENV['FIXTURES_DIR']) : base_dir
130
+
131
+ (ENV['FIXTURES'] ? ENV['FIXTURES'].split(/,/).map {|f| File.join(fixtures_dir, f) } : Dir.glob(File.join(fixtures_dir, '*.{yml,csv}'))).each do |fixture_file|
132
+ Fixtures.create_fixtures(File.dirname(fixture_file), File.basename(fixture_file, '.*'))
133
+ end
134
+ end
135
+ end
136
+ end
137
+
138
+ namespace :server do
139
+ daemonized_server_pid = File.expand_path("#{RAILS_ROOT}/tmp/spec_server.pid")
140
+
141
+ desc "start spec_server."
142
+ task :start do
143
+ if File.exist?(daemonized_server_pid)
144
+ $stderr.puts "spec_server is already running."
145
+ else
146
+ $stderr.puts %Q{Starting up spec_server ...}
147
+ FileUtils.mkdir('tmp') unless test ?d, 'tmp'
148
+ system("ruby", "script/spec_server", "--daemon", "--pid", daemonized_server_pid)
149
+ end
150
+ end
151
+
152
+ desc "stop spec_server."
153
+ task :stop do
154
+ unless File.exist?(daemonized_server_pid)
155
+ $stderr.puts "No server running."
156
+ else
157
+ $stderr.puts "Shutting down spec_server ..."
158
+ system("kill", "-s", "TERM", File.read(daemonized_server_pid).strip) &&
159
+ File.delete(daemonized_server_pid)
160
+ end
161
+ end
162
+
163
+ desc "restart spec_server."
164
+ task :restart => [:stop, :start]
165
+
166
+ desc "check if spec server is running"
167
+ task :status do
168
+ if File.exist?(daemonized_server_pid)
169
+ $stderr.puts %Q{spec_server is running (PID: #{File.read(daemonized_server_pid).gsub("\n","")})}
170
+ else
171
+ $stderr.puts "No server running."
172
+ end
173
+ end
174
+ end
175
+ end
176
+
177
+ end
@@ -0,0 +1,5 @@
1
+ #!/usr/bin/env ruby
2
+ ENV['RSPEC'] = 'true' # allows autotest to discover rspec
3
+ ENV['AUTOTEST'] = 'true' # allows autotest to run w/ color on linux
4
+ system((RUBY_PLATFORM =~ /mswin|mingw/ ? 'autotest.bat' : 'autotest'), *ARGV) ||
5
+ $stderr.puts("Unable to find autotest. Please install ZenTest or fix your PATH")
@@ -0,0 +1,4 @@
1
+ #!/usr/bin/env ruby
2
+ $LOAD_PATH.unshift(File.expand_path(File.dirname(__FILE__) + "/../vendor/plugins/rspec/lib"))
3
+ require 'spec'
4
+ exit ::Spec::Runner::CommandLine.run
@@ -0,0 +1,37 @@
1
+ #!/usr/bin/env ruby
2
+ $LOAD_PATH.unshift File.dirname(__FILE__) + '/../vendor/plugins/rspec-rails/lib' # For rspec installed as plugin
3
+ require 'optparse'
4
+ require 'spec/rails/spec_server'
5
+
6
+ puts "Loading Rails environment"
7
+
8
+ ENV["RAILS_ENV"] = "test"
9
+ require File.expand_path(File.dirname(__FILE__) + "/../config/environment")
10
+
11
+ if Rails::VERSION::STRING >= '2.2' && Rails.configuration.cache_classes
12
+ warn <<-MESSAGE
13
+
14
+ #{'*'*50}
15
+
16
+ spec_server won't reload your classes if config.cache_classes
17
+ is set to true. Please modify environment/test.rb:
18
+
19
+ config.cache_classes = false
20
+
21
+ #{'*'*50}
22
+ MESSAGE
23
+ end
24
+
25
+ options = Hash.new
26
+ parser = OptionParser.new
27
+ parser.on("-d", "--daemon") {|ignore| options[:daemon] = true }
28
+ parser.on("-p", "--pid PIDFILE"){|pid| options[:pid] = pid }
29
+ parser.parse!(ARGV)
30
+
31
+ if options[:daemon]
32
+ ::Spec::Rails::SpecServer.daemonize(options[:pid])
33
+ else
34
+ ::Spec::Rails::SpecServer.run
35
+ end
36
+
37
+ puts "Ready"
@@ -0,0 +1,4 @@
1
+ --colour
2
+ --format progress
3
+ --loadby mtime
4
+ --reverse
@@ -0,0 +1,47 @@
1
+ # This file is copied to ~/spec when you run 'ruby script/generate rspec'
2
+ # from the project root directory.
3
+ ENV["RAILS_ENV"] = "test"
4
+ require File.expand_path(File.dirname(__FILE__) + "/../config/environment")
5
+ require 'spec/autorun'
6
+ require 'spec/rails'
7
+
8
+ Spec::Runner.configure do |config|
9
+ # If you're not using ActiveRecord you should remove these
10
+ # lines, delete config/database.yml and disable :active_record
11
+ # in your config/boot.rb
12
+ config.use_transactional_fixtures = true
13
+ config.use_instantiated_fixtures = false
14
+ config.fixture_path = RAILS_ROOT + '/spec/fixtures/'
15
+
16
+ # == Fixtures
17
+ #
18
+ # You can declare fixtures for each example_group like this:
19
+ # describe "...." do
20
+ # fixtures :table_a, :table_b
21
+ #
22
+ # Alternatively, if you prefer to declare them only once, you can
23
+ # do so right here. Just uncomment the next line and replace the fixture
24
+ # names with your fixtures.
25
+ #
26
+ # config.global_fixtures = :table_a, :table_b
27
+ #
28
+ # If you declare global fixtures, be aware that they will be declared
29
+ # for all of your examples, even those that don't use them.
30
+ #
31
+ # You can also declare which fixtures to use (for example fixtures for test/fixtures):
32
+ #
33
+ # config.fixture_path = RAILS_ROOT + '/spec/fixtures/'
34
+ #
35
+ # == Mock Framework
36
+ #
37
+ # RSpec uses it's own mocking framework by default. If you prefer to
38
+ # use mocha, flexmock or RR, uncomment the appropriate line:
39
+ #
40
+ # config.mock_with :mocha
41
+ # config.mock_with :flexmock
42
+ # config.mock_with :rr
43
+ #
44
+ # == Notes
45
+ #
46
+ # For more information take a look at Spec::Runner::Configuration and Spec::Runner
47
+ end
@@ -0,0 +1,33 @@
1
+ Description:
2
+ The rspec_controller generator creates stub specs and files for a new
3
+ controller and its views.
4
+
5
+ The generator takes a controller name and a list of views as arguments.
6
+ The controller name may be given in CamelCase or under_score and should
7
+ not be suffixed with 'Controller'. To create a controller within a
8
+ module, specify the controller name as 'module/controller'.
9
+
10
+ The generator creates stubs for a controller (and spec), a view (and spec)
11
+ for each view in the argument list, plus a helper.
12
+
13
+ Example:
14
+ ./script/generate rspec_controller dog bark fetch
15
+ ...
16
+ create spec/controllers/dog_controller_spec.rb
17
+ create app/controllers/dog_controller.rb
18
+ create app/helpers/dog_helper.rb
19
+ create spec/views/dog/bark_view_spec.rb
20
+ create app/views/dog/bark.rhtml
21
+ create spec/views/dog/fetch_view_spec.rb
22
+ create app/views/dog/fetch.rhtml
23
+
24
+ Modules Example:
25
+ ./script/generate rspec_controller 'pets/dog' bark fetch
26
+ ...
27
+ create spec/controllers/pets/dog_controller_spec.rb
28
+ create app/controllers/pets/dog_controller.rb
29
+ create app/helpers/pets/dog_helper.rb
30
+ create spec/views/pets/dog/bark_view_spec.rb
31
+ create app/views/pets/dog/bark.rhtml
32
+ create spec/views/pets/dog/fetch_view_spec.rb
33
+ create app/views/pets/dog/fetch.rhtml