focused_controller 0.1.0

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 (87) hide show
  1. data/.gitignore +5 -0
  2. data/.travis.yml +15 -0
  3. data/Appraisals +11 -0
  4. data/Gemfile +4 -0
  5. data/README.md +1 -0
  6. data/Rakefile +21 -0
  7. data/focused_controller.gemspec +30 -0
  8. data/gemfiles/rails-3-0.gemfile +7 -0
  9. data/gemfiles/rails-3-1.gemfile +7 -0
  10. data/gemfiles/rails-3-2.gemfile +7 -0
  11. data/lib/focused_controller.rb +4 -0
  12. data/lib/focused_controller/action_name.rb +6 -0
  13. data/lib/focused_controller/functional_test_helper.rb +25 -0
  14. data/lib/focused_controller/mixin.rb +44 -0
  15. data/lib/focused_controller/route.rb +15 -0
  16. data/lib/focused_controller/route_mapper.rb +58 -0
  17. data/lib/focused_controller/rspec_controller_class.rb +15 -0
  18. data/lib/focused_controller/rspec_functional_helper.rb +25 -0
  19. data/lib/focused_controller/rspec_helper.rb +42 -0
  20. data/lib/focused_controller/test_helper.rb +183 -0
  21. data/lib/focused_controller/version.rb +3 -0
  22. data/test/acceptance/app_test.rb +156 -0
  23. data/test/app/.gitignore +15 -0
  24. data/test/app/Gemfile +6 -0
  25. data/test/app/README.rdoc +261 -0
  26. data/test/app/Rakefile +7 -0
  27. data/test/app/app/controllers/application_controller.rb +6 -0
  28. data/test/app/app/controllers/posts_controller.rb +60 -0
  29. data/test/app/app/models/.gitkeep +0 -0
  30. data/test/app/app/models/post.rb +88 -0
  31. data/test/app/app/views/layouts/application.html.erb +13 -0
  32. data/test/app/app/views/posts/_form.html.erb +31 -0
  33. data/test/app/app/views/posts/edit.html.erb +6 -0
  34. data/test/app/app/views/posts/index.html.erb +23 -0
  35. data/test/app/app/views/posts/new.html.erb +5 -0
  36. data/test/app/app/views/posts/show.html.erb +8 -0
  37. data/test/app/config.ru +4 -0
  38. data/test/app/config/application.rb +16 -0
  39. data/test/app/config/boot.rb +6 -0
  40. data/test/app/config/environment.rb +5 -0
  41. data/test/app/config/environments/development.rb +21 -0
  42. data/test/app/config/environments/test.rb +29 -0
  43. data/test/app/config/initializers/backtrace_silencers.rb +7 -0
  44. data/test/app/config/initializers/inflections.rb +15 -0
  45. data/test/app/config/initializers/mime_types.rb +5 -0
  46. data/test/app/config/initializers/secret_token.rb +7 -0
  47. data/test/app/config/initializers/session_store.rb +8 -0
  48. data/test/app/config/locales/en.yml +5 -0
  49. data/test/app/config/routes.rb +62 -0
  50. data/test/app/db/seeds.rb +7 -0
  51. data/test/app/doc/README_FOR_APP +2 -0
  52. data/test/app/lib/assets/.gitkeep +0 -0
  53. data/test/app/lib/tasks/.gitkeep +0 -0
  54. data/test/app/log/.gitkeep +0 -0
  55. data/test/app/public/404.html +26 -0
  56. data/test/app/public/422.html +26 -0
  57. data/test/app/public/500.html +25 -0
  58. data/test/app/public/favicon.ico +0 -0
  59. data/test/app/public/index.html +241 -0
  60. data/test/app/public/javascripts/application.js +9663 -0
  61. data/test/app/public/robots.txt +5 -0
  62. data/test/app/public/stylesheets/application.css +83 -0
  63. data/test/app/script/rails +6 -0
  64. data/test/app/spec/controllers/posts_controller_spec.rb +59 -0
  65. data/test/app/spec/isolated_spec_helper.rb +9 -0
  66. data/test/app/spec/spec_helper.rb +5 -0
  67. data/test/app/spec/unit/controllers/posts_controller_isolated_spec.rb +60 -0
  68. data/test/app/spec/unit/controllers/posts_controller_spec.rb +59 -0
  69. data/test/app/test/functional/.gitkeep +0 -0
  70. data/test/app/test/functional/posts_controller_test.rb +67 -0
  71. data/test/app/test/isolated_test_helper.rb +10 -0
  72. data/test/app/test/test_helper.rb +6 -0
  73. data/test/app/test/unit/.gitkeep +0 -0
  74. data/test/app/test/unit/controllers/posts_controller_isolated_test.rb +69 -0
  75. data/test/app/test/unit/controllers/posts_controller_test.rb +67 -0
  76. data/test/app/vendor/assets/javascripts/.gitkeep +0 -0
  77. data/test/app/vendor/assets/stylesheets/.gitkeep +0 -0
  78. data/test/app/vendor/plugins/.gitkeep +0 -0
  79. data/test/helper.rb +33 -0
  80. data/test/unit/functional_test_helper_test.rb +65 -0
  81. data/test/unit/mixin_test.rb +70 -0
  82. data/test/unit/route_mapper_test.rb +73 -0
  83. data/test/unit/route_test.rb +39 -0
  84. data/test/unit/rspec_functional_helper.rb +42 -0
  85. data/test/unit/rspec_helper_test.rb +91 -0
  86. data/test/unit/test_helper_test.rb +235 -0
  87. metadata +285 -0
