actionpack 2.1.2 → 2.2.2

Sign up to get free protection for your applications and to get access to all the features.

Potentially problematic release.


This version of actionpack might be problematic. Click here for more details.

Files changed (200) hide show
  1. data/CHANGELOG +223 -7
  2. data/README +6 -12
  3. data/Rakefile +11 -11
  4. data/lib/action_controller.rb +9 -9
  5. data/lib/action_controller/assertions/response_assertions.rb +29 -78
  6. data/lib/action_controller/assertions/routing_assertions.rb +33 -33
  7. data/lib/action_controller/assertions/selector_assertions.rb +9 -5
  8. data/lib/action_controller/base.rb +227 -161
  9. data/lib/action_controller/benchmarking.rb +37 -24
  10. data/lib/action_controller/caching/actions.rb +53 -21
  11. data/lib/action_controller/caching/fragments.rb +10 -36
  12. data/lib/action_controller/caching/sweeping.rb +3 -3
  13. data/lib/action_controller/cgi_ext/session.rb +2 -22
  14. data/lib/action_controller/cgi_process.rb +8 -46
  15. data/lib/action_controller/components.rb +4 -1
  16. data/lib/action_controller/cookies.rb +10 -0
  17. data/lib/action_controller/dispatcher.rb +49 -15
  18. data/lib/action_controller/filters.rb +48 -10
  19. data/lib/action_controller/headers.rb +16 -14
  20. data/lib/action_controller/helpers.rb +2 -2
  21. data/lib/action_controller/http_authentication.rb +1 -1
  22. data/lib/action_controller/integration.rb +57 -60
  23. data/lib/action_controller/layout.rb +27 -53
  24. data/lib/action_controller/mime_responds.rb +5 -1
  25. data/lib/action_controller/mime_type.rb +64 -42
  26. data/lib/action_controller/mime_types.rb +2 -1
  27. data/lib/action_controller/performance_test.rb +16 -0
  28. data/lib/action_controller/polymorphic_routes.rb +16 -9
  29. data/lib/action_controller/rack_process.rb +303 -0
  30. data/lib/action_controller/request.rb +205 -97
  31. data/lib/action_controller/request_forgery_protection.rb +2 -2
  32. data/lib/action_controller/request_profiler.rb +0 -0
  33. data/lib/action_controller/rescue.rb +20 -115
  34. data/lib/action_controller/resources.rb +186 -83
  35. data/lib/action_controller/response.rb +140 -26
  36. data/lib/action_controller/routing.rb +28 -30
  37. data/lib/action_controller/routing/builder.rb +45 -54
  38. data/lib/action_controller/routing/optimisations.rb +31 -21
  39. data/lib/action_controller/routing/recognition_optimisation.rb +33 -27
  40. data/lib/action_controller/routing/route.rb +162 -147
  41. data/lib/action_controller/routing/route_set.rb +8 -7
  42. data/lib/action_controller/routing/routing_ext.rb +4 -1
  43. data/lib/action_controller/routing/segments.rb +50 -21
  44. data/lib/action_controller/session/cookie_store.rb +3 -2
  45. data/lib/action_controller/session/drb_server.rb +7 -7
  46. data/lib/action_controller/session_management.rb +6 -2
  47. data/lib/action_controller/streaming.rb +15 -8
  48. data/lib/action_controller/templates/rescues/diagnostics.erb +2 -2
  49. data/lib/action_controller/templates/rescues/template_error.erb +2 -2
  50. data/lib/action_controller/test_case.rb +66 -2
  51. data/lib/action_controller/test_process.rb +71 -66
  52. data/lib/action_controller/translation.rb +13 -0
  53. data/lib/action_controller/url_rewriter.rb +90 -13
  54. data/lib/action_controller/vendor/html-scanner/html/node.rb +9 -2
  55. data/lib/action_controller/vendor/html-scanner/html/sanitizer.rb +1 -1
  56. data/lib/action_controller/vendor/html-scanner/html/selector.rb +2 -2
  57. data/lib/action_controller/verification.rb +2 -2
  58. data/lib/action_pack/version.rb +1 -1
  59. data/lib/action_view.rb +19 -11
  60. data/lib/action_view/base.rb +184 -150
  61. data/lib/action_view/helpers.rb +38 -0
  62. data/lib/action_view/helpers/active_record_helper.rb +56 -27
  63. data/lib/action_view/helpers/asset_tag_helper.rb +356 -153
  64. data/lib/action_view/helpers/atom_feed_helper.rb +74 -19
  65. data/lib/action_view/helpers/benchmark_helper.rb +3 -3
  66. data/lib/action_view/helpers/cache_helper.rb +1 -2
  67. data/lib/action_view/helpers/capture_helper.rb +19 -44
  68. data/lib/action_view/helpers/date_helper.rb +486 -296
  69. data/lib/action_view/helpers/debug_helper.rb +20 -13
  70. data/lib/action_view/helpers/form_helper.rb +71 -30
  71. data/lib/action_view/helpers/form_options_helper.rb +15 -85
  72. data/lib/action_view/helpers/form_tag_helper.rb +61 -38
  73. data/lib/action_view/helpers/javascript_helper.rb +80 -89
  74. data/lib/action_view/helpers/number_helper.rb +179 -74
  75. data/lib/action_view/helpers/prototype_helper.rb +216 -201
  76. data/lib/action_view/helpers/record_tag_helper.rb +4 -5
  77. data/lib/action_view/helpers/sanitize_helper.rb +65 -33
  78. data/lib/action_view/helpers/scriptaculous_helper.rb +2 -2
  79. data/lib/action_view/helpers/tag_helper.rb +39 -22
  80. data/lib/action_view/helpers/text_helper.rb +212 -118
  81. data/lib/action_view/helpers/translation_helper.rb +21 -0
  82. data/lib/action_view/helpers/url_helper.rb +100 -58
  83. data/lib/action_view/inline_template.rb +13 -14
  84. data/lib/action_view/locale/en.yml +91 -0
  85. data/lib/action_view/partials.rb +100 -55
  86. data/lib/action_view/paths.rb +125 -0
  87. data/lib/action_view/renderable.rb +102 -0
  88. data/lib/action_view/renderable_partial.rb +48 -0
  89. data/lib/action_view/template.rb +90 -101
  90. data/lib/action_view/template_error.rb +11 -21
  91. data/lib/action_view/template_handler.rb +8 -28
  92. data/lib/action_view/template_handlers.rb +45 -0
  93. data/lib/action_view/template_handlers/builder.rb +5 -15
  94. data/lib/action_view/template_handlers/erb.rb +9 -6
  95. data/lib/action_view/template_handlers/rjs.rb +2 -17
  96. data/lib/action_view/test_case.rb +7 -4
  97. data/test/abstract_unit.rb +4 -1
  98. data/test/active_record_unit.rb +28 -30
  99. data/test/activerecord/render_partial_with_record_identification_test.rb +25 -12
  100. data/test/controller/action_pack_assertions_test.rb +8 -37
  101. data/test/controller/addresses_render_test.rb +0 -3
  102. data/test/controller/assert_select_test.rb +51 -24
  103. data/test/controller/base_test.rb +4 -4
  104. data/test/controller/caching_test.rb +136 -66
  105. data/test/controller/capture_test.rb +1 -21
  106. data/test/controller/cgi_test.rb +157 -10
  107. data/test/controller/components_test.rb +41 -25
  108. data/test/controller/content_type_test.rb +49 -17
  109. data/test/controller/cookie_test.rb +1 -1
  110. data/test/controller/deprecation/deprecated_base_methods_test.rb +0 -3
  111. data/test/controller/dispatcher_test.rb +9 -1
  112. data/test/controller/filter_params_test.rb +2 -2
  113. data/test/controller/filters_test.rb +13 -13
  114. data/test/controller/html-scanner/cdata_node_test.rb +15 -0
  115. data/test/controller/html-scanner/node_test.rb +21 -0
  116. data/test/controller/html-scanner/sanitizer_test.rb +14 -0
  117. data/test/controller/integration_test.rb +167 -6
  118. data/test/controller/layout_test.rb +11 -68
  119. data/test/controller/logging_test.rb +46 -0
  120. data/test/controller/mime_responds_test.rb +61 -59
  121. data/test/controller/mime_type_test.rb +6 -6
  122. data/test/controller/polymorphic_routes_test.rb +37 -2
  123. data/test/controller/rack_test.rb +323 -0
  124. data/test/controller/redirect_test.rb +72 -71
  125. data/test/controller/render_test.rb +1120 -108
  126. data/test/controller/request_forgery_protection_test.rb +66 -52
  127. data/test/controller/request_test.rb +103 -146
  128. data/test/controller/rescue_test.rb +20 -24
  129. data/test/controller/resources_test.rb +408 -25
  130. data/test/controller/routing_test.rb +1774 -1774
  131. data/test/controller/send_file_test.rb +0 -4
  132. data/test/controller/session/cookie_store_test.rb +53 -1
  133. data/test/controller/test_test.rb +15 -37
  134. data/test/controller/translation_test.rb +26 -0
  135. data/test/controller/url_rewriter_test.rb +27 -28
  136. data/test/controller/view_paths_test.rb +48 -47
  137. data/test/fixtures/_top_level_partial.html.erb +1 -0
  138. data/test/fixtures/_top_level_partial_only.erb +1 -0
  139. data/test/fixtures/developers/_developer.erb +1 -0
  140. data/test/fixtures/fun/games/_game.erb +1 -0
  141. data/test/fixtures/fun/serious/games/_game.erb +1 -0
  142. data/test/fixtures/functional_caching/formatted_fragment_cached.html.erb +3 -0
  143. data/test/fixtures/functional_caching/formatted_fragment_cached.js.rjs +6 -0
  144. data/test/fixtures/functional_caching/formatted_fragment_cached.xml.builder +5 -0
  145. data/test/fixtures/functional_caching/inline_fragment_cached.html.erb +2 -0
  146. data/test/fixtures/layouts/_column.html.erb +2 -0
  147. data/test/fixtures/projects/_project.erb +1 -0
  148. data/test/fixtures/public/javascripts/subdir/subdir.js +1 -0
  149. data/test/fixtures/public/stylesheets/subdir/subdir.css +1 -0
  150. data/test/fixtures/replies/_reply.erb +1 -0
  151. data/test/fixtures/test/_counter.html.erb +1 -0
  152. data/test/fixtures/test/_customer.erb +1 -1
  153. data/test/fixtures/test/_customer_with_var.erb +1 -0
  154. data/test/fixtures/test/_layout_for_block_with_args.html.erb +3 -0
  155. data/test/fixtures/test/_local_inspector.html.erb +1 -0
  156. data/test/fixtures/test/_partial_with_only_html_version.html.erb +1 -0
  157. data/test/fixtures/test/hello.builder +1 -1
  158. data/test/fixtures/test/hyphen-ated.erb +1 -0
  159. data/test/fixtures/test/implicit_content_type.atom.builder +2 -0
  160. data/test/fixtures/test/nested_layout.erb +3 -0
  161. data/test/fixtures/test/non_erb_block_content_for.builder +1 -1
  162. data/test/fixtures/test/sub_template_raise.html.erb +1 -0
  163. data/test/fixtures/test/template.erb +1 -0
  164. data/test/fixtures/test/using_layout_around_block_with_args.html.erb +1 -0
  165. data/test/template/active_record_helper_i18n_test.rb +46 -0
  166. data/test/template/active_record_helper_test.rb +24 -24
  167. data/test/template/asset_tag_helper_test.rb +161 -29
  168. data/test/template/atom_feed_helper_test.rb +114 -5
  169. data/test/template/compiled_templates_test.rb +59 -0
  170. data/test/template/date_helper_i18n_test.rb +113 -0
  171. data/test/template/date_helper_test.rb +403 -109
  172. data/test/template/form_helper_test.rb +213 -154
  173. data/test/template/form_options_helper_test.rb +249 -897
  174. data/test/template/form_tag_helper_test.rb +80 -32
  175. data/test/template/javascript_helper_test.rb +17 -18
  176. data/test/template/number_helper_i18n_test.rb +54 -0
  177. data/test/template/number_helper_test.rb +43 -13
  178. data/test/template/prototype_helper_test.rb +101 -84
  179. data/test/template/record_tag_helper_test.rb +24 -20
  180. data/test/template/render_test.rb +193 -0
  181. data/test/template/sanitize_helper_test.rb +3 -3
  182. data/test/template/tag_helper_test.rb +34 -14
  183. data/test/template/text_helper_test.rb +83 -9
  184. data/test/template/translation_helper_test.rb +28 -0
  185. data/test/template/url_helper_test.rb +55 -18
  186. metadata +57 -18
  187. data/lib/action_view/helpers/javascripts/controls.js +0 -963
  188. data/lib/action_view/helpers/javascripts/dragdrop.js +0 -972
  189. data/lib/action_view/helpers/javascripts/effects.js +0 -1120
  190. data/lib/action_view/helpers/javascripts/prototype.js +0 -4225
  191. data/lib/action_view/partial_template.rb +0 -70
  192. data/lib/action_view/template_finder.rb +0 -177
  193. data/lib/action_view/template_handlers/compilable.rb +0 -128
  194. data/test/controller/custom_handler_test.rb +0 -45
  195. data/test/controller/new_render_test.rb +0 -945
  196. data/test/fixtures/test/block_content_for.erb +0 -2
  197. data/test/fixtures/test/erb_content_for.erb +0 -2
  198. data/test/template/deprecated_erb_variable_test.rb +0 -9
  199. data/test/template/template_finder_test.rb +0 -73
  200. data/test/template/template_object_test.rb +0 -95
@@ -7,11 +7,11 @@ uses_mocha "FormOptionsHelperTest" do
7
7
  tests ActionView::Helpers::FormOptionsHelper
8
8
 
9
9
  silence_warnings do
10
- Post = Struct.new('Post', :title, :author_name, :body, :secret, :written_on, :category, :origin)
11
- Continent = Struct.new('Continent', :continent_name, :countries)
12
- Country = Struct.new('Country', :country_id, :country_name)
13
- Firm = Struct.new('Firm', :time_zone)
14
- Album = Struct.new('Album', :id, :title, :genre)
10
+ Post = Struct.new('Post', :title, :author_name, :body, :secret, :written_on, :category, :origin)
11
+ Continent = Struct.new('Continent', :continent_name, :countries)
12
+ Country = Struct.new('Country', :country_id, :country_name)
13
+ Firm = Struct.new('Firm', :time_zone)
14
+ Album = Struct.new('Album', :id, :title, :genre)
15
15
  end
16
16
 
17
17
  def setup
@@ -145,67 +145,67 @@ uses_mocha "FormOptionsHelperTest" do
145
145
  def test_time_zone_options_no_parms
146
146
  opts = time_zone_options_for_select
147
147
  assert_dom_equal "<option value=\"A\">A</option>\n" +
148
- "<option value=\"B\">B</option>\n" +
149
- "<option value=\"C\">C</option>\n" +
150
- "<option value=\"D\">D</option>\n" +
151
- "<option value=\"E\">E</option>",
152
- opts
148
+ "<option value=\"B\">B</option>\n" +
149
+ "<option value=\"C\">C</option>\n" +
150
+ "<option value=\"D\">D</option>\n" +
151
+ "<option value=\"E\">E</option>",
152
+ opts
153
153
  end
154
154
 
155
155
  def test_time_zone_options_with_selected
156
156
  opts = time_zone_options_for_select( "D" )
157
157
  assert_dom_equal "<option value=\"A\">A</option>\n" +
158
- "<option value=\"B\">B</option>\n" +
159
- "<option value=\"C\">C</option>\n" +
160
- "<option value=\"D\" selected=\"selected\">D</option>\n" +
161
- "<option value=\"E\">E</option>",
162
- opts
158
+ "<option value=\"B\">B</option>\n" +
159
+ "<option value=\"C\">C</option>\n" +
160
+ "<option value=\"D\" selected=\"selected\">D</option>\n" +
161
+ "<option value=\"E\">E</option>",
162
+ opts
163
163
  end
164
164
 
165
165
  def test_time_zone_options_with_unknown_selected
166
166
  opts = time_zone_options_for_select( "K" )
167
167
  assert_dom_equal "<option value=\"A\">A</option>\n" +
168
- "<option value=\"B\">B</option>\n" +
169
- "<option value=\"C\">C</option>\n" +
170
- "<option value=\"D\">D</option>\n" +
171
- "<option value=\"E\">E</option>",
172
- opts
168
+ "<option value=\"B\">B</option>\n" +
169
+ "<option value=\"C\">C</option>\n" +
170
+ "<option value=\"D\">D</option>\n" +
171
+ "<option value=\"E\">E</option>",
172
+ opts
173
173
  end
174
174
 
175
175
  def test_time_zone_options_with_priority_zones
176
176
  zones = [ ActiveSupport::TimeZone.new( "B" ), ActiveSupport::TimeZone.new( "E" ) ]
177
177
  opts = time_zone_options_for_select( nil, zones )
178
178
  assert_dom_equal "<option value=\"B\">B</option>\n" +
179
- "<option value=\"E\">E</option>" +
180
- "<option value=\"\" disabled=\"disabled\">-------------</option>\n" +
181
- "<option value=\"A\">A</option>\n" +
182
- "<option value=\"C\">C</option>\n" +
183
- "<option value=\"D\">D</option>",
184
- opts
179
+ "<option value=\"E\">E</option>" +
180
+ "<option value=\"\" disabled=\"disabled\">-------------</option>\n" +
181
+ "<option value=\"A\">A</option>\n" +
182
+ "<option value=\"C\">C</option>\n" +
183
+ "<option value=\"D\">D</option>",
184
+ opts
185
185
  end
186
186
 
187
187
  def test_time_zone_options_with_selected_priority_zones
188
188
  zones = [ ActiveSupport::TimeZone.new( "B" ), ActiveSupport::TimeZone.new( "E" ) ]
189
189
  opts = time_zone_options_for_select( "E", zones )
190
190
  assert_dom_equal "<option value=\"B\">B</option>\n" +
191
- "<option value=\"E\" selected=\"selected\">E</option>" +
192
- "<option value=\"\" disabled=\"disabled\">-------------</option>\n" +
193
- "<option value=\"A\">A</option>\n" +
194
- "<option value=\"C\">C</option>\n" +
195
- "<option value=\"D\">D</option>",
196
- opts
191
+ "<option value=\"E\" selected=\"selected\">E</option>" +
192
+ "<option value=\"\" disabled=\"disabled\">-------------</option>\n" +
193
+ "<option value=\"A\">A</option>\n" +
194
+ "<option value=\"C\">C</option>\n" +
195
+ "<option value=\"D\">D</option>",
196
+ opts
197
197
  end
198
198
 
199
199
  def test_time_zone_options_with_unselected_priority_zones
200
200
  zones = [ ActiveSupport::TimeZone.new( "B" ), ActiveSupport::TimeZone.new( "E" ) ]
201
201
  opts = time_zone_options_for_select( "C", zones )
202
202
  assert_dom_equal "<option value=\"B\">B</option>\n" +
203
- "<option value=\"E\">E</option>" +
204
- "<option value=\"\" disabled=\"disabled\">-------------</option>\n" +
205
- "<option value=\"A\">A</option>\n" +
206
- "<option value=\"C\" selected=\"selected\">C</option>\n" +
207
- "<option value=\"D\">D</option>",
208
- opts
203
+ "<option value=\"E\">E</option>" +
204
+ "<option value=\"\" disabled=\"disabled\">-------------</option>\n" +
205
+ "<option value=\"A\">A</option>\n" +
206
+ "<option value=\"C\" selected=\"selected\">C</option>\n" +
207
+ "<option value=\"D\">D</option>",
208
+ opts
209
209
  end
210
210
 
211
211
  def test_select
@@ -221,15 +221,42 @@ uses_mocha "FormOptionsHelperTest" do
221
221
  @post = Post.new
222
222
  @post.category = "<mus>"
223
223
 
224
- _erbout = ''
225
-
226
224
  fields_for :post, @post do |f|
227
- _erbout.concat f.select(:category, %w( abe <mus> hest))
225
+ concat f.select(:category, %w( abe <mus> hest))
228
226
  end
229
-
227
+
230
228
  assert_dom_equal(
231
229
  "<select id=\"post_category\" name=\"post[category]\"><option value=\"abe\">abe</option>\n<option value=\"&lt;mus&gt;\" selected=\"selected\">&lt;mus&gt;</option>\n<option value=\"hest\">hest</option></select>",
232
- _erbout
230
+ output_buffer
231
+ )
232
+ end
233
+
234
+ def test_select_under_fields_for_with_index
235
+ @post = Post.new
236
+ @post.category = "<mus>"
237
+
238
+ fields_for :post, @post, :index => 108 do |f|
239
+ concat f.select(:category, %w( abe <mus> hest))
240
+ end
241
+
242
+ assert_dom_equal(
243
+ "<select id=\"post_108_category\" name=\"post[108][category]\"><option value=\"abe\">abe</option>\n<option value=\"&lt;mus&gt;\" selected=\"selected\">&lt;mus&gt;</option>\n<option value=\"hest\">hest</option></select>",
244
+ output_buffer
245
+ )
246
+ end
247
+
248
+ def test_select_under_fields_for_with_auto_index
249
+ @post = Post.new
250
+ @post.category = "<mus>"
251
+ def @post.to_param; 108; end
252
+
253
+ fields_for "post[]", @post do |f|
254
+ concat f.select(:category, %w( abe <mus> hest))
255
+ end
256
+
257
+ assert_dom_equal(
258
+ "<select id=\"post_108_category\" name=\"post[108][category]\"><option value=\"abe\">abe</option>\n<option value=\"&lt;mus&gt;\" selected=\"selected\">&lt;mus&gt;</option>\n<option value=\"hest\">hest</option></select>",
259
+ output_buffer
233
260
  )
234
261
  end
235
262
 
@@ -295,15 +322,15 @@ uses_mocha "FormOptionsHelperTest" do
295
322
  select("post", "category", %w( abe <mus> hest ), :selected => 'abe')
296
323
  )
297
324
  end
298
-
325
+
299
326
  def test_select_with_index_option
300
327
  @album = Album.new
301
328
  @album.id = 1
302
-
303
- expected = "<select id=\"album__genre\" name=\"album[][genre]\"><option value=\"rap\">rap</option>\n<option value=\"rock\">rock</option>\n<option value=\"country\">country</option></select>"
329
+
330
+ expected = "<select id=\"album__genre\" name=\"album[][genre]\"><option value=\"rap\">rap</option>\n<option value=\"rock\">rock</option>\n<option value=\"country\">country</option></select>"
304
331
 
305
332
  assert_dom_equal(
306
- expected,
333
+ expected,
307
334
  select("album[]", "genre", %w[rap rock country], {}, { :index => nil })
308
335
  )
309
336
  end
@@ -343,15 +370,54 @@ uses_mocha "FormOptionsHelperTest" do
343
370
  @post = Post.new
344
371
  @post.author_name = "Babe"
345
372
 
346
- _erbout = ''
347
-
348
373
  fields_for :post, @post do |f|
349
- _erbout.concat f.collection_select(:author_name, @posts, :author_name, :author_name)
374
+ concat f.collection_select(:author_name, @posts, :author_name, :author_name)
350
375
  end
351
-
376
+
352
377
  assert_dom_equal(
353
378
  "<select id=\"post_author_name\" name=\"post[author_name]\"><option value=\"&lt;Abe&gt;\">&lt;Abe&gt;</option>\n<option value=\"Babe\" selected=\"selected\">Babe</option>\n<option value=\"Cabe\">Cabe</option></select>",
354
- _erbout
379
+ output_buffer
380
+ )
381
+ end
382
+
383
+ def test_collection_select_under_fields_for_with_index
384
+ @posts = [
385
+ Post.new("<Abe> went home", "<Abe>", "To a little house", "shh!"),
386
+ Post.new("Babe went home", "Babe", "To a little house", "shh!"),
387
+ Post.new("Cabe went home", "Cabe", "To a little house", "shh!")
388
+ ]
389
+
390
+ @post = Post.new
391
+ @post.author_name = "Babe"
392
+
393
+ fields_for :post, @post, :index => 815 do |f|
394
+ concat f.collection_select(:author_name, @posts, :author_name, :author_name)
395
+ end
396
+
397
+ assert_dom_equal(
398
+ "<select id=\"post_815_author_name\" name=\"post[815][author_name]\"><option value=\"&lt;Abe&gt;\">&lt;Abe&gt;</option>\n<option value=\"Babe\" selected=\"selected\">Babe</option>\n<option value=\"Cabe\">Cabe</option></select>",
399
+ output_buffer
400
+ )
401
+ end
402
+
403
+ def test_collection_select_under_fields_for_with_auto_index
404
+ @posts = [
405
+ Post.new("<Abe> went home", "<Abe>", "To a little house", "shh!"),
406
+ Post.new("Babe went home", "Babe", "To a little house", "shh!"),
407
+ Post.new("Cabe went home", "Cabe", "To a little house", "shh!")
408
+ ]
409
+
410
+ @post = Post.new
411
+ @post.author_name = "Babe"
412
+ def @post.to_param; 815; end
413
+
414
+ fields_for "post[]", @post do |f|
415
+ concat f.collection_select(:author_name, @posts, :author_name, :author_name)
416
+ end
417
+
418
+ assert_dom_equal(
419
+ "<select id=\"post_815_author_name\" name=\"post[815][author_name]\"><option value=\"&lt;Abe&gt;\">&lt;Abe&gt;</option>\n<option value=\"Babe\" selected=\"selected\">Babe</option>\n<option value=\"Cabe\">Cabe</option></select>",
420
+ output_buffer
355
421
  )
356
422
  end
357
423
 
@@ -406,806 +472,74 @@ uses_mocha "FormOptionsHelperTest" do
406
472
  assert_dom_equal expected, collection_select("post", "author_name", @posts, "author_name", "author_name", { :include_blank => true, :name => 'post[author_name][]' }, :multiple => true)
407
473
  end
408
474
 
409
- def test_country_select
410
- @post = Post.new
411
- @post.origin = "Denmark"
412
- expected_select = <<-COUNTRIES
413
- <select id="post_origin" name="post[origin]"><option value="Afghanistan">Afghanistan</option>
414
- <option value="Aland Islands">Aland Islands</option>
415
- <option value="Albania">Albania</option>
416
- <option value="Algeria">Algeria</option>
417
- <option value="American Samoa">American Samoa</option>
418
- <option value="Andorra">Andorra</option>
419
- <option value="Angola">Angola</option>
420
- <option value="Anguilla">Anguilla</option>
421
- <option value="Antarctica">Antarctica</option>
422
- <option value="Antigua And Barbuda">Antigua And Barbuda</option>
423
- <option value="Argentina">Argentina</option>
424
- <option value="Armenia">Armenia</option>
425
- <option value="Aruba">Aruba</option>
426
- <option value="Australia">Australia</option>
427
- <option value="Austria">Austria</option>
428
- <option value="Azerbaijan">Azerbaijan</option>
429
- <option value="Bahamas">Bahamas</option>
430
- <option value="Bahrain">Bahrain</option>
431
- <option value="Bangladesh">Bangladesh</option>
432
- <option value="Barbados">Barbados</option>
433
- <option value="Belarus">Belarus</option>
434
- <option value="Belgium">Belgium</option>
435
- <option value="Belize">Belize</option>
436
- <option value="Benin">Benin</option>
437
- <option value="Bermuda">Bermuda</option>
438
- <option value="Bhutan">Bhutan</option>
439
- <option value="Bolivia">Bolivia</option>
440
- <option value="Bosnia and Herzegowina">Bosnia and Herzegowina</option>
441
- <option value="Botswana">Botswana</option>
442
- <option value="Bouvet Island">Bouvet Island</option>
443
- <option value="Brazil">Brazil</option>
444
- <option value="British Indian Ocean Territory">British Indian Ocean Territory</option>
445
- <option value="Brunei Darussalam">Brunei Darussalam</option>
446
- <option value="Bulgaria">Bulgaria</option>
447
- <option value="Burkina Faso">Burkina Faso</option>
448
- <option value="Burundi">Burundi</option>
449
- <option value="Cambodia">Cambodia</option>
450
- <option value="Cameroon">Cameroon</option>
451
- <option value="Canada">Canada</option>
452
- <option value="Cape Verde">Cape Verde</option>
453
- <option value="Cayman Islands">Cayman Islands</option>
454
- <option value="Central African Republic">Central African Republic</option>
455
- <option value="Chad">Chad</option>
456
- <option value="Chile">Chile</option>
457
- <option value="China">China</option>
458
- <option value="Christmas Island">Christmas Island</option>
459
- <option value="Cocos (Keeling) Islands">Cocos (Keeling) Islands</option>
460
- <option value="Colombia">Colombia</option>
461
- <option value="Comoros">Comoros</option>
462
- <option value="Congo">Congo</option>
463
- <option value="Congo, the Democratic Republic of the">Congo, the Democratic Republic of the</option>
464
- <option value="Cook Islands">Cook Islands</option>
465
- <option value="Costa Rica">Costa Rica</option>
466
- <option value="Cote d'Ivoire">Cote d'Ivoire</option>
467
- <option value="Croatia">Croatia</option>
468
- <option value="Cuba">Cuba</option>
469
- <option value="Cyprus">Cyprus</option>
470
- <option value="Czech Republic">Czech Republic</option>
471
- <option selected="selected" value="Denmark">Denmark</option>
472
- <option value="Djibouti">Djibouti</option>
473
- <option value="Dominica">Dominica</option>
474
- <option value="Dominican Republic">Dominican Republic</option>
475
- <option value="Ecuador">Ecuador</option>
476
- <option value="Egypt">Egypt</option>
477
- <option value="El Salvador">El Salvador</option>
478
- <option value="Equatorial Guinea">Equatorial Guinea</option>
479
- <option value="Eritrea">Eritrea</option>
480
- <option value="Estonia">Estonia</option>
481
- <option value="Ethiopia">Ethiopia</option>
482
- <option value="Falkland Islands (Malvinas)">Falkland Islands (Malvinas)</option>
483
- <option value="Faroe Islands">Faroe Islands</option>
484
- <option value="Fiji">Fiji</option>
485
- <option value="Finland">Finland</option>
486
- <option value="France">France</option>
487
- <option value="French Guiana">French Guiana</option>
488
- <option value="French Polynesia">French Polynesia</option>
489
- <option value="French Southern Territories">French Southern Territories</option>
490
- <option value="Gabon">Gabon</option>
491
- <option value="Gambia">Gambia</option>
492
- <option value="Georgia">Georgia</option>
493
- <option value="Germany">Germany</option>
494
- <option value="Ghana">Ghana</option>
495
- <option value="Gibraltar">Gibraltar</option>
496
- <option value="Greece">Greece</option>
497
- <option value="Greenland">Greenland</option>
498
- <option value="Grenada">Grenada</option>
499
- <option value="Guadeloupe">Guadeloupe</option>
500
- <option value="Guam">Guam</option>
501
- <option value="Guatemala">Guatemala</option>
502
- <option value="Guernsey">Guernsey</option>
503
- <option value="Guinea">Guinea</option>
504
- <option value="Guinea-Bissau">Guinea-Bissau</option>
505
- <option value="Guyana">Guyana</option>
506
- <option value="Haiti">Haiti</option>
507
- <option value="Heard and McDonald Islands">Heard and McDonald Islands</option>
508
- <option value="Holy See (Vatican City State)">Holy See (Vatican City State)</option>
509
- <option value="Honduras">Honduras</option>
510
- <option value="Hong Kong">Hong Kong</option>
511
- <option value="Hungary">Hungary</option>
512
- <option value="Iceland">Iceland</option>
513
- <option value="India">India</option>
514
- <option value="Indonesia">Indonesia</option>
515
- <option value="Iran, Islamic Republic of">Iran, Islamic Republic of</option>
516
- <option value="Iraq">Iraq</option>
517
- <option value="Ireland">Ireland</option>
518
- <option value="Isle of Man">Isle of Man</option>
519
- <option value="Israel">Israel</option>
520
- <option value="Italy">Italy</option>
521
- <option value="Jamaica">Jamaica</option>
522
- <option value="Japan">Japan</option>
523
- <option value="Jersey">Jersey</option>
524
- <option value="Jordan">Jordan</option>
525
- <option value="Kazakhstan">Kazakhstan</option>
526
- <option value="Kenya">Kenya</option>
527
- <option value="Kiribati">Kiribati</option>
528
- <option value="Korea, Democratic People's Republic of">Korea, Democratic People's Republic of</option>
529
- <option value="Korea, Republic of">Korea, Republic of</option>
530
- <option value="Kuwait">Kuwait</option>
531
- <option value="Kyrgyzstan">Kyrgyzstan</option>
532
- <option value="Lao People's Democratic Republic">Lao People's Democratic Republic</option>
533
- <option value="Latvia">Latvia</option>
534
- <option value="Lebanon">Lebanon</option>
535
- <option value="Lesotho">Lesotho</option>
536
- <option value="Liberia">Liberia</option>
537
- <option value="Libyan Arab Jamahiriya">Libyan Arab Jamahiriya</option>
538
- <option value="Liechtenstein">Liechtenstein</option>
539
- <option value="Lithuania">Lithuania</option>
540
- <option value="Luxembourg">Luxembourg</option>
541
- <option value="Macao">Macao</option>
542
- <option value="Macedonia, The Former Yugoslav Republic Of">Macedonia, The Former Yugoslav Republic Of</option>
543
- <option value="Madagascar">Madagascar</option>
544
- <option value="Malawi">Malawi</option>
545
- <option value="Malaysia">Malaysia</option>
546
- <option value="Maldives">Maldives</option>
547
- <option value="Mali">Mali</option>
548
- <option value="Malta">Malta</option>
549
- <option value="Marshall Islands">Marshall Islands</option>
550
- <option value="Martinique">Martinique</option>
551
- <option value="Mauritania">Mauritania</option>
552
- <option value="Mauritius">Mauritius</option>
553
- <option value="Mayotte">Mayotte</option>
554
- <option value="Mexico">Mexico</option>
555
- <option value="Micronesia, Federated States of">Micronesia, Federated States of</option>
556
- <option value="Moldova, Republic of">Moldova, Republic of</option>
557
- <option value="Monaco">Monaco</option>
558
- <option value="Mongolia">Mongolia</option>
559
- <option value="Montenegro">Montenegro</option>
560
- <option value="Montserrat">Montserrat</option>
561
- <option value="Morocco">Morocco</option>
562
- <option value="Mozambique">Mozambique</option>
563
- <option value="Myanmar">Myanmar</option>
564
- <option value="Namibia">Namibia</option>
565
- <option value="Nauru">Nauru</option>
566
- <option value="Nepal">Nepal</option>
567
- <option value="Netherlands">Netherlands</option>
568
- <option value="Netherlands Antilles">Netherlands Antilles</option>
569
- <option value="New Caledonia">New Caledonia</option>
570
- <option value="New Zealand">New Zealand</option>
571
- <option value="Nicaragua">Nicaragua</option>
572
- <option value="Niger">Niger</option>
573
- <option value="Nigeria">Nigeria</option>
574
- <option value="Niue">Niue</option>
575
- <option value="Norfolk Island">Norfolk Island</option>
576
- <option value="Northern Mariana Islands">Northern Mariana Islands</option>
577
- <option value="Norway">Norway</option>
578
- <option value="Oman">Oman</option>
579
- <option value="Pakistan">Pakistan</option>
580
- <option value="Palau">Palau</option>
581
- <option value="Palestinian Territory, Occupied">Palestinian Territory, Occupied</option>
582
- <option value="Panama">Panama</option>
583
- <option value="Papua New Guinea">Papua New Guinea</option>
584
- <option value="Paraguay">Paraguay</option>
585
- <option value="Peru">Peru</option>
586
- <option value="Philippines">Philippines</option>
587
- <option value="Pitcairn">Pitcairn</option>
588
- <option value="Poland">Poland</option>
589
- <option value="Portugal">Portugal</option>
590
- <option value="Puerto Rico">Puerto Rico</option>
591
- <option value="Qatar">Qatar</option>
592
- <option value="Reunion">Reunion</option>
593
- <option value="Romania">Romania</option>
594
- <option value="Russian Federation">Russian Federation</option>
595
- <option value="Rwanda">Rwanda</option>
596
- <option value="Saint Barthelemy">Saint Barthelemy</option>
597
- <option value="Saint Helena">Saint Helena</option>
598
- <option value="Saint Kitts and Nevis">Saint Kitts and Nevis</option>
599
- <option value="Saint Lucia">Saint Lucia</option>
600
- <option value="Saint Pierre and Miquelon">Saint Pierre and Miquelon</option>
601
- <option value="Saint Vincent and the Grenadines">Saint Vincent and the Grenadines</option>
602
- <option value="Samoa">Samoa</option>
603
- <option value="San Marino">San Marino</option>
604
- <option value="Sao Tome and Principe">Sao Tome and Principe</option>
605
- <option value="Saudi Arabia">Saudi Arabia</option>
606
- <option value="Senegal">Senegal</option>
607
- <option value="Serbia">Serbia</option>
608
- <option value="Seychelles">Seychelles</option>
609
- <option value="Sierra Leone">Sierra Leone</option>
610
- <option value="Singapore">Singapore</option>
611
- <option value="Slovakia">Slovakia</option>
612
- <option value="Slovenia">Slovenia</option>
613
- <option value="Solomon Islands">Solomon Islands</option>
614
- <option value="Somalia">Somalia</option>
615
- <option value="South Africa">South Africa</option>
616
- <option value="South Georgia and the South Sandwich Islands">South Georgia and the South Sandwich Islands</option>
617
- <option value="Spain">Spain</option>
618
- <option value="Sri Lanka">Sri Lanka</option>
619
- <option value="Sudan">Sudan</option>
620
- <option value="Suriname">Suriname</option>
621
- <option value="Svalbard and Jan Mayen">Svalbard and Jan Mayen</option>
622
- <option value="Swaziland">Swaziland</option>
623
- <option value="Sweden">Sweden</option>
624
- <option value="Switzerland">Switzerland</option>
625
- <option value="Syrian Arab Republic">Syrian Arab Republic</option>
626
- <option value="Taiwan, Province of China">Taiwan, Province of China</option>
627
- <option value="Tajikistan">Tajikistan</option>
628
- <option value="Tanzania, United Republic of">Tanzania, United Republic of</option>
629
- <option value="Thailand">Thailand</option>
630
- <option value="Timor-Leste">Timor-Leste</option>
631
- <option value="Togo">Togo</option>
632
- <option value="Tokelau">Tokelau</option>
633
- <option value="Tonga">Tonga</option>
634
- <option value="Trinidad and Tobago">Trinidad and Tobago</option>
635
- <option value="Tunisia">Tunisia</option>
636
- <option value="Turkey">Turkey</option>
637
- <option value="Turkmenistan">Turkmenistan</option>
638
- <option value="Turks and Caicos Islands">Turks and Caicos Islands</option>
639
- <option value="Tuvalu">Tuvalu</option>
640
- <option value="Uganda">Uganda</option>
641
- <option value="Ukraine">Ukraine</option>
642
- <option value="United Arab Emirates">United Arab Emirates</option>
643
- <option value="United Kingdom">United Kingdom</option>
644
- <option value="United States">United States</option>
645
- <option value="United States Minor Outlying Islands">United States Minor Outlying Islands</option>
646
- <option value="Uruguay">Uruguay</option>
647
- <option value="Uzbekistan">Uzbekistan</option>
648
- <option value="Vanuatu">Vanuatu</option>
649
- <option value="Venezuela">Venezuela</option>
650
- <option value="Viet Nam">Viet Nam</option>
651
- <option value="Virgin Islands, British">Virgin Islands, British</option>
652
- <option value="Virgin Islands, U.S.">Virgin Islands, U.S.</option>
653
- <option value="Wallis and Futuna">Wallis and Futuna</option>
654
- <option value="Western Sahara">Western Sahara</option>
655
- <option value="Yemen">Yemen</option>
656
- <option value="Zambia">Zambia</option>
657
- <option value="Zimbabwe">Zimbabwe</option></select>
658
- COUNTRIES
659
- assert_deprecated 'list-of-countries' do
660
- assert_dom_equal(expected_select[0..-2], country_select("post", "origin"))
661
- end
475
+ def test_time_zone_select
476
+ @firm = Firm.new("D")
477
+ html = time_zone_select( "firm", "time_zone" )
478
+ assert_dom_equal "<select id=\"firm_time_zone\" name=\"firm[time_zone]\">" +
479
+ "<option value=\"A\">A</option>\n" +
480
+ "<option value=\"B\">B</option>\n" +
481
+ "<option value=\"C\">C</option>\n" +
482
+ "<option value=\"D\" selected=\"selected\">D</option>\n" +
483
+ "<option value=\"E\">E</option>" +
484
+ "</select>",
485
+ html
662
486
  end
663
487
 
664
- def test_country_select_with_priority_countries
665
- @post = Post.new
666
- @post.origin = "Denmark"
667
- expected_select = <<-COUNTRIES
668
- <select id="post_origin" name="post[origin]"><option value="New Zealand">New Zealand</option>
669
- <option value="Nicaragua">Nicaragua</option><option value="" disabled="disabled">-------------</option>
670
- <option value="Afghanistan">Afghanistan</option>
671
- <option value="Aland Islands">Aland Islands</option>
672
- <option value="Albania">Albania</option>
673
- <option value="Algeria">Algeria</option>
674
- <option value="American Samoa">American Samoa</option>
675
- <option value="Andorra">Andorra</option>
676
- <option value="Angola">Angola</option>
677
- <option value="Anguilla">Anguilla</option>
678
- <option value="Antarctica">Antarctica</option>
679
- <option value="Antigua And Barbuda">Antigua And Barbuda</option>
680
- <option value="Argentina">Argentina</option>
681
- <option value="Armenia">Armenia</option>
682
- <option value="Aruba">Aruba</option>
683
- <option value="Australia">Australia</option>
684
- <option value="Austria">Austria</option>
685
- <option value="Azerbaijan">Azerbaijan</option>
686
- <option value="Bahamas">Bahamas</option>
687
- <option value="Bahrain">Bahrain</option>
688
- <option value="Bangladesh">Bangladesh</option>
689
- <option value="Barbados">Barbados</option>
690
- <option value="Belarus">Belarus</option>
691
- <option value="Belgium">Belgium</option>
692
- <option value="Belize">Belize</option>
693
- <option value="Benin">Benin</option>
694
- <option value="Bermuda">Bermuda</option>
695
- <option value="Bhutan">Bhutan</option>
696
- <option value="Bolivia">Bolivia</option>
697
- <option value="Bosnia and Herzegowina">Bosnia and Herzegowina</option>
698
- <option value="Botswana">Botswana</option>
699
- <option value="Bouvet Island">Bouvet Island</option>
700
- <option value="Brazil">Brazil</option>
701
- <option value="British Indian Ocean Territory">British Indian Ocean Territory</option>
702
- <option value="Brunei Darussalam">Brunei Darussalam</option>
703
- <option value="Bulgaria">Bulgaria</option>
704
- <option value="Burkina Faso">Burkina Faso</option>
705
- <option value="Burundi">Burundi</option>
706
- <option value="Cambodia">Cambodia</option>
707
- <option value="Cameroon">Cameroon</option>
708
- <option value="Canada">Canada</option>
709
- <option value="Cape Verde">Cape Verde</option>
710
- <option value="Cayman Islands">Cayman Islands</option>
711
- <option value="Central African Republic">Central African Republic</option>
712
- <option value="Chad">Chad</option>
713
- <option value="Chile">Chile</option>
714
- <option value="China">China</option>
715
- <option value="Christmas Island">Christmas Island</option>
716
- <option value="Cocos (Keeling) Islands">Cocos (Keeling) Islands</option>
717
- <option value="Colombia">Colombia</option>
718
- <option value="Comoros">Comoros</option>
719
- <option value="Congo">Congo</option>
720
- <option value="Congo, the Democratic Republic of the">Congo, the Democratic Republic of the</option>
721
- <option value="Cook Islands">Cook Islands</option>
722
- <option value="Costa Rica">Costa Rica</option>
723
- <option value="Cote d'Ivoire">Cote d'Ivoire</option>
724
- <option value="Croatia">Croatia</option>
725
- <option value="Cuba">Cuba</option>
726
- <option value="Cyprus">Cyprus</option>
727
- <option value="Czech Republic">Czech Republic</option>
728
- <option selected="selected" value="Denmark">Denmark</option>
729
- <option value="Djibouti">Djibouti</option>
730
- <option value="Dominica">Dominica</option>
731
- <option value="Dominican Republic">Dominican Republic</option>
732
- <option value="Ecuador">Ecuador</option>
733
- <option value="Egypt">Egypt</option>
734
- <option value="El Salvador">El Salvador</option>
735
- <option value="Equatorial Guinea">Equatorial Guinea</option>
736
- <option value="Eritrea">Eritrea</option>
737
- <option value="Estonia">Estonia</option>
738
- <option value="Ethiopia">Ethiopia</option>
739
- <option value="Falkland Islands (Malvinas)">Falkland Islands (Malvinas)</option>
740
- <option value="Faroe Islands">Faroe Islands</option>
741
- <option value="Fiji">Fiji</option>
742
- <option value="Finland">Finland</option>
743
- <option value="France">France</option>
744
- <option value="French Guiana">French Guiana</option>
745
- <option value="French Polynesia">French Polynesia</option>
746
- <option value="French Southern Territories">French Southern Territories</option>
747
- <option value="Gabon">Gabon</option>
748
- <option value="Gambia">Gambia</option>
749
- <option value="Georgia">Georgia</option>
750
- <option value="Germany">Germany</option>
751
- <option value="Ghana">Ghana</option>
752
- <option value="Gibraltar">Gibraltar</option>
753
- <option value="Greece">Greece</option>
754
- <option value="Greenland">Greenland</option>
755
- <option value="Grenada">Grenada</option>
756
- <option value="Guadeloupe">Guadeloupe</option>
757
- <option value="Guam">Guam</option>
758
- <option value="Guatemala">Guatemala</option>
759
- <option value="Guernsey">Guernsey</option>
760
- <option value="Guinea">Guinea</option>
761
- <option value="Guinea-Bissau">Guinea-Bissau</option>
762
- <option value="Guyana">Guyana</option>
763
- <option value="Haiti">Haiti</option>
764
- <option value="Heard and McDonald Islands">Heard and McDonald Islands</option>
765
- <option value="Holy See (Vatican City State)">Holy See (Vatican City State)</option>
766
- <option value="Honduras">Honduras</option>
767
- <option value="Hong Kong">Hong Kong</option>
768
- <option value="Hungary">Hungary</option>
769
- <option value="Iceland">Iceland</option>
770
- <option value="India">India</option>
771
- <option value="Indonesia">Indonesia</option>
772
- <option value="Iran, Islamic Republic of">Iran, Islamic Republic of</option>
773
- <option value="Iraq">Iraq</option>
774
- <option value="Ireland">Ireland</option>
775
- <option value="Isle of Man">Isle of Man</option>
776
- <option value="Israel">Israel</option>
777
- <option value="Italy">Italy</option>
778
- <option value="Jamaica">Jamaica</option>
779
- <option value="Japan">Japan</option>
780
- <option value="Jersey">Jersey</option>
781
- <option value="Jordan">Jordan</option>
782
- <option value="Kazakhstan">Kazakhstan</option>
783
- <option value="Kenya">Kenya</option>
784
- <option value="Kiribati">Kiribati</option>
785
- <option value="Korea, Democratic People's Republic of">Korea, Democratic People's Republic of</option>
786
- <option value="Korea, Republic of">Korea, Republic of</option>
787
- <option value="Kuwait">Kuwait</option>
788
- <option value="Kyrgyzstan">Kyrgyzstan</option>
789
- <option value="Lao People's Democratic Republic">Lao People's Democratic Republic</option>
790
- <option value="Latvia">Latvia</option>
791
- <option value="Lebanon">Lebanon</option>
792
- <option value="Lesotho">Lesotho</option>
793
- <option value="Liberia">Liberia</option>
794
- <option value="Libyan Arab Jamahiriya">Libyan Arab Jamahiriya</option>
795
- <option value="Liechtenstein">Liechtenstein</option>
796
- <option value="Lithuania">Lithuania</option>
797
- <option value="Luxembourg">Luxembourg</option>
798
- <option value="Macao">Macao</option>
799
- <option value="Macedonia, The Former Yugoslav Republic Of">Macedonia, The Former Yugoslav Republic Of</option>
800
- <option value="Madagascar">Madagascar</option>
801
- <option value="Malawi">Malawi</option>
802
- <option value="Malaysia">Malaysia</option>
803
- <option value="Maldives">Maldives</option>
804
- <option value="Mali">Mali</option>
805
- <option value="Malta">Malta</option>
806
- <option value="Marshall Islands">Marshall Islands</option>
807
- <option value="Martinique">Martinique</option>
808
- <option value="Mauritania">Mauritania</option>
809
- <option value="Mauritius">Mauritius</option>
810
- <option value="Mayotte">Mayotte</option>
811
- <option value="Mexico">Mexico</option>
812
- <option value="Micronesia, Federated States of">Micronesia, Federated States of</option>
813
- <option value="Moldova, Republic of">Moldova, Republic of</option>
814
- <option value="Monaco">Monaco</option>
815
- <option value="Mongolia">Mongolia</option>
816
- <option value="Montenegro">Montenegro</option>
817
- <option value="Montserrat">Montserrat</option>
818
- <option value="Morocco">Morocco</option>
819
- <option value="Mozambique">Mozambique</option>
820
- <option value="Myanmar">Myanmar</option>
821
- <option value="Namibia">Namibia</option>
822
- <option value="Nauru">Nauru</option>
823
- <option value="Nepal">Nepal</option>
824
- <option value="Netherlands">Netherlands</option>
825
- <option value="Netherlands Antilles">Netherlands Antilles</option>
826
- <option value="New Caledonia">New Caledonia</option>
827
- <option value="New Zealand">New Zealand</option>
828
- <option value="Nicaragua">Nicaragua</option>
829
- <option value="Niger">Niger</option>
830
- <option value="Nigeria">Nigeria</option>
831
- <option value="Niue">Niue</option>
832
- <option value="Norfolk Island">Norfolk Island</option>
833
- <option value="Northern Mariana Islands">Northern Mariana Islands</option>
834
- <option value="Norway">Norway</option>
835
- <option value="Oman">Oman</option>
836
- <option value="Pakistan">Pakistan</option>
837
- <option value="Palau">Palau</option>
838
- <option value="Palestinian Territory, Occupied">Palestinian Territory, Occupied</option>
839
- <option value="Panama">Panama</option>
840
- <option value="Papua New Guinea">Papua New Guinea</option>
841
- <option value="Paraguay">Paraguay</option>
842
- <option value="Peru">Peru</option>
843
- <option value="Philippines">Philippines</option>
844
- <option value="Pitcairn">Pitcairn</option>
845
- <option value="Poland">Poland</option>
846
- <option value="Portugal">Portugal</option>
847
- <option value="Puerto Rico">Puerto Rico</option>
848
- <option value="Qatar">Qatar</option>
849
- <option value="Reunion">Reunion</option>
850
- <option value="Romania">Romania</option>
851
- <option value="Russian Federation">Russian Federation</option>
852
- <option value="Rwanda">Rwanda</option>
853
- <option value="Saint Barthelemy">Saint Barthelemy</option>
854
- <option value="Saint Helena">Saint Helena</option>
855
- <option value="Saint Kitts and Nevis">Saint Kitts and Nevis</option>
856
- <option value="Saint Lucia">Saint Lucia</option>
857
- <option value="Saint Pierre and Miquelon">Saint Pierre and Miquelon</option>
858
- <option value="Saint Vincent and the Grenadines">Saint Vincent and the Grenadines</option>
859
- <option value="Samoa">Samoa</option>
860
- <option value="San Marino">San Marino</option>
861
- <option value="Sao Tome and Principe">Sao Tome and Principe</option>
862
- <option value="Saudi Arabia">Saudi Arabia</option>
863
- <option value="Senegal">Senegal</option>
864
- <option value="Serbia">Serbia</option>
865
- <option value="Seychelles">Seychelles</option>
866
- <option value="Sierra Leone">Sierra Leone</option>
867
- <option value="Singapore">Singapore</option>
868
- <option value="Slovakia">Slovakia</option>
869
- <option value="Slovenia">Slovenia</option>
870
- <option value="Solomon Islands">Solomon Islands</option>
871
- <option value="Somalia">Somalia</option>
872
- <option value="South Africa">South Africa</option>
873
- <option value="South Georgia and the South Sandwich Islands">South Georgia and the South Sandwich Islands</option>
874
- <option value="Spain">Spain</option>
875
- <option value="Sri Lanka">Sri Lanka</option>
876
- <option value="Sudan">Sudan</option>
877
- <option value="Suriname">Suriname</option>
878
- <option value="Svalbard and Jan Mayen">Svalbard and Jan Mayen</option>
879
- <option value="Swaziland">Swaziland</option>
880
- <option value="Sweden">Sweden</option>
881
- <option value="Switzerland">Switzerland</option>
882
- <option value="Syrian Arab Republic">Syrian Arab Republic</option>
883
- <option value="Taiwan, Province of China">Taiwan, Province of China</option>
884
- <option value="Tajikistan">Tajikistan</option>
885
- <option value="Tanzania, United Republic of">Tanzania, United Republic of</option>
886
- <option value="Thailand">Thailand</option>
887
- <option value="Timor-Leste">Timor-Leste</option>
888
- <option value="Togo">Togo</option>
889
- <option value="Tokelau">Tokelau</option>
890
- <option value="Tonga">Tonga</option>
891
- <option value="Trinidad and Tobago">Trinidad and Tobago</option>
892
- <option value="Tunisia">Tunisia</option>
893
- <option value="Turkey">Turkey</option>
894
- <option value="Turkmenistan">Turkmenistan</option>
895
- <option value="Turks and Caicos Islands">Turks and Caicos Islands</option>
896
- <option value="Tuvalu">Tuvalu</option>
897
- <option value="Uganda">Uganda</option>
898
- <option value="Ukraine">Ukraine</option>
899
- <option value="United Arab Emirates">United Arab Emirates</option>
900
- <option value="United Kingdom">United Kingdom</option>
901
- <option value="United States">United States</option>
902
- <option value="United States Minor Outlying Islands">United States Minor Outlying Islands</option>
903
- <option value="Uruguay">Uruguay</option>
904
- <option value="Uzbekistan">Uzbekistan</option>
905
- <option value="Vanuatu">Vanuatu</option>
906
- <option value="Venezuela">Venezuela</option>
907
- <option value="Viet Nam">Viet Nam</option>
908
- <option value="Virgin Islands, British">Virgin Islands, British</option>
909
- <option value="Virgin Islands, U.S.">Virgin Islands, U.S.</option>
910
- <option value="Wallis and Futuna">Wallis and Futuna</option>
911
- <option value="Western Sahara">Western Sahara</option>
912
- <option value="Yemen">Yemen</option>
913
- <option value="Zambia">Zambia</option>
914
- <option value="Zimbabwe">Zimbabwe</option></select>
915
- COUNTRIES
916
- assert_deprecated 'list-of-countries' do
917
- assert_dom_equal(expected_select[0..-2], country_select("post", "origin", ["New Zealand", "Nicaragua"]))
918
- end
919
- end
488
+ def test_time_zone_select_under_fields_for
489
+ @firm = Firm.new("D")
920
490
 
