prototype-rails 4.0.0 → 4.0.1

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 (38) hide show
  1. checksums.yaml +4 -4
  2. data/MIT-LICENSE +20 -0
  3. data/{README → README.md} +12 -0
  4. data/Rakefile +2 -0
  5. data/lib/prototype-rails/on_load_action_view.rb +5 -3
  6. metadata +15 -46
  7. data/test/assert_select_test.rb +0 -457
  8. data/test/controller/caching_test.rb +0 -43
  9. data/test/controller/content_type_test.rb +0 -16
  10. data/test/controller/mime_responds_test.rb +0 -213
  11. data/test/controller/new_base/content_type_test.rb +0 -19
  12. data/test/controller/new_base/render_rjs_test.rb +0 -71
  13. data/test/controller/render_js_test.rb +0 -22
  14. data/test/fixtures/functional_caching/_partial.erb +0 -3
  15. data/test/fixtures/functional_caching/formatted_fragment_cached.js.rjs +0 -6
  16. data/test/fixtures/functional_caching/js_fragment_cached_with_partial.js.rjs +0 -1
  17. data/test/fixtures/old_content_type/render_default_for_rjs.rjs +0 -1
  18. data/test/fixtures/respond_to/all_types_with_layout.js.rjs +0 -1
  19. data/test/fixtures/respond_to/layouts/standard.html.erb +0 -1
  20. data/test/fixtures/respond_to/using_defaults.js.rjs +0 -1
  21. data/test/fixtures/respond_to/using_defaults_with_type_list.js.rjs +0 -1
  22. data/test/fixtures/respond_with/using_resource.js.rjs +0 -1
  23. data/test/fixtures/test/_one.html.erb +0 -1
  24. data/test/fixtures/test/_partial.html.erb +0 -1
  25. data/test/fixtures/test/_partial.js.erb +0 -1
  26. data/test/fixtures/test/_two.html.erb +0 -1
  27. data/test/fixtures/test/delete_with_js.rjs +0 -2
  28. data/test/fixtures/test/enum_rjs_test.rjs +0 -6
  29. data/test/fixtures/test/greeting.js.rjs +0 -1
  30. data/test/fixtures/test/render_explicit_html_template.js.rjs +0 -1
  31. data/test/fixtures/test/render_implicit_html_template.js.rjs +0 -1
  32. data/test/javascript_helper_test.rb +0 -61
  33. data/test/lib/abstract_unit.rb +0 -225
  34. data/test/lib/controller/fake_models.rb +0 -29
  35. data/test/render_other_test.rb +0 -256
  36. data/test/template/prototype_helper_test.rb +0 -476
  37. data/test/template/render_test.rb +0 -24
  38. data/test/template/scriptaculous_helper_test.rb +0 -86
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: de5fdd685bcac176b54714d198a16a7ec51f83e8
4
- data.tar.gz: d0c3b9639b0dec9ff6f449447a7ab235ef928a83
3
+ metadata.gz: 7658b98a54c6729cfd24b97864e96e6437f50bcf
4
+ data.tar.gz: 7d2e040bbef9b56c34cf3c882d17987843d3e735
5
5
  SHA512:
6
- metadata.gz: 48966e1baa5eec7734141d4dd698c4c8a881a18470ee5e28bda63dad8ec828ff93e1e510d0a39dad9cb7b5174135e68036fc4ff83395cf204d5565bfa4c76e8f
7
- data.tar.gz: ca563e4d58dea2ef09dc7993d51b53e6399a67adf426aded6d728ac7e2b6a7ab6785a1a2a89fda44b23c1c5460713c21537eb9020531b0f83ec9f9d4beaffa53
6
+ metadata.gz: a3f1bc8fcd2d564bb2fd5d8d14b160e992ade91c69b1f5684759ac5a971e64e0e40e38703c10166e7e310f4244103ee39e930c68be55c238ca0ec808918cdd80
7
+ data.tar.gz: 7689332311d8617b48adccd2fe248c7765a8fc6b90fc5cfac24fe80d16705b19650adf0fb90ee125b6b9ea7f3adbf70deb401ac266d0d2dcd1adc94201d3cc9a
@@ -0,0 +1,20 @@
1
+ Copyright (c) 2004-2013 David Heinemeier Hansson
2
+
3
+ Permission is hereby granted, free of charge, to any person obtaining
4
+ a copy of this software and associated documentation files (the
5
+ "Software"), to deal in the Software without restriction, including
6
+ without limitation the rights to use, copy, modify, merge, publish,
7
+ distribute, sublicense, and/or sell copies of the Software, and to
8
+ permit persons to whom the Software is furnished to do so, subject to
9
+ the following conditions:
10
+
11
+ The above copyright notice and this permission notice shall be
12
+ included in all copies or substantial portions of the Software.
13
+
14
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
15
+ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
16
+ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
17
+ NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
18
+ LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
19
+ OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
20
+ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
@@ -15,3 +15,15 @@ prototype-rails supports RJS debugging. RJS responses are wrapped to catch
15
15
  exceptions, alert() them, and re-raise the exception. Debugging is disabled by
16
16
  default. To enable in development, set `config.action_view.debug_rjs = true`
17
17
  in config/environments/development.rb.