@@ -0,0 +1,235 @@
1
+ require 'helper'
2
+ require 'focused_controller/test_helper'
3
+ require 'action_controller'
4
+
5
+ module FocusedController
6
+ module TestHelper
7
+ module FakePostsController
8
+ class Action < ActionController::Base
9
+ end
10
+
11
+ class Index < Action
12
+ def run
13
+ if params[:omg]
14
+ "omg"
15
+ elsif params[:set_session]
16
+ session[:foo] = 'omg'
17
+ elsif params[:set_flash]
18
+ flash[:foo] = 'omg'
19
+ elsif params[:set_cookie]
20
+ cookies[:foo] = 'omg'
21
+ end
22
+ end
23
+
24
+ def self._routes
25
+ OpenStruct.new(
26
+ :named_routes => OpenStruct.new(
27
+ :module => Module.new do
28
+ def foo_path
29
+ '/foo'
30
+ end
31
+ end
32
+ )
33
+ )
34
+ end
35
+ end
36
+
37
+ class Show < Action
38
+ def self._routes
39
+ OpenStruct.new(
40
+ :named_routes => OpenStruct.new(
41
+ :module => Module.new do
42
+ def bar_path
43
+ '/bar'
44
+ end
45
+ end
46
+ )
47
+ )
48
+ end
49
+ end
50
+
51
+ class TestCase < ActiveSupport::TestCase
52
+ include FocusedController::TestHelper
53
+
54
+ def initialize(method_name = :foo)
55
+ super
56
+ @_result = OpenStruct.new
57
+ end
58
+ def foo; end
59
+ end
60
+
61
+ class IndexTest < TestCase
62
+ end
63
+
64
+ class ShowTest < TestCase
65
+ end
66
+
67
+ class OtherShowTest < TestCase
68
+ self.controller_class = Show
69
+ end
70
+
71
+ class OtherOtherShowTest < OtherShowTest
72
+ end
73
+ end
74
+
75
+ describe TestHelper do
76
+ it 'instantiates the correct controller' do
77
+ mappings = {
78
+ FakePostsController::IndexTest => FakePostsController::Index,
79
+ FakePostsController::ShowTest => FakePostsController::Show,
80
+ FakePostsController::OtherShowTest => FakePostsController::Show,
81
+ FakePostsController::OtherOtherShowTest => FakePostsController::Show
82
+ }
83
+
84
+ mappings.each do |test, action|
85
+ test.new.controller.is_a?(action).must_equal true
86
+ end
87
+ end
88
+
89
+ subject { FakePostsController::IndexTest.new }
90
+
91
+ def must_fail(&block)
92
+ block.must_raise ActiveSupport::TestCase::Assertion
93
+ end
94
+
95
+ def must_succeed(&block)
96
+ block.call
97
+ # this is just so the assertion is counted. the block will
98
+ # raise if it fails
99
+ assert_equal true, true
100
+ end
101
+
102
+ it 'supports assert_template :foo' do
103
+ subject.controller.render :foo
104
+ must_succeed { subject.assert_template :foo }
105
+ must_fail { subject.assert_template :bar }
106
+ end
107
+
108
+ it "supports assert_template 'foo'" do
109
+ subject.controller.render :foo
110
+ must_succeed { subject.assert_template 'foo' }
111
+ must_fail { subject.assert_template 'bar' }
112
+ end
113
+
114
+ it 'supports assert_response :success' do
115
+ must_succeed { subject.assert_response :success }
116
+ must_fail { subject.assert_response :error }
117
+
118
+ subject.controller.render 'foo'
119
+
120
+ must_succeed { subject.assert_response :success }
121
+ must_fail { subject.assert_response :error }
122
+ end
123
+
124
+ it 'supports assert_response :redirect' do
125
+ must_fail { subject.assert_response :redirect }
126
+
127
+ subject.controller.redirect_to 'foo'
128
+ must_succeed { subject.assert_response :redirect }
129
+ end
130
+
131
+ it 'supports assert_redirected_to' do
132
+ must_fail { subject.assert_redirected_to '/foo' }
133
+
134
+ subject.controller.redirect_to '/foo'
135
+
136
+ must_succeed { subject.assert_redirected_to '/foo' }
137
+ must_fail { subject.assert_redirected_to '/bar' }
138
+ end
139
+
140
+ it "responds to the controller's url helpers" do
141
+ subject.respond_to?(:foo_path).must_equal true
142
+ subject.respond_to?(:bar_path).must_equal false
143
+ subject.foo_path.must_equal '/foo'
144
+
145
+ other = FakePostsController::ShowTest.new
146
+ other.respond_to?(:foo_path).must_equal false
147
+ other.respond_to?(:bar_path).must_equal true
148
+ other.bar_path.must_equal '/bar'
149
+ end
150
+
151
+ it 'supports session' do
152
+ subject.req(:set_session => true)
153
+ subject.session[:foo].must_equal 'omg'
154
+ subject.session['foo'].must_equal 'omg'
155
+ end
156
+
157
+ it 'supports flash' do
158
+ subject.req(:set_flash => true)
159
+ subject.flash[:foo].must_equal 'omg'
160
+
161
+ # This is consistent with the behaviour of standard rails functional tests
162
+ subject.flash['foo'].must_equal nil
163
+ end
164
+
165
+ it 'supports cookies' do
166
+ subject.req(:set_cookie => true)
167
+ subject.cookies[:foo].must_equal 'omg'
168
+ end
169
+
170
+ describe "#req" do
171
+ it "sets params and calls the controller's #run" do
172
+ subject.req(:omg => true).must_equal 'omg'
173
+ end
174
+
175
+ it 'sets session' do
176
+ subject.req(nil, { :foo => 'bar' })
177
+ subject.session[:foo].must_equal 'bar'
178
+ end
179
+
180
+ it 'set flash' do
181
+ subject.req(nil, nil, { :foo => 'bar' })
182
+ subject.flash[:foo].must_equal 'bar'
183
+ end
184
+
185
+ it "doesn't overwrite existing params, session, or flash if new ones aren't provided" do
186
+ subject.controller.params[:param] = true
187
+ subject.controller.flash[:flash] = true
188
+ subject.controller.session[:session] = true
189
+
190
+ subject.req
191
+
192
+ subject.controller.params[:param].must_equal true
193
+ subject.controller.flash[:flash].must_equal true
194
+ subject.controller.session[:session].must_equal true
195
+
196
+ subject.req({})
197
+
198
+ subject.controller.params[:param].must_equal(nil)
199
+ end
200
+ end
201
+
202
+ describe 'url stubbing' do
203
+ before do
204
+ subject.stub_url :foo, :bar
205
+ end
206
+
207
+ it 'handles equality' do
208
+ foo, bar = Object.new, Object.new
209
+ StubbedURL.new(:foo_path, [foo]).must_equal StubbedURL.new(:foo_path, [foo])
210
+ StubbedURL.new(:foo_path, [foo, bar]).wont_equal StubbedURL.new(:foo_path, [foo])
211
+ StubbedURL.new(:foo_path, [bar]).wont_equal StubbedURL.new(:foo_path, [foo])
212
+ StubbedURL.new(:bar_path, [foo]).wont_equal StubbedURL.new(:foo_path, [foo])
213
+ end
214
+
215
+ it 'has a to_s' do
216
+ StubbedURL.new(:foo_path, ['omg', 'lol']).to_s.must_equal "foo_path(omg, lol)"
217
+ end
218
+
219
+ it 'creates a stub method on the test and controller instances' do
220
+ foo = Object.new
221
+ subject.foo_path(foo).must_equal StubbedURL.new(:foo_path, [foo])
222
+ subject.controller.foo_path(foo).must_equal StubbedURL.new(:foo_path, [foo])
223
+ subject.foo_url(foo).must_equal StubbedURL.new(:foo_url, [foo])
224
+ subject.controller.foo_url(foo).must_equal StubbedURL.new(:foo_url, [foo])
225
+ end
226
+
227
+ it 'works with a controller' do
228
+ foo = Object.new
229
+ subject.controller.redirect_to StubbedURL.new(:foo_path, [foo])
230
+ must_succeed { subject.assert_redirected_to StubbedURL.new(:foo_path, [foo]) }
231
+ end
232
+ end
233
+ end
234
+ end
235
+ end
metadata ADDED
@@ -0,0 +1,285 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: focused_controller
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.1.0
5
+ prerelease:
6
+ platform: ruby
7
+ authors:
8
+ - Jon Leighton
9
+ autorequire:
10
+ bindir: bin
11
+ cert_chain: []
12
+ date: 2012-02-22 00:00:00.000000000 Z
13
+ dependencies:
14
+ - !ruby/object:Gem::Dependency
15
+ name: actionpack
16
+ requirement: &9754840 !ruby/object:Gem::Requirement
17
+ none: false
18
+ requirements:
19
+ - - ~>
20
+ - !ruby/object:Gem::Version
21
+ version: '3.0'
22
+ type: :runtime
23
+ prerelease: false
24
+ version_requirements: *9754840
25
+ - !ruby/object:Gem::Dependency
26
+ name: minitest
27
+ requirement: &9754340 !ruby/object:Gem::Requirement
28
+ none: false
29
+ requirements:
30
+ - - ~>
31
+ - !ruby/object:Gem::Version
32
+ version: 2.11.2
33
+ type: :development
34
+ prerelease: false
35
+ version_requirements: *9754340
36
+ - !ruby/object:Gem::Dependency
37
+ name: capybara
38
+ requirement: &9753880 !ruby/object:Gem::Requirement
39
+ none: false
40
+ requirements:
41
+ - - ~>
42
+ - !ruby/object:Gem::Version
43
+ version: 1.1.2
44
+ type: :development
45
+ prerelease: false
46
+ version_requirements: *9753880
47
+ - !ruby/object:Gem::Dependency
48
+ name: capybara_minitest_spec
49
+ requirement: &9753420 !ruby/object:Gem::Requirement
50
+ none: false
51
+ requirements:
52
+ - - ~>
53
+ - !ruby/object:Gem::Version
54
+ version: 0.2.1
55
+ type: :development
56
+ prerelease: false
57
+ version_requirements: *9753420
58
+ - !ruby/object:Gem::Dependency
59
+ name: poltergeist
60
+ requirement: &9752960 !ruby/object:Gem::Requirement
61
+ none: false
62
+ requirements:
63
+ - - ~>
64
+ - !ruby/object:Gem::Version
65
+ version: 0.4.0
66
+ type: :development
67
+ prerelease: false
68
+ version_requirements: *9752960
69
+ - !ruby/object:Gem::Dependency
70
+ name: rspec
71
+ requirement: &9752500 !ruby/object:Gem::Requirement
72
+ none: false
73
+ requirements:
74
+ - - ~>
75
+ - !ruby/object:Gem::Version
76
+ version: 2.8.0
77
+ type: :development
78
+ prerelease: false
79
+ version_requirements: *9752500
80
+ - !ruby/object:Gem::Dependency
81
+ name: rspec-rails
82
+ requirement: &9752040 !ruby/object:Gem::Requirement
83
+ none: false
84
+ requirements:
85
+ - - ~>
86
+ - !ruby/object:Gem::Version
87
+ version: 2.8.0
88
+ type: :development
89
+ prerelease: false
90
+ version_requirements: *9752040
91
+ - !ruby/object:Gem::Dependency
92
+ name: appraisal
93
+ requirement: &9751580 !ruby/object:Gem::Requirement
94
+ none: false
95
+ requirements:
96
+ - - ~>
97
+ - !ruby/object:Gem::Version
98
+ version: 0.4.1
99
+ type: :development
100
+ prerelease: false
101
+ version_requirements: *9751580
102
+ description: Write Rails controllers that don't violate SRP
103
+ email:
104
+ - j@jonathanleighton.com
105
+ executables: []
106
+ extensions: []
107
+ extra_rdoc_files: []
108
+ files:
109
+ - .gitignore
110
+ - .travis.yml
111
+ - Appraisals
112
+ - Gemfile
113
+ - README.md
114
+ - Rakefile
115
+ - focused_controller.gemspec
116
+ - gemfiles/rails-3-0.gemfile
117
+ - gemfiles/rails-3-1.gemfile
118
+ - gemfiles/rails-3-2.gemfile
119
+ - lib/focused_controller.rb
120
+ - lib/focused_controller/action_name.rb
121
+ - lib/focused_controller/functional_test_helper.rb
122
+ - lib/focused_controller/mixin.rb
123
+ - lib/focused_controller/route.rb
124
+ - lib/focused_controller/route_mapper.rb
125
+ - lib/focused_controller/rspec_controller_class.rb
126
+ - lib/focused_controller/rspec_functional_helper.rb
127
+ - lib/focused_controller/rspec_helper.rb
128
+ - lib/focused_controller/test_helper.rb
129
+ - lib/focused_controller/version.rb
130
+ - test/acceptance/app_test.rb
131
+ - test/app/.gitignore
132
+ - test/app/Gemfile
133
+ - test/app/README.rdoc
134
+ - test/app/Rakefile
135
+ - test/app/app/controllers/application_controller.rb
136
+ - test/app/app/controllers/posts_controller.rb
137
+ - test/app/app/models/.gitkeep
138
+ - test/app/app/models/post.rb
139
+ - test/app/app/views/layouts/application.html.erb
140
+ - test/app/app/views/posts/_form.html.erb
141
+ - test/app/app/views/posts/edit.html.erb
142
+ - test/app/app/views/posts/index.html.erb
143
+ - test/app/app/views/posts/new.html.erb
144
+ - test/app/app/views/posts/show.html.erb
145
+ - test/app/config.ru
146
+ - test/app/config/application.rb
147
+ - test/app/config/boot.rb
148
+ - test/app/config/environment.rb
149
+ - test/app/config/environments/development.rb
150
+ - test/app/config/environments/test.rb
151
+ - test/app/config/initializers/backtrace_silencers.rb
152
+ - test/app/config/initializers/inflections.rb
153
+ - test/app/config/initializers/mime_types.rb
154
+ - test/app/config/initializers/secret_token.rb
155
+ - test/app/config/initializers/session_store.rb
156
+ - test/app/config/locales/en.yml
157
+ - test/app/config/routes.rb
158
+ - test/app/db/seeds.rb
159
+ - test/app/doc/README_FOR_APP
160
+ - test/app/lib/assets/.gitkeep
161
+ - test/app/lib/tasks/.gitkeep
162
+ - test/app/log/.gitkeep
163
+ - test/app/public/404.html
164
+ - test/app/public/422.html
165
+ - test/app/public/500.html
166
+ - test/app/public/favicon.ico
167
+ - test/app/public/index.html
168
+ - test/app/public/javascripts/application.js
169
+ - test/app/public/robots.txt
170
+ - test/app/public/stylesheets/application.css
171
+ - test/app/script/rails
172
+ - test/app/spec/controllers/posts_controller_spec.rb
173
+ - test/app/spec/isolated_spec_helper.rb
174
+ - test/app/spec/spec_helper.rb
175
+ - test/app/spec/unit/controllers/posts_controller_isolated_spec.rb
176
+ - test/app/spec/unit/controllers/posts_controller_spec.rb
177
+ - test/app/test/functional/.gitkeep
178
+ - test/app/test/functional/posts_controller_test.rb
179
+ - test/app/test/isolated_test_helper.rb
180
+ - test/app/test/test_helper.rb
181
+ - test/app/test/unit/.gitkeep
182
+ - test/app/test/unit/controllers/posts_controller_isolated_test.rb
183
+ - test/app/test/unit/controllers/posts_controller_test.rb
184
+ - test/app/vendor/assets/javascripts/.gitkeep
185
+ - test/app/vendor/assets/stylesheets/.gitkeep
186
+ - test/app/vendor/plugins/.gitkeep
187
+ - test/helper.rb
188
+ - test/unit/functional_test_helper_test.rb
189
+ - test/unit/mixin_test.rb
190
+ - test/unit/route_mapper_test.rb
191
+ - test/unit/route_test.rb
192
+ - test/unit/rspec_functional_helper.rb
193
+ - test/unit/rspec_helper_test.rb
194
+ - test/unit/test_helper_test.rb
195
+ homepage: http://github.com/jonleighton/focused_controller
196
+ licenses: []
197
+ post_install_message:
198
+ rdoc_options: []
199
+ require_paths:
200
+ - lib
201
+ required_ruby_version: !ruby/object:Gem::Requirement
202
+ none: false
203
+ requirements:
204
+ - - ! '>='
205
+ - !ruby/object:Gem::Version
206
+ version: '0'
207
+ required_rubygems_version: !ruby/object:Gem::Requirement
208
+ none: false
209
+ requirements:
210
+ - - ! '>='
211
+ - !ruby/object:Gem::Version
212
+ version: '0'
213
+ requirements: []
214
+ rubyforge_project: focused_controller
215
+ rubygems_version: 1.8.15
216
+ signing_key:
217
+ specification_version: 3
218
+ summary: Write Rails controllers that don't violate SRP
219
+ test_files:
220
+ - test/acceptance/app_test.rb
221
+ - test/app/.gitignore
222
+ - test/app/Gemfile
223
+ - test/app/README.rdoc
224
+ - test/app/Rakefile
225
+ - test/app/app/controllers/application_controller.rb
226
+ - test/app/app/controllers/posts_controller.rb
227
+ - test/app/app/models/.gitkeep
228
+ - test/app/app/models/post.rb
229
+ - test/app/app/views/layouts/application.html.erb
230
+ - test/app/app/views/posts/_form.html.erb
231
+ - test/app/app/views/posts/edit.html.erb
232
+ - test/app/app/views/posts/index.html.erb
233
+ - test/app/app/views/posts/new.html.erb
234
+ - test/app/app/views/posts/show.html.erb
235
+ - test/app/config.ru
236
+ - test/app/config/application.rb
237
+ - test/app/config/boot.rb
238
+ - test/app/config/environment.rb
239
+ - test/app/config/environments/development.rb
240
+ - test/app/config/environments/test.rb
241
+ - test/app/config/initializers/backtrace_silencers.rb
242
+ - test/app/config/initializers/inflections.rb
243
+ - test/app/config/initializers/mime_types.rb
244
+ - test/app/config/initializers/secret_token.rb
245
+ - test/app/config/initializers/session_store.rb
246
+ - test/app/config/locales/en.yml
247
+ - test/app/config/routes.rb
248
+ - test/app/db/seeds.rb
249
+ - test/app/doc/README_FOR_APP
250
+ - test/app/lib/assets/.gitkeep
251
+ - test/app/lib/tasks/.gitkeep
252
+ - test/app/log/.gitkeep
253
+ - test/app/public/404.html
254
+ - test/app/public/422.html
255
+ - test/app/public/500.html
256
+ - test/app/public/favicon.ico
257
+ - test/app/public/index.html
258
+ - test/app/public/javascripts/application.js
259
+ - test/app/public/robots.txt
260
+ - test/app/public/stylesheets/application.css
261
+ - test/app/script/rails
262
+ - test/app/spec/controllers/posts_controller_spec.rb
263
+ - test/app/spec/isolated_spec_helper.rb
264
+ - test/app/spec/spec_helper.rb
265
+ - test/app/spec/unit/controllers/posts_controller_isolated_spec.rb
266
+ - test/app/spec/unit/controllers/posts_controller_spec.rb
267
+ - test/app/test/functional/.gitkeep
268
+ - test/app/test/functional/posts_controller_test.rb
269
+ - test/app/test/isolated_test_helper.rb
270
+ - test/app/test/test_helper.rb
271
+ - test/app/test/unit/.gitkeep
272
+ - test/app/test/unit/controllers/posts_controller_isolated_test.rb
273
+ - test/app/test/unit/controllers/posts_controller_test.rb
274
+ - test/app/vendor/assets/javascripts/.gitkeep
275
+ - test/app/vendor/assets/stylesheets/.gitkeep
276
+ - test/app/vendor/plugins/.gitkeep
277
+ - test/helper.rb
278
+ - test/unit/functional_test_helper_test.rb
279
+ - test/unit/mixin_test.rb
280
+ - test/unit/route_mapper_test.rb
281
+ - test/unit/route_test.rb
282
+ - test/unit/rspec_functional_helper.rb
283
+ - test/unit/rspec_helper_test.rb
284
+ - test/unit/test_helper_test.rb
285
+ has_rdoc: