rc_rails 2.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.
- data/.gitignore +7 -0
- data/CHANGELOG +355 -0
- data/Gemfile +5 -0
- data/Gemfile.lock.development +117 -0
- data/MIT-LICENSE +20 -0
- data/README.rdoc +71 -0
- data/Rakefile +33 -0
- data/Todo.txt +1 -0
- data/lib/rc_rails.rb +9 -0
- data/lib/resources_controller/actions.rb +147 -0
- data/lib/resources_controller/active_record/saved.rb +15 -0
- data/lib/resources_controller/helper.rb +123 -0
- data/lib/resources_controller/include_actions.rb +37 -0
- data/lib/resources_controller/named_route_helper.rb +154 -0
- data/lib/resources_controller/railtie.rb +14 -0
- data/lib/resources_controller/request_path_introspection.rb +83 -0
- data/lib/resources_controller/resource_methods.rb +32 -0
- data/lib/resources_controller/singleton_actions.rb +21 -0
- data/lib/resources_controller/specification.rb +119 -0
- data/lib/resources_controller/version.rb +3 -0
- data/lib/resources_controller.rb +849 -0
- data/resources_controller.gemspec +29 -0
- data/spec/app/database.yml +5 -0
- data/spec/app/views/accounts/show.html.erb +0 -0
- data/spec/app/views/addresses/edit.html.erb +0 -0
- data/spec/app/views/addresses/index.html.erb +0 -0
- data/spec/app/views/addresses/new.html.erb +0 -0
- data/spec/app/views/addresses/show.html.erb +0 -0
- data/spec/app/views/admin/forums/create.html.erb +0 -0
- data/spec/app/views/admin/forums/destroy.html.erb +0 -0
- data/spec/app/views/admin/forums/edit.html.erb +0 -0
- data/spec/app/views/admin/forums/index.html.erb +0 -0
- data/spec/app/views/admin/forums/new.html.erb +0 -0
- data/spec/app/views/admin/forums/show.html.erb +0 -0
- data/spec/app/views/admin/forums/update.html.erb +0 -0
- data/spec/app/views/comments/edit.html.erb +0 -0
- data/spec/app/views/comments/index.html.erb +0 -0
- data/spec/app/views/comments/new.html.erb +0 -0
- data/spec/app/views/comments/show.html.erb +0 -0
- data/spec/app/views/forum_posts/edit.html.erb +0 -0
- data/spec/app/views/forum_posts/index.html.erb +0 -0
- data/spec/app/views/forum_posts/new.html.erb +0 -0
- data/spec/app/views/forum_posts/show.html.erb +0 -0
- data/spec/app/views/forums/create.html.erb +0 -0
- data/spec/app/views/forums/destroy.html.erb +0 -0
- data/spec/app/views/forums/edit.html.erb +0 -0
- data/spec/app/views/forums/index.html.erb +0 -0
- data/spec/app/views/forums/new.html.erb +0 -0
- data/spec/app/views/forums/show.html.erb +0 -0
- data/spec/app/views/forums/update.html.erb +0 -0
- data/spec/app/views/infos/edit.html.erb +0 -0
- data/spec/app/views/infos/show.html.erb +0 -0
- data/spec/app/views/interests/index.html.erb +0 -0
- data/spec/app/views/interests/show.html.erb +0 -0
- data/spec/app/views/owners/edit.html.erb +0 -0
- data/spec/app/views/owners/new.html.erb +0 -0
- data/spec/app/views/owners/show.html.erb +0 -0
- data/spec/app/views/tags/index.html.erb +0 -0
- data/spec/app/views/tags/new.html.erb +0 -0
- data/spec/app/views/tags/show.html.erb +0 -0
- data/spec/app/views/users/edit.html.erb +0 -0
- data/spec/app/views/users/index.html.erb +0 -0
- data/spec/app/views/users/show.html.erb +0 -0
- data/spec/app.rb +315 -0
- data/spec/controllers/accounts_controller_spec.rb +77 -0
- data/spec/controllers/addresses_controller_spec.rb +346 -0
- data/spec/controllers/admin_forums_controller_spec.rb +638 -0
- data/spec/controllers/comments_controller_spec.rb +380 -0
- data/spec/controllers/comments_controller_with_models_spec.rb +202 -0
- data/spec/controllers/forum_posts_controller_spec.rb +426 -0
- data/spec/controllers/forums_controller_spec.rb +694 -0
- data/spec/controllers/infos_controller_spec.rb +71 -0
- data/spec/controllers/interests_controller_via_forum_spec.rb +80 -0
- data/spec/controllers/interests_controller_via_user_spec.rb +114 -0
- data/spec/controllers/owners_controller_spec.rb +277 -0
- data/spec/controllers/resource_saved_spec.rb +47 -0
- data/spec/controllers/resource_service_in_forums_controller_spec.rb +37 -0
- data/spec/controllers/resource_service_in_infos_controller_spec.rb +36 -0
- data/spec/controllers/resource_service_in_interests_controller_via_forum_spec.rb +51 -0
- data/spec/controllers/tags_controller_spec.rb +83 -0
- data/spec/controllers/tags_controller_via_account_info_spec.rb +131 -0
- data/spec/controllers/tags_controller_via_forum_post_comment_spec.rb +144 -0
- data/spec/controllers/tags_controller_via_forum_post_spec.rb +133 -0
- data/spec/controllers/tags_controller_via_forum_spec.rb +173 -0
- data/spec/controllers/tags_controller_via_user_address_spec.rb +130 -0
- data/spec/controllers/users_controller_spec.rb +248 -0
- data/spec/lib/action_view_helper_spec.rb +143 -0
- data/spec/lib/bug_0001_spec.rb +22 -0
- data/spec/lib/include_actions_spec.rb +35 -0
- data/spec/lib/load_enclosing_resources_spec.rb +245 -0
- data/spec/lib/request_path_introspection_spec.rb +130 -0
- data/spec/lib/resource_methods_spec.rb +204 -0
- data/spec/lib/resources_controller_spec.rb +57 -0
- data/spec/models/comment_saved_spec.rb +24 -0
- data/spec/rspec_generator_task.rb +105 -0
- data/spec/spec_helper.rb +17 -0
- data/spec/verify_rcov.rb +52 -0
- metadata +193 -0
|
@@ -0,0 +1,638 @@
|
|
|
1
|
+
require 'spec_helper'
|
|
2
|
+
|
|
3
|
+
describe Admin::ForumsController do
|
|
4
|
+
describe "Routing shortcuts for Admin::Forums should map" do
|
|
5
|
+
|
|
6
|
+
before(:each) do
|
|
7
|
+
@forum = mock('Forum')
|
|
8
|
+
@forum.stub!(:to_param).and_return('2')
|
|
9
|
+
Forum.stub!(:find).and_return(@forum)
|
|
10
|
+
get :show, :id => "2"
|
|
11
|
+
end
|
|
12
|
+
|
|
13
|
+
it "resources_path to /admin/forums" do
|
|
14
|
+
controller.resources_path.should == '/admin/forums'
|
|
15
|
+
end
|
|
16
|
+
|
|
17
|
+
it "resources_path(:foo => 'bar') to /admin/forums?foo=bar" do
|
|
18
|
+
controller.resources_path(:foo => 'bar').should == '/admin/forums?foo=bar'
|
|
19
|
+
end
|
|
20
|
+
|
|
21
|
+
it "resource_path to /admin/forums/2" do
|
|
22
|
+
controller.resource_path.should == '/admin/forums/2'
|
|
23
|
+
end
|
|
24
|
+
|
|
25
|
+
it "resource_path(:foo => 'bar') to /admin/forums/2?foo=bar" do
|
|
26
|
+
controller.resource_path(:foo => 'bar').should == '/admin/forums/2?foo=bar'
|
|
27
|
+
end
|
|
28
|
+
|
|
29
|
+
it "resource_path(9) to /admin/forums/9" do
|
|
30
|
+
controller.resource_path(9).should == '/admin/forums/9'
|
|
31
|
+
end
|
|
32
|
+
|
|
33
|
+
it "resource_path(9, :foo => 'bar') to /admin/forums/2?foo=bar" do
|
|
34
|
+
controller.resource_path(9, :foo => 'bar').should == '/admin/forums/9?foo=bar'
|
|
35
|
+
end
|
|
36
|
+
|
|
37
|
+
it "edit_resource_path to /admin/forums/2/edit" do
|
|
38
|
+
controller.edit_resource_path.should == '/admin/forums/2/edit'
|
|
39
|
+
end
|
|
40
|
+
|
|
41
|
+
it "edit_resource_path(9) to /admin/forums/9/edit" do
|
|
42
|
+
controller.edit_resource_path(9).should == '/admin/forums/9/edit'
|
|
43
|
+
end
|
|
44
|
+
|
|
45
|
+
it "new_resource_path to /admin/forums/new" do
|
|
46
|
+
controller.new_resource_path.should == '/admin/forums/new'
|
|
47
|
+
end
|
|
48
|
+
|
|
49
|
+
it "resources_url to http://test.host/admin/forums" do
|
|
50
|
+
controller.resources_url.should == 'http://test.host/admin/forums'
|
|
51
|
+
end
|
|
52
|
+
|
|
53
|
+
it "resource_url to http://test.host/admin/forums/2" do
|
|
54
|
+
controller.resource_url.should == 'http://test.host/admin/forums/2'
|
|
55
|
+
end
|
|
56
|
+
|
|
57
|
+
it "resource_url(9) to http://test.host/admin/forums/9" do
|
|
58
|
+
controller.resource_url(9).should == 'http://test.host/admin/forums/9'
|
|
59
|
+
end
|
|
60
|
+
|
|
61
|
+
it "edit_resource_url to http://test.host/admin/forums/2/edit" do
|
|
62
|
+
controller.edit_resource_url.should == 'http://test.host/admin/forums/2/edit'
|
|
63
|
+
end
|
|
64
|
+
|
|
65
|
+
it "edit_resource_url(9) to http://test.host/admin/forums/9/edit" do
|
|
66
|
+
controller.edit_resource_url(9).should == 'http://test.host/admin/forums/9/edit'
|
|
67
|
+
end
|
|
68
|
+
|
|
69
|
+
it "new_resource_url to http://test.host/admin/forums/new" do
|
|
70
|
+
controller.new_resource_url.should == 'http://test.host/admin/forums/new'
|
|
71
|
+
end
|
|
72
|
+
|
|
73
|
+
it "resource_interests_path to /admin/forums/2/interests" do
|
|
74
|
+
controller.resource_interests_path.should == "/admin/forums/2/interests"
|
|
75
|
+
end
|
|
76
|
+
|
|
77
|
+
it "resource_interests_path(:foo => 'bar') to /admin/forums/2/interests?foo=bar" do
|
|
78
|
+
controller.resource_interests_path(:foo => 'bar').should == '/admin/forums/2/interests?foo=bar'
|
|
79
|
+
end
|
|
80
|
+
|
|
81
|
+
it "resource_interests_path(9) to /admin/forums/9/interests" do
|
|
82
|
+
controller.resource_interests_path(9).should == "/admin/forums/9/interests"
|
|
83
|
+
end
|
|
84
|
+
|
|
85
|
+
it "resource_interests_path(9, :foo => 'bar') to /admin/forums/9/interests?foo=bar" do
|
|
86
|
+
controller.resource_interests_path(9, :foo => 'bar').should == "/admin/forums/9/interests?foo=bar"
|
|
87
|
+
end
|
|
88
|
+
|
|
89
|
+
it "resource_interest_path(5) to /admin/forums/2/interests/5" do
|
|
90
|
+
controller.resource_interest_path(5).should == "/admin/forums/2/interests/5"
|
|
91
|
+
end
|
|
92
|
+
|
|
93
|
+
it "resource_interest_path(9,5) to /admin/forums/9/interests/5" do
|
|
94
|
+
controller.resource_interest_path(9,5).should == "/admin/forums/9/interests/5"
|
|
95
|
+
end
|
|
96
|
+
|
|
97
|
+
it "resource_interest_path(9,5, :foo => 'bar') to /admin/forums/9/interests/5?foo=bar" do
|
|
98
|
+
controller.resource_interest_path(9, 5, :foo => 'bar').should == "/admin/forums/9/interests/5?foo=bar"
|
|
99
|
+
end
|
|
100
|
+
|
|
101
|
+
it 'new_resource_interest_path(9) to /admin/forums/9/interests/new' do
|
|
102
|
+
controller.new_resource_interest_path(9).should == "/admin/forums/9/interests/new"
|
|
103
|
+
end
|
|
104
|
+
|
|
105
|
+
it 'edit_resource_interest_path(5) to /admin/forums/2/interests/5/edit' do
|
|
106
|
+
controller.edit_resource_interest_path(5).should == "/admin/forums/2/interests/5/edit"
|
|
107
|
+
end
|
|
108
|
+
|
|
109
|
+
it 'edit_resource_interest_path(9,5) to /admin/forums/9/interests/5/edit' do
|
|
110
|
+
controller.edit_resource_interest_path(9,5).should == "/admin/forums/9/interests/5/edit"
|
|
111
|
+
end
|
|
112
|
+
|
|
113
|
+
it "respond_to?(:edit_resource_interest_path) should == true" do
|
|
114
|
+
controller.should respond_to(:edit_resource_interest_path)
|
|
115
|
+
end
|
|
116
|
+
|
|
117
|
+
it "resource_users_path should raise informative CantMapRoute" do
|
|
118
|
+
lambda{ controller.resource_users_path }.should raise_error(ResourcesController::CantMapRoute, <<-end_str
|
|
119
|
+
Tried to map :resource_users_path to :admin_forum_users_path,
|
|
120
|
+
which doesn't exist. You may not have defined the route in config/routes.rb.
|
|
121
|
+
|
|
122
|
+
Or, if you have unconventianal route names or name prefixes, you may need
|
|
123
|
+
to explicictly set the :route option in resources_controller_for, and set
|
|
124
|
+
the :name_prefix option on your enclosing resources.
|
|
125
|
+
|
|
126
|
+
Currently:
|
|
127
|
+
:route is 'forum'
|
|
128
|
+
generated name_prefix is 'admin_'
|
|
129
|
+
end_str
|
|
130
|
+
)
|
|
131
|
+
end
|
|
132
|
+
|
|
133
|
+
it "enclosing_resource_path should raise informative NoMethodError" do
|
|
134
|
+
lambda{ controller.enclosing_resource_path }.should raise_error(NoMethodError, "Tried to map :enclosing_resource_path but there is no enclosing_resource for this controller")
|
|
135
|
+
end
|
|
136
|
+
|
|
137
|
+
it "any_old_missing_method should raise NoMethodError" do
|
|
138
|
+
lambda{ controller.any_old_missing_method }.should raise_error(NoMethodError)
|
|
139
|
+
end
|
|
140
|
+
|
|
141
|
+
it "respond_to?(:resource_users_path) should == false" do
|
|
142
|
+
controller.should_not respond_to(:resource_users_path)
|
|
143
|
+
end
|
|
144
|
+
end
|
|
145
|
+
|
|
146
|
+
describe "resource_service in Admin::ForumsController" do
|
|
147
|
+
|
|
148
|
+
before(:each) do
|
|
149
|
+
@forum = Forum.create
|
|
150
|
+
|
|
151
|
+
get :index
|
|
152
|
+
@resource_service = controller.send :resource_service
|
|
153
|
+
end
|
|
154
|
+
|
|
155
|
+
it "should build new forum with new" do
|
|
156
|
+
resource = @resource_service.new
|
|
157
|
+
resource.should be_kind_of(Forum)
|
|
158
|
+
end
|
|
159
|
+
|
|
160
|
+
it "should find @forum with find(@forum.id)" do
|
|
161
|
+
resource = @resource_service.find(@forum.id)
|
|
162
|
+
resource.should == @forum
|
|
163
|
+
end
|
|
164
|
+
|
|
165
|
+
it "should find all forums with find(:all)" do
|
|
166
|
+
resources = @resource_service.find(:all)
|
|
167
|
+
resources.should == Forum.find(:all)
|
|
168
|
+
end
|
|
169
|
+
end
|
|
170
|
+
|
|
171
|
+
describe "Requesting /admin/forums using GET" do
|
|
172
|
+
|
|
173
|
+
before(:each) do
|
|
174
|
+
@mock_forums = mock('forums')
|
|
175
|
+
Forum.stub!(:all).and_return(@mock_forums)
|
|
176
|
+
end
|
|
177
|
+
|
|
178
|
+
def do_get
|
|
179
|
+
get :index
|
|
180
|
+
end
|
|
181
|
+
|
|
182
|
+
it "should be successful" do
|
|
183
|
+
do_get
|
|
184
|
+
response.should be_success
|
|
185
|
+
end
|
|
186
|
+
|
|
187
|
+
it "should render index.rhtml" do
|
|
188
|
+
do_get
|
|
189
|
+
response.should render_template(:index)
|
|
190
|
+
end
|
|
191
|
+
|
|
192
|
+
it "should find all forums" do
|
|
193
|
+
Forum.should_receive(:all).and_return(@mock_forums)
|
|
194
|
+
do_get
|
|
195
|
+
end
|
|
196
|
+
|
|
197
|
+
it "should assign the found forums for the view" do
|
|
198
|
+
do_get
|
|
199
|
+
assigns[:forums].should == @mock_forums
|
|
200
|
+
end
|
|
201
|
+
end
|
|
202
|
+
|
|
203
|
+
describe "Requesting /admin/forums.xml using GET" do
|
|
204
|
+
|
|
205
|
+
before(:each) do
|
|
206
|
+
@mock_forums = mock('forums')
|
|
207
|
+
@mock_forums.stub!(:to_xml).and_return("XML")
|
|
208
|
+
Forum.stub!(:all).and_return(@mock_forums)
|
|
209
|
+
end
|
|
210
|
+
|
|
211
|
+
def do_get
|
|
212
|
+
@request.env["HTTP_ACCEPT"] = "application/xml"
|
|
213
|
+
get :index
|
|
214
|
+
end
|
|
215
|
+
|
|
216
|
+
it "should be successful" do
|
|
217
|
+
do_get
|
|
218
|
+
response.should be_success
|
|
219
|
+
end
|
|
220
|
+
|
|
221
|
+
it "should find all forums" do
|
|
222
|
+
Forum.should_receive(:all).and_return(@mock_forums)
|
|
223
|
+
do_get
|
|
224
|
+
end
|
|
225
|
+
|
|
226
|
+
it "should render the found forums as xml" do
|
|
227
|
+
@mock_forums.should_receive(:to_xml).and_return("XML")
|
|
228
|
+
do_get
|
|
229
|
+
response.body.should eql("XML")
|
|
230
|
+
end
|
|
231
|
+
end
|
|
232
|
+
|
|
233
|
+
describe "Requesting /admin/forums using XHR GET" do
|
|
234
|
+
|
|
235
|
+
before(:each) do
|
|
236
|
+
@mock_forums = mock('forums')
|
|
237
|
+
Forum.stub!(:all).and_return(@mock_forums)
|
|
238
|
+
end
|
|
239
|
+
|
|
240
|
+
def do_get
|
|
241
|
+
@request.env["HTTP_ACCEPT"] = "text/javascript"
|
|
242
|
+
xhr :get, :index
|
|
243
|
+
end
|
|
244
|
+
|
|
245
|
+
it "should be successful" do
|
|
246
|
+
do_get
|
|
247
|
+
response.should be_success
|
|
248
|
+
end
|
|
249
|
+
|
|
250
|
+
it "should find all forums" do
|
|
251
|
+
Forum.should_receive(:all).and_return(@mock_forums)
|
|
252
|
+
do_get
|
|
253
|
+
end
|
|
254
|
+
|
|
255
|
+
it "should render index.rjs" do
|
|
256
|
+
do_get
|
|
257
|
+
response.should render_template('index')
|
|
258
|
+
end
|
|
259
|
+
end
|
|
260
|
+
|
|
261
|
+
describe "Requesting /admin/forums/1 using GET" do
|
|
262
|
+
|
|
263
|
+
before(:each) do
|
|
264
|
+
@mock_forum = mock('Forum')
|
|
265
|
+
Forum.stub!(:find).and_return(@mock_forum)
|
|
266
|
+
end
|
|
267
|
+
|
|
268
|
+
def do_get
|
|
269
|
+
get :show, :id => "1"
|
|
270
|
+
end
|
|
271
|
+
|
|
272
|
+
it "should be successful" do
|
|
273
|
+
do_get
|
|
274
|
+
response.should be_success
|
|
275
|
+
end
|
|
276
|
+
|
|
277
|
+
it "should render show.rhtml" do
|
|
278
|
+
do_get
|
|
279
|
+
response.should render_template(:show)
|
|
280
|
+
end
|
|
281
|
+
|
|
282
|
+
it "should find the forum requested" do
|
|
283
|
+
Forum.should_receive(:find).with("1").and_return(@mock_forum)
|
|
284
|
+
do_get
|
|
285
|
+
end
|
|
286
|
+
|
|
287
|
+
it "should assign the found forum for the view" do
|
|
288
|
+
do_get
|
|
289
|
+
assigns[:forum].should == @mock_forum
|
|
290
|
+
end
|
|
291
|
+
end
|
|
292
|
+
|
|
293
|
+
describe "Requesting /admin/forums/1.xml using GET" do
|
|
294
|
+
|
|
295
|
+
before(:each) do
|
|
296
|
+
@mock_forum = mock('Forum')
|
|
297
|
+
@mock_forum.stub!(:to_xml).and_return("XML")
|
|
298
|
+
Forum.stub!(:find).and_return(@mock_forum)
|
|
299
|
+
end
|
|
300
|
+
|
|
301
|
+
def do_get
|
|
302
|
+
@request.env["HTTP_ACCEPT"] = "application/xml"
|
|
303
|
+
get :show, :id => "1"
|
|
304
|
+
end
|
|
305
|
+
|
|
306
|
+
it "should be successful" do
|
|
307
|
+
do_get
|
|
308
|
+
response.should be_success
|
|
309
|
+
end
|
|
310
|
+
|
|
311
|
+
it "should find the forum requested" do
|
|
312
|
+
Forum.should_receive(:find).with("1").and_return(@mock_forum)
|
|
313
|
+
do_get
|
|
314
|
+
end
|
|
315
|
+
|
|
316
|
+
it "should render the found forum as xml" do
|
|
317
|
+
@mock_forum.should_receive(:to_xml).and_return("XML")
|
|
318
|
+
do_get
|
|
319
|
+
response.body.should eql("XML")
|
|
320
|
+
end
|
|
321
|
+
end
|
|
322
|
+
|
|
323
|
+
describe "Requesting /admin/forums/1 using XHR GET" do
|
|
324
|
+
|
|
325
|
+
before(:each) do
|
|
326
|
+
@mock_forum = mock('Forum')
|
|
327
|
+
Forum.stub!(:find).and_return(@mock_forum)
|
|
328
|
+
end
|
|
329
|
+
|
|
330
|
+
def do_get
|
|
331
|
+
xhr :get, :show, :id => "1"
|
|
332
|
+
end
|
|
333
|
+
|
|
334
|
+
it "should be successful" do
|
|
335
|
+
do_get
|
|
336
|
+
response.should be_success
|
|
337
|
+
end
|
|
338
|
+
|
|
339
|
+
it "should render show.rjs" do
|
|
340
|
+
do_get
|
|
341
|
+
response.should render_template('show')
|
|
342
|
+
end
|
|
343
|
+
|
|
344
|
+
it "should find the forum requested" do
|
|
345
|
+
Forum.should_receive(:find).with("1").and_return(@mock_forum)
|
|
346
|
+
do_get
|
|
347
|
+
end
|
|
348
|
+
|
|
349
|
+
it "should assign the found forum for the view" do
|
|
350
|
+
do_get
|
|
351
|
+
assigns[:forum].should == @mock_forum
|
|
352
|
+
end
|
|
353
|
+
end
|
|
354
|
+
|
|
355
|
+
describe "Requesting /admin/forums/new using GET" do
|
|
356
|
+
|
|
357
|
+
before(:each) do
|
|
358
|
+
@mock_forum = mock('Forum')
|
|
359
|
+
Forum.stub!(:new).and_return(@mock_forum)
|
|
360
|
+
end
|
|
361
|
+
|
|
362
|
+
def do_get
|
|
363
|
+
get :new
|
|
364
|
+
end
|
|
365
|
+
|
|
366
|
+
it "should be successful" do
|
|
367
|
+
do_get
|
|
368
|
+
response.should be_success
|
|
369
|
+
end
|
|
370
|
+
|
|
371
|
+
it "should render new.rhtml" do
|
|
372
|
+
do_get
|
|
373
|
+
response.should render_template(:new)
|
|
374
|
+
end
|
|
375
|
+
|
|
376
|
+
it "should create an new forum" do
|
|
377
|
+
Forum.should_receive(:new).and_return(@mock_forum)
|
|
378
|
+
do_get
|
|
379
|
+
end
|
|
380
|
+
|
|
381
|
+
it "should not save the new forum" do
|
|
382
|
+
@mock_forum.should_not_receive(:save)
|
|
383
|
+
do_get
|
|
384
|
+
end
|
|
385
|
+
|
|
386
|
+
it "should assign the new forum for the view" do
|
|
387
|
+
do_get
|
|
388
|
+
assigns[:forum].should == @mock_forum
|
|
389
|
+
end
|
|
390
|
+
end
|
|
391
|
+
|
|
392
|
+
describe "Requesting /admin/forums/1/edit using GET" do
|
|
393
|
+
|
|
394
|
+
before(:each) do
|
|
395
|
+
@mock_forum = mock('Forum')
|
|
396
|
+
Forum.stub!(:find).and_return(@mock_forum)
|
|
397
|
+
end
|
|
398
|
+
|
|
399
|
+
def do_get
|
|
400
|
+
get :edit, :id => "1"
|
|
401
|
+
end
|
|
402
|
+
|
|
403
|
+
it "should be successful" do
|
|
404
|
+
do_get
|
|
405
|
+
response.should be_success
|
|
406
|
+
end
|
|
407
|
+
|
|
408
|
+
it "should render edit.rhtml" do
|
|
409
|
+
do_get
|
|
410
|
+
response.should render_template(:edit)
|
|
411
|
+
end
|
|
412
|
+
|
|
413
|
+
it "should find the forum requested" do
|
|
414
|
+
Forum.should_receive(:find).and_return(@mock_forum)
|
|
415
|
+
do_get
|
|
416
|
+
end
|
|
417
|
+
|
|
418
|
+
it "should assign the found Forum for the view" do
|
|
419
|
+
do_get
|
|
420
|
+
assigns(:forum).should equal(@mock_forum)
|
|
421
|
+
end
|
|
422
|
+
end
|
|
423
|
+
|
|
424
|
+
describe "Requesting /admin/forums using POST" do
|
|
425
|
+
|
|
426
|
+
before(:each) do
|
|
427
|
+
@mock_forum = mock('Forum')
|
|
428
|
+
@mock_forum.stub!(:save).and_return(true)
|
|
429
|
+
@mock_forum.stub!(:to_param).and_return("1")
|
|
430
|
+
Forum.stub!(:new).and_return(@mock_forum)
|
|
431
|
+
end
|
|
432
|
+
|
|
433
|
+
def do_post
|
|
434
|
+
post :create, :forum => {:name => 'Forum'}
|
|
435
|
+
end
|
|
436
|
+
|
|
437
|
+
it "should create a new forum" do
|
|
438
|
+
Forum.should_receive(:new).with({'name' => 'Forum'}).and_return(@mock_forum)
|
|
439
|
+
do_post
|
|
440
|
+
end
|
|
441
|
+
|
|
442
|
+
it "should set the flash notice" do
|
|
443
|
+
do_post
|
|
444
|
+
flash[:notice].should == "Forum was successfully created."
|
|
445
|
+
end
|
|
446
|
+
|
|
447
|
+
it "should redirect to the new forum" do
|
|
448
|
+
do_post
|
|
449
|
+
response.should be_redirect
|
|
450
|
+
response.redirect_url.should == "http://test.host/admin/forums/1"
|
|
451
|
+
end
|
|
452
|
+
end
|
|
453
|
+
|
|
454
|
+
describe "Requesting /admin/forums using XHR POST" do
|
|
455
|
+
|
|
456
|
+
before(:each) do
|
|
457
|
+
@mock_forum = mock('Forum')
|
|
458
|
+
@mock_forum.stub!(:save).and_return(true)
|
|
459
|
+
@mock_forum.stub!(:to_param).and_return("1")
|
|
460
|
+
Forum.stub!(:new).and_return(@mock_forum)
|
|
461
|
+
end
|
|
462
|
+
|
|
463
|
+
def do_post
|
|
464
|
+
xhr :post, :create, :forum => {:name => 'Forum'}
|
|
465
|
+
end
|
|
466
|
+
|
|
467
|
+
it "should create a new forum" do
|
|
468
|
+
Forum.should_receive(:new).with({'name' => 'Forum'}).and_return(@mock_forum)
|
|
469
|
+
do_post
|
|
470
|
+
end
|
|
471
|
+
|
|
472
|
+
it "should not set the flash notice" do
|
|
473
|
+
do_post
|
|
474
|
+
flash[:notice].should == nil
|
|
475
|
+
end
|
|
476
|
+
|
|
477
|
+
it "should render create.rjs" do
|
|
478
|
+
do_post
|
|
479
|
+
response.should render_template('create')
|
|
480
|
+
end
|
|
481
|
+
|
|
482
|
+
it "should render new.rjs if unsuccesful" do
|
|
483
|
+
@mock_forum.stub!(:save).and_return(false)
|
|
484
|
+
do_post
|
|
485
|
+
response.should render_template('new')
|
|
486
|
+
end
|
|
487
|
+
end
|
|
488
|
+
|
|
489
|
+
describe "Requesting /admin/forums/1 using PUT" do
|
|
490
|
+
|
|
491
|
+
before(:each) do
|
|
492
|
+
@mock_forum = mock('Forum').as_null_object
|
|
493
|
+
@mock_forum.stub!(:to_param).and_return("1")
|
|
494
|
+
Forum.stub!(:find).and_return(@mock_forum)
|
|
495
|
+
end
|
|
496
|
+
|
|
497
|
+
def do_update
|
|
498
|
+
put :update, :id => "1"
|
|
499
|
+
end
|
|
500
|
+
|
|
501
|
+
it "should find the forum requested" do
|
|
502
|
+
Forum.should_receive(:find).with("1").and_return(@mock_forum)
|
|
503
|
+
do_update
|
|
504
|
+
end
|
|
505
|
+
|
|
506
|
+
it "should set the flash notice" do
|
|
507
|
+
do_update
|
|
508
|
+
flash[:notice].should == "Forum was successfully updated."
|
|
509
|
+
end
|
|
510
|
+
|
|
511
|
+
it "should update the found forum" do
|
|
512
|
+
@mock_forum.should_receive(:update_attributes).and_return(true)
|
|
513
|
+
do_update
|
|
514
|
+
assigns(:forum).should == @mock_forum
|
|
515
|
+
end
|
|
516
|
+
|
|
517
|
+
it "should assign the found forum for the view" do
|
|
518
|
+
do_update
|
|
519
|
+
assigns(:forum).should == @mock_forum
|
|
520
|
+
end
|
|
521
|
+
|
|
522
|
+
it "should redirect to the forum" do
|
|
523
|
+
do_update
|
|
524
|
+
response.should be_redirect
|
|
525
|
+
response.redirect_url.should == "http://test.host/admin/forums/1"
|
|
526
|
+
end
|
|
527
|
+
end
|
|
528
|
+
|
|
529
|
+
describe "Requesting /admin/forums/1 using XHR PUT" do
|
|
530
|
+
|
|
531
|
+
before(:each) do
|
|
532
|
+
@mock_forum = mock('Forum').as_null_object
|
|
533
|
+
@mock_forum.stub!(:to_param).and_return("1")
|
|
534
|
+
Forum.stub!(:find).and_return(@mock_forum)
|
|
535
|
+
end
|
|
536
|
+
|
|
537
|
+
def do_update
|
|
538
|
+
xhr :put, :update, :id => "1"
|
|
539
|
+
end
|
|
540
|
+
|
|
541
|
+
it "should find the forum requested" do
|
|
542
|
+
Forum.should_receive(:find).with("1").and_return(@mock_forum)
|
|
543
|
+
do_update
|
|
544
|
+
end
|
|
545
|
+
|
|
546
|
+
it "should update the found forum" do
|
|
547
|
+
@mock_forum.should_receive(:update_attributes).and_return(true)
|
|
548
|
+
do_update
|
|
549
|
+
assigns(:forum).should == @mock_forum
|
|
550
|
+
end
|
|
551
|
+
|
|
552
|
+
it "should not set the flash notice" do
|
|
553
|
+
do_update
|
|
554
|
+
flash[:notice].should == nil
|
|
555
|
+
end
|
|
556
|
+
|
|
557
|
+
it "should assign the found forum for the view" do
|
|
558
|
+
do_update
|
|
559
|
+
assigns(:forum).should == @mock_forum
|
|
560
|
+
end
|
|
561
|
+
|
|
562
|
+
it "should render update.rjs" do
|
|
563
|
+
do_update
|
|
564
|
+
response.should render_template('update')
|
|
565
|
+
end
|
|
566
|
+
|
|
567
|
+
it "should render edit.rjs, on unsuccessful save" do
|
|
568
|
+
@mock_forum.stub!(:update_attributes).and_return(false)
|
|
569
|
+
do_update
|
|
570
|
+
response.should render_template('edit')
|
|
571
|
+
end
|
|
572
|
+
end
|
|
573
|
+
|
|
574
|
+
describe "Requesting /admin/forums/1 using DELETE" do
|
|
575
|
+
|
|
576
|
+
before(:each) do
|
|
577
|
+
@mock_forum = mock('Forum').as_null_object
|
|
578
|
+
Forum.stub!(:find).and_return(@mock_forum)
|
|
579
|
+
end
|
|
580
|
+
|
|
581
|
+
def do_delete
|
|
582
|
+
delete :destroy, :id => "1"
|
|
583
|
+
end
|
|
584
|
+
|
|
585
|
+
it "should find the forum requested" do
|
|
586
|
+
Forum.should_receive(:find).with("1").and_return(@mock_forum)
|
|
587
|
+
do_delete
|
|
588
|
+
end
|
|
589
|
+
|
|
590
|
+
it "should call destroy on the found forum" do
|
|
591
|
+
@mock_forum.should_receive(:destroy)
|
|
592
|
+
do_delete
|
|
593
|
+
end
|
|
594
|
+
|
|
595
|
+
it "should set the flash notice" do
|
|
596
|
+
do_delete
|
|
597
|
+
flash[:notice].should == 'Forum was successfully destroyed.'
|
|
598
|
+
end
|
|
599
|
+
|
|
600
|
+
it "should redirect to the forums list" do
|
|
601
|
+
do_delete
|
|
602
|
+
response.should be_redirect
|
|
603
|
+
response.redirect_url.should == "http://test.host/admin/forums"
|
|
604
|
+
end
|
|
605
|
+
end
|
|
606
|
+
|
|
607
|
+
describe "Requesting /admin/forums/1 using XHR DELETE" do
|
|
608
|
+
|
|
609
|
+
before(:each) do
|
|
610
|
+
@mock_forum = mock('Forum').as_null_object
|
|
611
|
+
Forum.stub!(:find).and_return(@mock_forum)
|
|
612
|
+
end
|
|
613
|
+
|
|
614
|
+
def do_delete
|
|
615
|
+
xhr :delete, :destroy, :id => "1"
|
|
616
|
+
end
|
|
617
|
+
|
|
618
|
+
it "should find the forum requested" do
|
|
619
|
+
Forum.should_receive(:find).with("1").and_return(@mock_forum)
|
|
620
|
+
do_delete
|
|
621
|
+
end
|
|
622
|
+
|
|
623
|
+
it "should not set the flash notice" do
|
|
624
|
+
do_delete
|
|
625
|
+
flash[:notice].should == nil
|
|
626
|
+
end
|
|
627
|
+
|
|
628
|
+
it "should call destroy on the found forum" do
|
|
629
|
+
@mock_forum.should_receive(:destroy)
|
|
630
|
+
do_delete
|
|
631
|
+
end
|
|
632
|
+
|
|
633
|
+
it "should render destroy.rjs" do
|
|
634
|
+
do_delete
|
|
635
|
+
response.should render_template('destroy')
|
|
636
|
+
end
|
|
637
|
+
end
|
|
638
|
+
end
|