18
+
19
+ ---
20
+
21
+ ## Support for Rails 4.1 and above
22
+
23
+ Unfortunately, due to limited manpower and resources, the Rails core team has
24
+ not been able to confirm if this gem currently works with Rails 4.1 and above.
25
+ If you have found any problems while upgrading your application, please report
26
+ them at the [issue tracker](https://github.com/rails/prototype-rails/issues),
27
+ or better yet, submit patches by sending a [pull request](https://github.com/rails/prototype-rails/pulls).
28
+
29
+ In any case, this gem will *NOT* be officially supported on Rails 5.0 and above.
data/Rakefile CHANGED
@@ -1,3 +1,5 @@
1
+ require 'bundler/gem_tasks'
2
+
1
3
  require 'rake/testtask'
2
4
 
3
5
  task :default => :test
@@ -14,9 +14,11 @@ ActionView::Base.class_eval do
14
14
  include ActionView::Helpers::ScriptaculousHelper
15
15
  end
16
16
 
17
- ActionView::TestCase.class_eval do
18
- include ActionView::Helpers::PrototypeHelper
19
- include ActionView::Helpers::ScriptaculousHelper
17
+ if defined?(Rails.env) && Rails.env.test?
18
+ ActionView::TestCase.class_eval do
19
+ include ActionView::Helpers::PrototypeHelper
20
+ include ActionView::Helpers::ScriptaculousHelper
21
+ end
20
22
  end
21
23
 
22
24
  ActionView::Template.register_template_handler :rjs, ActionView::Template::Handlers::RJS.new
metadata CHANGED
@@ -1,41 +1,41 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: prototype-rails
3
3
  version: !ruby/object:Gem::Version
4
- version: 4.0.0
4
+ version: 4.0.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Xavier Noria
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2013-12-12 00:00:00.000000000 Z
11
+ date: 2015-04-22 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rails
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
- - - ~>
17
+ - - "~>"
18
18
  - !ruby/object:Gem::Version
19
19
  version: '4.0'
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
- - - ~>
24
+ - - "~>"
25
25
  - !ruby/object:Gem::Version
26
26
  version: '4.0'
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: mocha
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
- - - '>='
31
+ - - ">="
32
32
  - !ruby/object:Gem::Version
33
33
  version: '0'
34
34
  type: :development
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
- - - '>='
38
+ - - ">="
39
39
  - !ruby/object:Gem::Version
40
40
  version: '0'
41
41
  description:
@@ -44,58 +44,28 @@ executables: []
44
44
  extensions: []
45
45
  extra_rdoc_files: []
46
46
  files:
47
- - README
48
- - Rakefile
49
47
  - Gemfile
48
+ - MIT-LICENSE
49
+ - README.md
50
+ - Rakefile
50
51
  - lib/action_view/helpers/prototype_helper.rb
51
52
  - lib/action_view/helpers/scriptaculous_helper.rb
52
53
  - lib/action_view/template/handlers/rjs.rb
54
+ - lib/prototype-rails.rb
53
55
  - lib/prototype-rails/javascript_helper.rb
54
56
  - lib/prototype-rails/on_load_action_controller.rb
55
57
  - lib/prototype-rails/on_load_action_view.rb
56
58
  - lib/prototype-rails/renderers.rb
57
59
  - lib/prototype-rails/rendering.rb
58
60
  - lib/prototype-rails/selector_assertions.rb
59
- - lib/prototype-rails.rb
60
61
  - vendor/assets/javascripts/controls.js
61
62
  - vendor/assets/javascripts/dragdrop.js
62
63
  - vendor/assets/javascripts/effects.js
63
64
  - vendor/assets/javascripts/prototype.js
64
65
  - vendor/assets/javascripts/prototype_ujs.js
65
- - test/assert_select_test.rb
66
- - test/controller/caching_test.rb
67
- - test/controller/content_type_test.rb
68
- - test/controller/mime_responds_test.rb
69
- - test/controller/new_base/content_type_test.rb
70
- - test/controller/new_base/render_rjs_test.rb
71
- - test/controller/render_js_test.rb
72
- - test/fixtures/functional_caching/_partial.erb
73
- - test/fixtures/functional_caching/formatted_fragment_cached.js.rjs
74
- - test/fixtures/functional_caching/js_fragment_cached_with_partial.js.rjs
75
- - test/fixtures/old_content_type/render_default_for_rjs.rjs
76
- - test/fixtures/respond_to/all_types_with_layout.js.rjs
77
- - test/fixtures/respond_to/layouts/standard.html.erb
78
- - test/fixtures/respond_to/using_defaults.js.rjs
79
- - test/fixtures/respond_to/using_defaults_with_type_list.js.rjs
80
- - test/fixtures/respond_with/using_resource.js.rjs
81
- - test/fixtures/test/_one.html.erb
82
- - test/fixtures/test/_partial.html.erb
83
- - test/fixtures/test/_partial.js.erb
84
- - test/fixtures/test/_two.html.erb
85
- - test/fixtures/test/delete_with_js.rjs
86
- - test/fixtures/test/enum_rjs_test.rjs
87
- - test/fixtures/test/greeting.js.rjs
88
- - test/fixtures/test/render_explicit_html_template.js.rjs
89
- - test/fixtures/test/render_implicit_html_template.js.rjs
90
- - test/javascript_helper_test.rb
91
- - test/lib/abstract_unit.rb
92
- - test/lib/controller/fake_models.rb
93
- - test/render_other_test.rb
94
- - test/template/prototype_helper_test.rb
95
- - test/template/render_test.rb
96
- - test/template/scriptaculous_helper_test.rb
97
66
  homepage: http://github.com/rails/prototype-rails
98
- licenses: []
67
+ licenses:
68
+ - MIT
99
69
  metadata: {}
100
70
  post_install_message:
101
71
  rdoc_options: []
@@ -103,19 +73,18 @@ require_paths:
103
73
  - lib
104
74
  required_ruby_version: !ruby/object:Gem::Requirement
105
75
  requirements:
106
- - - '>='
76
+ - - ">="
107
77
  - !ruby/object:Gem::Version
108
78
  version: '0'
109
79
  required_rubygems_version: !ruby/object:Gem::Requirement
110
80
  requirements:
111
- - - '>='
81
+ - - ">="
112
82
  - !ruby/object:Gem::Version
113
83
  version: '0'
114
84
  requirements: []
115
85
  rubyforge_project:
116
- rubygems_version: 2.1.11
86
+ rubygems_version: 2.4.5
117
87
  signing_key:
118
88
  specification_version: 4
119
89
  summary: Prototype, Scriptaculous, and RJS for Ruby on Rails
120
90
  test_files: []
121
- has_rdoc:
@@ -1,457 +0,0 @@
1
- # coding: utf-8
2
-
3
- require 'abstract_unit'
4
-
5
- class AssertSelectTest < ActionController::TestCase
6
- Assertion = ActiveSupport::TestCase::Assertion
7
-
8
- class AssertSelectController < ActionController::Base
9
- def response_with=(content)
10
- @content = content
11
- end
12
-
13
- def response_with(&block)
14
- @update = block
15
- end
16
-
17
- def rjs
18
- render :update do |page|
19
- @update.call page
20
- end
21
- @update = nil
22
- end
23
-
24
- def rescue_action(e)
25
- raise e
26
- end
27
- end
28
-
29
- tests AssertSelectController
30
-
31
- def assert_failure(message, &block)
32
- e = assert_raise(Assertion, &block)
33
- assert_match(message, e.message) if Regexp === message
34
- assert_equal(message, e.message) if String === message
35
- end
36
-
37
- # With single result.
38
- def test_assert_select_from_rjs_with_single_result
39
- render_rjs do |page|
40
- page.replace_html "test", "<div id=\"1\">foo</div>\n<div id=\"2\">foo</div>"
41
- end
42
- assert_select "div" do |elements|
43
- assert elements.size == 2
44
- assert_select "#1"
45
- assert_select "#2"
46
- end
47
- assert_select "div#?", /\d+/ do |elements|
48
- assert_select "#1"
49
- assert_select "#2"
50
- end
51
- end
52
-
53
- # With multiple results.
54
- def test_assert_select_from_rjs_with_multiple_results
55
- render_rjs do |page|
56
- page.replace_html "test", "<div id=\"1\">foo</div>"
57
- page.replace_html "test2", "<div id=\"2\">foo</div>"
58
- end
59
- assert_select "div" do |elements|
60
- assert elements.size == 2
61
- assert_select "#1"
62
- assert_select "#2"
63
- end
64
- end
65
-
66
- # With one result.
67
- def test_css_select_from_rjs_with_single_result
68
- render_rjs do |page|
69
- page.replace_html "test", "<div id=\"1\">foo</div>\n<div id=\"2\">foo</div>"
70
- end
71
- assert_equal 2, css_select("div").size
72
- assert_equal 1, css_select("#1").size
73
- assert_equal 1, css_select("#2").size
74
- end
75
-
76
- # With multiple results.
77
- def test_css_select_from_rjs_with_multiple_results
78
- render_rjs do |page|
79
- page.replace_html "test", "<div id=\"1\">foo</div>"
80
- page.replace_html "test2", "<div id=\"2\">foo</div>"
81
- end
82
-
83
- assert_equal 2, css_select("div").size
84
- assert_equal 1, css_select("#1").size
85
- assert_equal 1, css_select("#2").size
86
- end
87
-
88
- #
89
- # Test assert_select_rjs.
90
- #
91
-
92
- def test_assert_select_rjs_for_positioned_insert_should_fail_when_mixing_arguments
93
- render_rjs do |page|
94
- page.insert_html :top, "test1", "<div id=\"1\">foo</div>"
95
- page.insert_html :bottom, "test2", "<div id=\"2\">foo</div>"
96
- end
97
- assert_raise(Assertion) {assert_select_rjs :insert, :top, "test2"}
98
- end
99
-
100
- # Test that we can pick up all statements in the result.
101
- def test_assert_select_rjs_picks_up_all_statements
102
- render_rjs do |page|
103
- page.replace "test", "<div id=\"1\">foo</div>"
104
- page.replace_html "test2", "<div id=\"2\">foo</div>"
105
- page.insert_html :top, "test3", "<div id=\"3\">foo</div>"
106
- end
107
-
108
- found = false
109
- assert_select_rjs do
110
- assert_select "#1"
111
- assert_select "#2"
112
- assert_select "#3"
113
- found = true
114
- end
115
- assert found
116
- end
117
-
118
- # Test that we fail if there is nothing to pick.
119
- def test_assert_select_rjs_fails_if_nothing_to_pick
120
- render_rjs { }
121
- assert_raise(Assertion) { assert_select_rjs }
122
- end
123
-
124
- def test_assert_select_rjs_with_unicode
125
- # Test that non-ascii characters (which are converted into \uXXXX in RJS) are decoded correctly.
126
-
127
- unicode = "\343\203\201\343\202\261\343\203\203\343\203\210"
128
- render_rjs do |page|
129
- page.replace "test", %(<div id="1">#{unicode}</div>)
130
- end
131
-
132
- assert_select_rjs do
133
- str = "#1"
134
- assert_select str, :text => unicode
135
- assert_select str, unicode
136
- if str.respond_to?(:force_encoding)
137
- assert_select str, /\343\203\201..\343\203\210/u
138
- assert_raise(Assertion) { assert_select str, /\343\203\201.\343\203\210/u }
139
- else
140
- assert_select str, Regexp.new("\343\203\201..\343\203\210", 0, 'U')
141
- assert_raise(Assertion) { assert_select str, Regexp.new("\343\203\201.\343\203\210", 0, 'U') }
142
- end
143
- end
144
- end
145
-
146
- def test_assert_select_rjs_with_id
147
- # Test that we can pick up all statements in the result.
148
- render_rjs do |page|
149
- page.replace "test1", "<div id=\"1\">foo</div>"
150
- page.replace_html "test2", "<div id=\"2\">foo</div>"
151
- page.insert_html :top, "test3", "<div id=\"3\">foo</div>"
152
- end
153
- assert_select_rjs "test1" do
154
- assert_select "div", 1
155
- assert_select "#1"
156
- end
157
- assert_select_rjs "test2" do
158
- assert_select "div", 1
159
- assert_select "#2"
160
- end
161
- assert_select_rjs "test3" do
162
- assert_select "div", 1
163
- assert_select "#3"
164
- end
165
- assert_raise(Assertion) { assert_select_rjs "test4" }
166
- end
167
-
168
- def test_assert_select_rjs_for_replace
169
- render_rjs do |page|
170
- page.replace "test1", "<div id=\"1\">foo</div>"
171
- page.replace_html "test2", "<div id=\"2\">foo</div>"
172
- page.insert_html :top, "test3", "<div id=\"3\">foo</div>"
173
- end
174
- # Replace.
175
- assert_select_rjs :replace do
176
- assert_select "div", 1
177
- assert_select "#1"
178
- end
179
- assert_select_rjs :replace, "test1" do
180
- assert_select "div", 1
181
- assert_select "#1"
182
- end
183
- assert_raise(Assertion) { assert_select_rjs :replace, "test2" }
184
- # Replace HTML.
185
- assert_select_rjs :replace_html do
186
- assert_select "div", 1
187
- assert_select "#2"
188
- end
189
- assert_select_rjs :replace_html, "test2" do
190
- assert_select "div", 1
191
- assert_select "#2"
192
- end
193
- assert_raise(Assertion) { assert_select_rjs :replace_html, "test1" }
194
- end
195
-
196
- def test_assert_select_rjs_for_chained_replace
197
- render_rjs do |page|
198
- page['test1'].replace "<div id=\"1\">foo</div>"
199
- page['test2'].replace_html "<div id=\"2\">foo</div>"
200
- page.insert_html :top, "test3", "<div id=\"3\">foo</div>"
201
- end
202
- # Replace.
203
- assert_select_rjs :chained_replace do
204
- assert_select "div", 1
205
- assert_select "#1"
206
- end
207
- assert_select_rjs :chained_replace, "test1" do
208
- assert_select "div", 1
209
- assert_select "#1"
210
- end
211
- assert_raise(Assertion) { assert_select_rjs :chained_replace, "test2" }
212
- # Replace HTML.
213
- assert_select_rjs :chained_replace_html do
214
- assert_select "div", 1
215
- assert_select "#2"
216
- end
217
- assert_select_rjs :chained_replace_html, "test2" do
218
- assert_select "div", 1
219
- assert_select "#2"
220
- end
221
- assert_raise(Assertion) { assert_select_rjs :replace_html, "test1" }
222
- end
223
-
224
- # Simple remove
225
- def test_assert_select_rjs_for_remove
226
- render_rjs do |page|
227
- page.remove "test1"
228
- end
229
-
230
- assert_select_rjs :remove, "test1"
231
- end
232
-
233
- def test_assert_select_rjs_for_remove_offers_useful_error_when_assertion_fails
234
- render_rjs do |page|
235
- page.remove "test_with_typo"
236
- end
237
-
238
- assert_select_rjs :remove, "test1"
239
-
240
- rescue Assertion => e
241
- assert_equal "No RJS statement that removes 'test1' was rendered.", e.message
242
- end
243
-
244
- def test_assert_select_rjs_for_remove_ignores_block
245
- render_rjs do |page|
246
- page.remove "test1"
247
- end
248
-
249
- assert_nothing_raised do
250
- assert_select_rjs :remove, "test1" do
251
- assert_select "p"
252
- end
253
- end
254
- end
255
-
256
- # Simple show
257
- def test_assert_select_rjs_for_show
258
- render_rjs do |page|
259
- page.show "test1"
260
- end
261
-
262
- assert_select_rjs :show, "test1"
263
- end
264
-
265
- def test_assert_select_rjs_for_show_offers_useful_error_when_assertion_fails
266
- render_rjs do |page|
267
- page.show "test_with_typo"
268
- end
269
-
270
- assert_select_rjs :show, "test1"
271
-
272
- rescue Assertion => e
273
- assert_equal "No RJS statement that shows 'test1' was rendered.", e.message
274
- end
275
-
276
- def test_assert_select_rjs_for_show_ignores_block
277
- render_rjs do |page|
278
- page.show "test1"
279
- end
280
-
281
- assert_nothing_raised do
282
- assert_select_rjs :show, "test1" do
283
- assert_select "p"
284
- end
285
- end
286
- end
287
-
288
- # Simple hide
289
- def test_assert_select_rjs_for_hide
290
- render_rjs do |page|
291
- page.hide "test1"
292
- end
293
-
294
- assert_select_rjs :hide, "test1"
295
- end
296
-
297
- def test_assert_select_rjs_for_hide_offers_useful_error_when_assertion_fails
298
- render_rjs do |page|
299
- page.hide "test_with_typo"
300
- end
301
-
302
- assert_select_rjs :hide, "test1"
303
-
304
- rescue Assertion => e
305
- assert_equal "No RJS statement that hides 'test1' was rendered.", e.message
306
- end
307
-
308
- def test_assert_select_rjs_for_hide_ignores_block
309
- render_rjs do |page|
310
- page.hide "test1"
311
- end
312
-
313
- assert_nothing_raised do
314
- assert_select_rjs :hide, "test1" do
315
- assert_select "p"
316
- end
317
- end
318
- end
319
-
320
- # Simple toggle
321
- def test_assert_select_rjs_for_toggle
322
- render_rjs do |page|
323
- page.toggle "test1"
324
- end
325
-
326
- assert_select_rjs :toggle, "test1"
327
- end
328
-
329
- def test_assert_select_rjs_for_toggle_offers_useful_error_when_assertion_fails
330
- render_rjs do |page|
331
- page.toggle "test_with_typo"
332
- end
333
-
334
- assert_select_rjs :toggle, "test1"
335
-
336
- rescue Assertion => e
337
- assert_equal "No RJS statement that toggles 'test1' was rendered.", e.message
338
- end
339
-
340
- def test_assert_select_rjs_for_toggle_ignores_block
341
- render_rjs do |page|
342
- page.toggle "test1"
343
- end
344
-
345
- assert_nothing_raised do
346
- assert_select_rjs :toggle, "test1" do
347
- assert_select "p"
348
- end
349
- end
350
- end
351
-
352
- # Non-positioned insert.
353
- def test_assert_select_rjs_for_nonpositioned_insert
354
- render_rjs do |page|
355
- page.replace "test1", "<div id=\"1\">foo</div>"
356
- page.replace_html "test2", "<div id=\"2\">foo</div>"
357
- page.insert_html :top, "test3", "<div id=\"3\">foo</div>"
358
- end
359
- assert_select_rjs :insert_html do
360
- assert_select "div", 1
361
- assert_select "#3"
362
- end
363
- assert_select_rjs :insert_html, "test3" do
364
- assert_select "div", 1
365
- assert_select "#3"
366
- end
367
- assert_raise(Assertion) { assert_select_rjs :insert_html, "test1" }
368
- end
369
-
370
- # Positioned insert.
371
- def test_assert_select_rjs_for_positioned_insert
372
- render_rjs do |page|
373
- page.insert_html :top, "test1", "<div id=\"1\">foo</div>"
374
- page.insert_html :bottom, "test2", "<div id=\"2\">foo</div>"
375
- page.insert_html :before, "test3", "<div id=\"3\">foo</div>"
376
- page.insert_html :after, "test4", "<div id=\"4\">foo</div>"
377
- end
378
- assert_select_rjs :insert, :top do
379
- assert_select "div", 1
380
- assert_select "#1"
381
- end
382
- assert_select_rjs :insert, :bottom do
383
- assert_select "div", 1
384
- assert_select "#2"
385
- end
386
- assert_select_rjs :insert, :before do
387
- assert_select "div", 1
388
- assert_select "#3"
389
- end
390
- assert_select_rjs :insert, :after do
391
- assert_select "div", 1
392
- assert_select "#4"
393
- end
394
- assert_select_rjs :insert_html do
395
- assert_select "div", 4
396
- end
397
- end
398
-
399
- def test_assert_select_rjs_raise_errors
400
- assert_raise(ArgumentError) { assert_select_rjs(:destroy) }
401
- assert_raise(ArgumentError) { assert_select_rjs(:insert, :left) }
402
- end
403
-
404
- # Simple selection from a single result.
405
- def test_nested_assert_select_rjs_with_single_result
406
- render_rjs do |page|
407
- page.replace_html "test", "<div id=\"1\">foo</div>\n<div id=\"2\">foo</div>"
408
- end
409
-
410
- assert_select_rjs "test" do |elements|
411
- assert_equal 2, elements.size
412
- assert_select "#1"
413
- assert_select "#2"
414
- end
415
- end
416
-
417
- # Deal with two results.
418
- def test_nested_assert_select_rjs_with_two_results
419
- render_rjs do |page|
420
- page.replace_html "test", "<div id=\"1\">foo</div>"
421
- page.replace_html "test2", "<div id=\"2\">foo</div>"
422
- end
423
-
424
- assert_select_rjs "test" do |elements|
425
- assert_equal 1, elements.size
426
- assert_select "#1"
427
- end
428
-
429
- assert_select_rjs "test2" do |elements|
430
- assert_equal 1, elements.size
431
- assert_select "#2"
432
- end
433
- end
434
-
435
- def test_assert_select_rjs_for_redirect_to
436
- render_rjs do |page|
437
- page.redirect_to '/'
438
- end
439
- assert_select_rjs :redirect, '/'
440
- end
441
-
442
- protected
443
- def render_html(html)
444
- @controller.response_with = html
445
- get :html
446
- end
447
-
448
- def render_rjs(&block)
449
- @controller.response_with(&block)
450
- get :rjs
451
- end
452
-
453
- def render_xml(xml)
454
- @controller.response_with = xml
455
- get :xml
456
- end
457
- end
OSZAR »