921
- def test_country_select_with_selected_priority_country
922
- @post = Post.new
923
- @post.origin = "New Zealand"
924
- expected_select = <<-COUNTRIES
925
- <select id="post_origin" name="post[origin]"><option selected="selected" value="New Zealand">New Zealand</option>
926
- <option value="Nicaragua">Nicaragua</option><option value="" disabled="disabled">-------------</option>
927
- <option value="Afghanistan">Afghanistan</option>
928
- <option value="Aland Islands">Aland Islands</option>
929
- <option value="Albania">Albania</option>
930
- <option value="Algeria">Algeria</option>
931
- <option value="American Samoa">American Samoa</option>
932
- <option value="Andorra">Andorra</option>
933
- <option value="Angola">Angola</option>
934
- <option value="Anguilla">Anguilla</option>
935
- <option value="Antarctica">Antarctica</option>
936
- <option value="Antigua And Barbuda">Antigua And Barbuda</option>
937
- <option value="Argentina">Argentina</option>
938
- <option value="Armenia">Armenia</option>
939
- <option value="Aruba">Aruba</option>
940
- <option value="Australia">Australia</option>
941
- <option value="Austria">Austria</option>
942
- <option value="Azerbaijan">Azerbaijan</option>
943
- <option value="Bahamas">Bahamas</option>
944
- <option value="Bahrain">Bahrain</option>
945
- <option value="Bangladesh">Bangladesh</option>
946
- <option value="Barbados">Barbados</option>
947
- <option value="Belarus">Belarus</option>
948
- <option value="Belgium">Belgium</option>
949
- <option value="Belize">Belize</option>
950
- <option value="Benin">Benin</option>
951
- <option value="Bermuda">Bermuda</option>
952
- <option value="Bhutan">Bhutan</option>
953
- <option value="Bolivia">Bolivia</option>
954
- <option value="Bosnia and Herzegowina">Bosnia and Herzegowina</option>
955
- <option value="Botswana">Botswana</option>
956
- <option value="Bouvet Island">Bouvet Island</option>
957
- <option value="Brazil">Brazil</option>
958
- <option value="British Indian Ocean Territory">British Indian Ocean Territory</option>
959
- <option value="Brunei Darussalam">Brunei Darussalam</option>
960
- <option value="Bulgaria">Bulgaria</option>
961
- <option value="Burkina Faso">Burkina Faso</option>
962
- <option value="Burundi">Burundi</option>
963
- <option value="Cambodia">Cambodia</option>
964
- <option value="Cameroon">Cameroon</option>
965
- <option value="Canada">Canada</option>
966
- <option value="Cape Verde">Cape Verde</option>
967
- <option value="Cayman Islands">Cayman Islands</option>
968
- <option value="Central African Republic">Central African Republic</option>
969
- <option value="Chad">Chad</option>
970
- <option value="Chile">Chile</option>
971
- <option value="China">China</option>
972
- <option value="Christmas Island">Christmas Island</option>
973
- <option value="Cocos (Keeling) Islands">Cocos (Keeling) Islands</option>
974
- <option value="Colombia">Colombia</option>
975
- <option value="Comoros">Comoros</option>
976
- <option value="Congo">Congo</option>
977
- <option value="Congo, the Democratic Republic of the">Congo, the Democratic Republic of the</option>
978
- <option value="Cook Islands">Cook Islands</option>
979
- <option value="Costa Rica">Costa Rica</option>
980
- <option value="Cote d'Ivoire">Cote d'Ivoire</option>
981
- <option value="Croatia">Croatia</option>
982
- <option value="Cuba">Cuba</option>
983
- <option value="Cyprus">Cyprus</option>
984
- <option value="Czech Republic">Czech Republic</option>
985
- <option value="Denmark">Denmark</option>
986
- <option value="Djibouti">Djibouti</option>
987
- <option value="Dominica">Dominica</option>
988
- <option value="Dominican Republic">Dominican Republic</option>
989
- <option value="Ecuador">Ecuador</option>
990
- <option value="Egypt">Egypt</option>
991
- <option value="El Salvador">El Salvador</option>
992
- <option value="Equatorial Guinea">Equatorial Guinea</option>
993
- <option value="Eritrea">Eritrea</option>
994
- <option value="Estonia">Estonia</option>
995
- <option value="Ethiopia">Ethiopia</option>
996
- <option value="Falkland Islands (Malvinas)">Falkland Islands (Malvinas)</option>
997
- <option value="Faroe Islands">Faroe Islands</option>
998
- <option value="Fiji">Fiji</option>
999
- <option value="Finland">Finland</option>
1000
- <option value="France">France</option>
1001
- <option value="French Guiana">French Guiana</option>
1002
- <option value="French Polynesia">French Polynesia</option>
1003
- <option value="French Southern Territories">French Southern Territories</option>
1004
- <option value="Gabon">Gabon</option>
1005
- <option value="Gambia">Gambia</option>
1006
- <option value="Georgia">Georgia</option>
1007
- <option value="Germany">Germany</option>
1008
- <option value="Ghana">Ghana</option>
1009
- <option value="Gibraltar">Gibraltar</option>
1010
- <option value="Greece">Greece</option>
1011
- <option value="Greenland">Greenland</option>
1012
- <option value="Grenada">Grenada</option>
1013
- <option value="Guadeloupe">Guadeloupe</option>
1014
- <option value="Guam">Guam</option>
1015
- <option value="Guatemala">Guatemala</option>
1016
- <option value="Guernsey">Guernsey</option>
1017
- <option value="Guinea">Guinea</option>
1018
- <option value="Guinea-Bissau">Guinea-Bissau</option>
1019
- <option value="Guyana">Guyana</option>
1020
- <option value="Haiti">Haiti</option>
1021
- <option value="Heard and McDonald Islands">Heard and McDonald Islands</option>
1022
- <option value="Holy See (Vatican City State)">Holy See (Vatican City State)</option>
1023
- <option value="Honduras">Honduras</option>
1024
- <option value="Hong Kong">Hong Kong</option>
1025
- <option value="Hungary">Hungary</option>
1026
- <option value="Iceland">Iceland</option>
1027
- <option value="India">India</option>
1028
- <option value="Indonesia">Indonesia</option>
1029
- <option value="Iran, Islamic Republic of">Iran, Islamic Republic of</option>
1030
- <option value="Iraq">Iraq</option>
1031
- <option value="Ireland">Ireland</option>
1032
- <option value="Isle of Man">Isle of Man</option>
1033
- <option value="Israel">Israel</option>
1034
- <option value="Italy">Italy</option>
1035
- <option value="Jamaica">Jamaica</option>
1036
- <option value="Japan">Japan</option>
1037
- <option value="Jersey">Jersey</option>
1038
- <option value="Jordan">Jordan</option>
1039
- <option value="Kazakhstan">Kazakhstan</option>
1040
- <option value="Kenya">Kenya</option>
1041
- <option value="Kiribati">Kiribati</option>
1042
- <option value="Korea, Democratic People's Republic of">Korea, Democratic People's Republic of</option>
1043
- <option value="Korea, Republic of">Korea, Republic of</option>
1044
- <option value="Kuwait">Kuwait</option>
1045
- <option value="Kyrgyzstan">Kyrgyzstan</option>
1046
- <option value="Lao People's Democratic Republic">Lao People's Democratic Republic</option>
1047
- <option value="Latvia">Latvia</option>
1048
- <option value="Lebanon">Lebanon</option>
1049
- <option value="Lesotho">Lesotho</option>
1050
- <option value="Liberia">Liberia</option>
1051
- <option value="Libyan Arab Jamahiriya">Libyan Arab Jamahiriya</option>
1052
- <option value="Liechtenstein">Liechtenstein</option>
1053
- <option value="Lithuania">Lithuania</option>
1054
- <option value="Luxembourg">Luxembourg</option>
1055
- <option value="Macao">Macao</option>
1056
- <option value="Macedonia, The Former Yugoslav Republic Of">Macedonia, The Former Yugoslav Republic Of</option>
1057
- <option value="Madagascar">Madagascar</option>
1058
- <option value="Malawi">Malawi</option>
1059
- <option value="Malaysia">Malaysia</option>
1060
- <option value="Maldives">Maldives</option>
1061
- <option value="Mali">Mali</option>
1062
- <option value="Malta">Malta</option>
1063
- <option value="Marshall Islands">Marshall Islands</option>
1064
- <option value="Martinique">Martinique</option>
1065
- <option value="Mauritania">Mauritania</option>
1066
- <option value="Mauritius">Mauritius</option>
1067
- <option value="Mayotte">Mayotte</option>
1068
- <option value="Mexico">Mexico</option>
1069
- <option value="Micronesia, Federated States of">Micronesia, Federated States of</option>
1070
- <option value="Moldova, Republic of">Moldova, Republic of</option>
1071
- <option value="Monaco">Monaco</option>
1072
- <option value="Mongolia">Mongolia</option>
1073
- <option value="Montenegro">Montenegro</option>
1074
- <option value="Montserrat">Montserrat</option>
1075
- <option value="Morocco">Morocco</option>
1076
- <option value="Mozambique">Mozambique</option>
1077
- <option value="Myanmar">Myanmar</option>
1078
- <option value="Namibia">Namibia</option>
1079
- <option value="Nauru">Nauru</option>
1080
- <option value="Nepal">Nepal</option>
1081
- <option value="Netherlands">Netherlands</option>
1082
- <option value="Netherlands Antilles">Netherlands Antilles</option>
1083
- <option value="New Caledonia">New Caledonia</option>
1084
- <option selected="selected" value="New Zealand">New Zealand</option>
1085
- <option value="Nicaragua">Nicaragua</option>
1086
- <option value="Niger">Niger</option>
1087
- <option value="Nigeria">Nigeria</option>
1088
- <option value="Niue">Niue</option>
1089
- <option value="Norfolk Island">Norfolk Island</option>
1090
- <option value="Northern Mariana Islands">Northern Mariana Islands</option>
1091
- <option value="Norway">Norway</option>
1092
- <option value="Oman">Oman</option>
1093
- <option value="Pakistan">Pakistan</option>
1094
- <option value="Palau">Palau</option>
1095
- <option value="Palestinian Territory, Occupied">Palestinian Territory, Occupied</option>
1096
- <option value="Panama">Panama</option>
1097
- <option value="Papua New Guinea">Papua New Guinea</option>
1098
- <option value="Paraguay">Paraguay</option>
1099
- <option value="Peru">Peru</option>
1100
- <option value="Philippines">Philippines</option>
1101
- <option value="Pitcairn">Pitcairn</option>
1102
- <option value="Poland">Poland</option>
1103
- <option value="Portugal">Portugal</option>
1104
- <option value="Puerto Rico">Puerto Rico</option>
1105
- <option value="Qatar">Qatar</option>
1106
- <option value="Reunion">Reunion</option>
1107
- <option value="Romania">Romania</option>
1108
- <option value="Russian Federation">Russian Federation</option>
1109
- <option value="Rwanda">Rwanda</option>
1110
- <option value="Saint Barthelemy">Saint Barthelemy</option>
1111
- <option value="Saint Helena">Saint Helena</option>
1112
- <option value="Saint Kitts and Nevis">Saint Kitts and Nevis</option>
1113
- <option value="Saint Lucia">Saint Lucia</option>
1114
- <option value="Saint Pierre and Miquelon">Saint Pierre and Miquelon</option>
1115
- <option value="Saint Vincent and the Grenadines">Saint Vincent and the Grenadines</option>
1116
- <option value="Samoa">Samoa</option>
1117
- <option value="San Marino">San Marino</option>
1118
- <option value="Sao Tome and Principe">Sao Tome and Principe</option>
1119
- <option value="Saudi Arabia">Saudi Arabia</option>
1120
- <option value="Senegal">Senegal</option>
1121
- <option value="Serbia">Serbia</option>
1122
- <option value="Seychelles">Seychelles</option>
1123
- <option value="Sierra Leone">Sierra Leone</option>
1124
- <option value="Singapore">Singapore</option>
1125
- <option value="Slovakia">Slovakia</option>
1126
- <option value="Slovenia">Slovenia</option>
1127
- <option value="Solomon Islands">Solomon Islands</option>
1128
- <option value="Somalia">Somalia</option>
1129
- <option value="South Africa">South Africa</option>
1130
- <option value="South Georgia and the South Sandwich Islands">South Georgia and the South Sandwich Islands</option>
1131
- <option value="Spain">Spain</option>
1132
- <option value="Sri Lanka">Sri Lanka</option>
1133
- <option value="Sudan">Sudan</option>
1134
- <option value="Suriname">Suriname</option>
1135
- <option value="Svalbard and Jan Mayen">Svalbard and Jan Mayen</option>
1136
- <option value="Swaziland">Swaziland</option>
1137
- <option value="Sweden">Sweden</option>
1138
- <option value="Switzerland">Switzerland</option>
1139
- <option value="Syrian Arab Republic">Syrian Arab Republic</option>
1140
- <option value="Taiwan, Province of China">Taiwan, Province of China</option>
1141
- <option value="Tajikistan">Tajikistan</option>
1142
- <option value="Tanzania, United Republic of">Tanzania, United Republic of</option>
1143
- <option value="Thailand">Thailand</option>
1144
- <option value="Timor-Leste">Timor-Leste</option>
1145
- <option value="Togo">Togo</option>
1146
- <option value="Tokelau">Tokelau</option>
1147
- <option value="Tonga">Tonga</option>
1148
- <option value="Trinidad and Tobago">Trinidad and Tobago</option>
1149
- <option value="Tunisia">Tunisia</option>
1150
- <option value="Turkey">Turkey</option>
1151
- <option value="Turkmenistan">Turkmenistan</option>
1152
- <option value="Turks and Caicos Islands">Turks and Caicos Islands</option>
1153
- <option value="Tuvalu">Tuvalu</option>
1154
- <option value="Uganda">Uganda</option>
1155
- <option value="Ukraine">Ukraine</option>
1156
- <option value="United Arab Emirates">United Arab Emirates</option>
1157
- <option value="United Kingdom">United Kingdom</option>
1158
- <option value="United States">United States</option>
1159
- <option value="United States Minor Outlying Islands">United States Minor Outlying Islands</option>
1160
- <option value="Uruguay">Uruguay</option>
1161
- <option value="Uzbekistan">Uzbekistan</option>
1162
- <option value="Vanuatu">Vanuatu</option>
1163
- <option value="Venezuela">Venezuela</option>
1164
- <option value="Viet Nam">Viet Nam</option>
1165
- <option value="Virgin Islands, British">Virgin Islands, British</option>
1166
- <option value="Virgin Islands, U.S.">Virgin Islands, U.S.</option>
1167
- <option value="Wallis and Futuna">Wallis and Futuna</option>
1168
- <option value="Western Sahara">Western Sahara</option>
1169
- <option value="Yemen">Yemen</option>
1170
- <option value="Zambia">Zambia</option>
1171
- <option value="Zimbabwe">Zimbabwe</option></select>
1172
- COUNTRIES
1173
- assert_deprecated 'list-of-countries' do
1174
- assert_dom_equal(expected_select[0..-2], country_select("post", "origin", ["New Zealand", "Nicaragua"]))
491
+ fields_for :firm, @firm do |f|
492
+ concat f.time_zone_select(:time_zone)
1175
493
  end
