@@ -35,7 +35,10 @@ class UrlHelperTest < ActiveSupport::TestCase
35
35
get "/other" => "foo#other"
36
36
get "/article/:id" => "foo#article" , :as => :article
37
37
get "/category/:category" => "foo#category"
38
- resources :workshops
38
+ resources :sessions
39
+ resources :workshops do
40
+ resources :sessions
41
+ end
39
42
40
43
scope :engine do
41
44
get "/" => "foo#bar"
@@ -208,6 +211,62 @@ def test_button_to_with_false_url_and_block
208
211
)
209
212
end
210
213
214
+ def test_button_to_with_new_record_model
215
+ session = Session . new ( nil )
216
+
217
+ assert_dom_equal (
218
+ %{<form method="post" action="/sessions" class="button_to"><button type="submit">Create Session</button></form>} ,
219
+ button_to ( "Create Session" , session )
220
+ )
221
+ end
222
+
223
+ def test_button_to_with_new_record_model_and_block
224
+ workshop = Workshop . new ( nil )
225
+
226
+ assert_dom_equal (
227
+ %{<form method="post" action="/workshops" class="button_to"><button type="submit">Create</button></form>} ,
228
+ button_to ( workshop ) { "Create" }
229
+ )
230
+ end
231
+
232
+ def test_button_to_with_nested_new_record_model_and_block
233
+ workshop = Workshop . new ( "1" )
234
+ session = Session . new ( nil )
235
+
236
+ assert_dom_equal (
237
+ %{<form method="post" action="/workshops/1/sessions" class="button_to"><button type="submit">Create</button></form>} ,
238
+ button_to ( [ workshop , session ] ) { "Create" }
239
+ )
240
+ end
241
+
242
+ def test_button_to_with_persisted_model
243
+ workshop = Workshop . new ( "1" )
244
+
245
+ assert_dom_equal (
246
+ %{<form method="post" action="/workshops/1" class="button_to"><input type="hidden" name="_method" value="patch" autocomplete="off" /><button type="submit">Update</button></form>} ,
247
+ button_to ( workshop ) { "Update" }
248
+ )
249
+ end
250
+
251
+ def test_button_to_with_persisted_model_and_block
252
+ workshop = Workshop . new ( "1" )
253
+
254
+ assert_dom_equal (
255
+ %{<form method="post" action="/workshops/1" class="button_to"><input type="hidden" name="_method" value="patch" autocomplete="off" /><button type="submit">Update</button></form>} ,
256
+ button_to ( workshop ) { "Update" }
257
+ )
258
+ end
259
+
260
+ def test_button_to_with_nested_persisted_model_and_block
261
+ workshop = Workshop . new ( "1" )
262
+ session = Session . new ( "1" )
263
+
264
+ assert_dom_equal (
265
+ %{<form method="post" action="/workshops/1/sessions/1" class="button_to"><input type="hidden" name="_method" value="patch" autocomplete="off" /><button type="submit">Update</button></form>} ,
266
+ button_to ( [ workshop , session ] ) { "Update" }
267
+ )
268
+ end
269
+
211
270
def test_button_to_with_straight_url_and_request_forgery
212
271
self . request_forgery = true
213
272
0 commit comments