494
+
495
+ assert_dom_equal(
496
+ "<select id=\"firm_time_zone\" name=\"firm[time_zone]\">" +
497
+ "<option value=\"A\">A</option>\n" +
498
+ "<option value=\"B\">B</option>\n" +
499
+ "<option value=\"C\">C</option>\n" +
500
+ "<option value=\"D\" selected=\"selected\">D</option>\n" +
501
+ "<option value=\"E\">E</option>" +
502
+ "</select>",
503
+ output_buffer
504
+ )
1176
505
  end
1177
506
 
1178
- def test_time_zone_select
507
+ def test_time_zone_select_under_fields_for_with_index
1179
508
  @firm = Firm.new("D")
1180
- html = time_zone_select( "firm", "time_zone" )
1181
- assert_dom_equal "<select id=\"firm_time_zone\" name=\"firm[time_zone]\">" +
1182
- "<option value=\"A\">A</option>\n" +
1183
- "<option value=\"B\">B</option>\n" +
1184
- "<option value=\"C\">C</option>\n" +
1185
- "<option value=\"D\" selected=\"selected\">D</option>\n" +
1186
- "<option value=\"E\">E</option>" +
1187
- "</select>",
1188
- html
509
+
510
+ fields_for :firm, @firm, :index => 305 do |f|
511
+ concat f.time_zone_select(:time_zone)
512
+ end
513
+
514
+ assert_dom_equal(
515
+ "<select id=\"firm_305_time_zone\" name=\"firm[305][time_zone]\">" +
516
+ "<option value=\"A\">A</option>\n" +
517
+ "<option value=\"B\">B</option>\n" +
518
+ "<option value=\"C\">C</option>\n" +
519
+ "<option value=\"D\" selected=\"selected\">D</option>\n" +
520
+ "<option value=\"E\">E</option>" +
521
+ "</select>",
522
+ output_buffer
523
+ )
1189
524
  end
1190
525
 
1191
- def test_time_zone_select_under_fields_for
526
+ def test_time_zone_select_under_fields_for_with_auto_index
1192
527
  @firm = Firm.new("D")
528
+ def @firm.to_param; 305; end
1193
529
 
1194
- _erbout = ''
1195
-
1196
- fields_for :firm, @firm do |f|
1197
- _erbout.concat f.time_zone_select(:time_zone)
530
+ fields_for "firm[]", @firm do |f|
531
+ concat f.time_zone_select(:time_zone)
1198
532
  end
1199
533
 
1200
534
  assert_dom_equal(
1201
- "<select id=\"firm_time_zone\" name=\"firm[time_zone]\">" +
535
+ "<select id=\"firm_305_time_zone\" name=\"firm[305][time_zone]\">" +
1202
536
  "<option value=\"A\">A</option>\n" +
1203
537
  "<option value=\"B\">B</option>\n" +
1204
538
  "<option value=\"C\">C</option>\n" +
1205
539
  "<option value=\"D\" selected=\"selected\">D</option>\n" +
1206
540
  "<option value=\"E\">E</option>" +
1207
541
  "</select>",
1208
- _erbout
542
+ output_buffer
1209
543
  )
1210
544
  end
1211
545
 
@@ -1213,28 +547,28 @@ uses_mocha "FormOptionsHelperTest" do
1213
547
  @firm = Firm.new("D")
1214
548
  html = time_zone_select("firm", "time_zone", nil, :include_blank => true)
1215
549
  assert_dom_equal "<select id=\"firm_time_zone\" name=\"firm[time_zone]\">" +
1216
- "<option value=\"\"></option>\n" +
1217
- "<option value=\"A\">A</option>\n" +
1218
- "<option value=\"B\">B</option>\n" +
1219
- "<option value=\"C\">C</option>\n" +
1220
- "<option value=\"D\" selected=\"selected\">D</option>\n" +
1221
- "<option value=\"E\">E</option>" +
1222
- "</select>",
1223
- html
550
+ "<option value=\"\"></option>\n" +
551
+ "<option value=\"A\">A</option>\n" +
552
+ "<option value=\"B\">B</option>\n" +
553
+ "<option value=\"C\">C</option>\n" +
554
+ "<option value=\"D\" selected=\"selected\">D</option>\n" +
555
+ "<option value=\"E\">E</option>" +
556
+ "</select>",
557
+ html
1224
558
  end
1225
559
 
1226
560
  def test_time_zone_select_with_blank_as_string
1227
561
  @firm = Firm.new("D")
1228
562
  html = time_zone_select("firm", "time_zone", nil, :include_blank => 'No Zone')
1229
563
  assert_dom_equal "<select id=\"firm_time_zone\" name=\"firm[time_zone]\">" +
1230
- "<option value=\"\">No Zone</option>\n" +
1231
- "<option value=\"A\">A</option>\n" +
1232
- "<option value=\"B\">B</option>\n" +
1233
- "<option value=\"C\">C</option>\n" +
1234
- "<option value=\"D\" selected=\"selected\">D</option>\n" +
1235
- "<option value=\"E\">E</option>" +
1236
- "</select>",
1237
- html
564
+ "<option value=\"\">No Zone</option>\n" +
565
+ "<option value=\"A\">A</option>\n" +
566
+ "<option value=\"B\">B</option>\n" +
567
+ "<option value=\"C\">C</option>\n" +
568
+ "<option value=\"D\" selected=\"selected\">D</option>\n" +
569
+ "<option value=\"E\">E</option>" +
570
+ "</select>",
571
+ html
1238
572
  end
1239
573
 
1240
574
  def test_time_zone_select_with_style
@@ -1242,13 +576,13 @@ uses_mocha "FormOptionsHelperTest" do
1242
576
  html = time_zone_select("firm", "time_zone", nil, {},
1243
577
  "style" => "color: red")
1244
578
  assert_dom_equal "<select id=\"firm_time_zone\" name=\"firm[time_zone]\" style=\"color: red\">" +
1245
- "<option value=\"A\">A</option>\n" +
1246
- "<option value=\"B\">B</option>\n" +
1247
- "<option value=\"C\">C</option>\n" +
1248
- "<option value=\"D\" selected=\"selected\">D</option>\n" +
1249
- "<option value=\"E\">E</option>" +
1250
- "</select>",
1251
- html
579
+ "<option value=\"A\">A</option>\n" +
580
+ "<option value=\"B\">B</option>\n" +
581
+ "<option value=\"C\">C</option>\n" +
582
+ "<option value=\"D\" selected=\"selected\">D</option>\n" +
583
+ "<option value=\"E\">E</option>" +
584
+ "</select>",
585
+ html
1252
586
  assert_dom_equal html, time_zone_select("firm", "time_zone", nil, {},
1253
587
  :style => "color: red")
1254
588
  end
@@ -1258,14 +592,14 @@ uses_mocha "FormOptionsHelperTest" do
1258
592
  html = time_zone_select("firm", "time_zone", nil,
1259
593
  { :include_blank => true }, "style" => "color: red")
1260
594
  assert_dom_equal "<select id=\"firm_time_zone\" name=\"firm[time_zone]\" style=\"color: red\">" +
1261
- "<option value=\"\"></option>\n" +
1262
- "<option value=\"A\">A</option>\n" +
1263
- "<option value=\"B\">B</option>\n" +
1264
- "<option value=\"C\">C</option>\n" +
1265
- "<option value=\"D\" selected=\"selected\">D</option>\n" +
1266
- "<option value=\"E\">E</option>" +
1267
- "</select>",
1268
- html
595
+ "<option value=\"\"></option>\n" +
596
+ "<option value=\"A\">A</option>\n" +
597
+ "<option value=\"B\">B</option>\n" +
598
+ "<option value=\"C\">C</option>\n" +
599
+ "<option value=\"D\" selected=\"selected\">D</option>\n" +
600
+ "<option value=\"E\">E</option>" +
601
+ "</select>",
602
+ html
1269
603
  assert_dom_equal html, time_zone_select("firm", "time_zone", nil,
1270
604
  { :include_blank => true }, :style => "color: red")
1271
605
  end
@@ -1275,14 +609,14 @@ uses_mocha "FormOptionsHelperTest" do
1275
609
  html = time_zone_select("firm", "time_zone", nil,
1276
610
  { :include_blank => 'No Zone' }, "style" => "color: red")
1277
611
  assert_dom_equal "<select id=\"firm_time_zone\" name=\"firm[time_zone]\" style=\"color: red\">" +
1278
- "<option value=\"\">No Zone</option>\n" +
1279
- "<option value=\"A\">A</option>\n" +
1280
- "<option value=\"B\">B</option>\n" +
1281
- "<option value=\"C\">C</option>\n" +
1282
- "<option value=\"D\" selected=\"selected\">D</option>\n" +
1283
- "<option value=\"E\">E</option>" +
1284
- "</select>",
1285
- html
612
+ "<option value=\"\">No Zone</option>\n" +
613
+ "<option value=\"A\">A</option>\n" +
614
+ "<option value=\"B\">B</option>\n" +
615
+ "<option value=\"C\">C</option>\n" +
616
+ "<option value=\"D\" selected=\"selected\">D</option>\n" +
617
+ "<option value=\"E\">E</option>" +
618
+ "</select>",
619
+ html
1286
620
  assert_dom_equal html, time_zone_select("firm", "time_zone", nil,
1287
621
  { :include_blank => 'No Zone' }, :style => "color: red")
1288
622
  end
@@ -1292,42 +626,60 @@ uses_mocha "FormOptionsHelperTest" do
1292
626
  zones = [ ActiveSupport::TimeZone.new("A"), ActiveSupport::TimeZone.new("D") ]
1293
627
  html = time_zone_select("firm", "time_zone", zones )
1294
628
  assert_dom_equal "<select id=\"firm_time_zone\" name=\"firm[time_zone]\">" +
1295
- "<option value=\"A\">A</option>\n" +
1296
- "<option value=\"D\" selected=\"selected\">D</option>" +
1297
- "<option value=\"\" disabled=\"disabled\">-------------</option>\n" +
1298
- "<option value=\"B\">B</option>\n" +
1299
- "<option value=\"C\">C</option>\n" +
1300
- "<option value=\"E\">E</option>" +
1301
- "</select>",
1302
- html
629
+ "<option value=\"A\">A</option>\n" +
630
+ "<option value=\"D\" selected=\"selected\">D</option>" +
631
+ "<option value=\"\" disabled=\"disabled\">-------------</option>\n" +
632
+ "<option value=\"B\">B</option>\n" +
633
+ "<option value=\"C\">C</option>\n" +
634
+ "<option value=\"E\">E</option>" +
635
+ "</select>",
636
+ html
637
+ end
638
+
639
+ def test_time_zone_select_with_priority_zones_as_regexp
640
+ @firm = Firm.new("D")
641
+ @fake_timezones.each_with_index do |tz, i|
642
+ tz.stubs(:=~).returns(i.zero? || i == 3)
643
+ end
644
+
645
+ html = time_zone_select("firm", "time_zone", /A|D/)
646
+ assert_dom_equal "<select id=\"firm_time_zone\" name=\"firm[time_zone]\">" +
647
+ "<option value=\"A\">A</option>\n" +
648
+ "<option value=\"D\" selected=\"selected\">D</option>" +
649
+ "<option value=\"\" disabled=\"disabled\">-------------</option>\n" +
650
+ "<option value=\"B\">B</option>\n" +
651
+ "<option value=\"C\">C</option>\n" +
652
+ "<option value=\"E\">E</option>" +
653
+ "</select>",
654
+ html
1303
655
  end
1304
656
 
1305
657
  def test_time_zone_select_with_default_time_zone_and_nil_value
1306
- @firm = Firm.new()
1307
- @firm.time_zone = nil
658
+ @firm = Firm.new()
659
+ @firm.time_zone = nil
1308
660
  html = time_zone_select( "firm", "time_zone", nil, :default => 'B' )
1309
661
  assert_dom_equal "<select id=\"firm_time_zone\" name=\"firm[time_zone]\">" +
1310
- "<option value=\"A\">A</option>\n" +
1311
- "<option value=\"B\" selected=\"selected\">B</option>\n" +
1312
- "<option value=\"C\">C</option>\n" +
1313
- "<option value=\"D\">D</option>\n" +
1314
- "<option value=\"E\">E</option>" +
1315
- "</select>",
1316
- html
662
+ "<option value=\"A\">A</option>\n" +
663
+ "<option value=\"B\" selected=\"selected\">B</option>\n" +
664
+ "<option value=\"C\">C</option>\n" +
665
+ "<option value=\"D\">D</option>\n" +
666
+ "<option value=\"E\">E</option>" +
667
+ "</select>",
668
+ html
1317
669
  end
1318
670
 
1319
671
  def test_time_zone_select_with_default_time_zone_and_value
1320
- @firm = Firm.new('D')
672
+ @firm = Firm.new('D')
1321
673
  html = time_zone_select( "firm", "time_zone", nil, :default => 'B' )
1322
674
  assert_dom_equal "<select id=\"firm_time_zone\" name=\"firm[time_zone]\">" +
1323
- "<option value=\"A\">A</option>\n" +
1324
- "<option value=\"B\">B</option>\n" +
1325
- "<option value=\"C\">C</option>\n" +
1326
- "<option value=\"D\" selected=\"selected\">D</option>\n" +
1327
- "<option value=\"E\">E</option>" +
1328
- "</select>",
1329
- html
675
+ "<option value=\"A\">A</option>\n" +
676
+ "<option value=\"B\">B</option>\n" +
677
+ "<option value=\"C\">C</option>\n" +
678
+ "<option value=\"D\" selected=\"selected\">D</option>\n" +
679
+ "<option value=\"E\">E</option>" +
680
+ "</select>",
681
+ html
1330
682
  end
1331
683
 
1332
684
  end
1333
- end
685
+ end