webroar 0.2.2

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 (1988) hide show
  1. data/COPYING +675 -0
  2. data/Rakefile +27 -0
  3. data/bin/webroar +38 -0
  4. data/bin/webroar-analyzer +23 -0
  5. data/conf/server_internal_config.yml +16 -0
  6. data/conf/starling_server_config.yml +13 -0
  7. data/conf/test_suite_config.yml +12 -0
  8. data/doc/images/icons/caution.png +0 -0
  9. data/doc/images/icons/example.png +0 -0
  10. data/doc/images/icons/important.png +0 -0
  11. data/doc/images/icons/note.png +0 -0
  12. data/doc/images/icons/tip.png +0 -0
  13. data/doc/images/icons/warning.png +0 -0
  14. data/doc/user-guide.html +912 -0
  15. data/doc/user-guide.txt +323 -0
  16. data/lib/command_runner.rb +241 -0
  17. data/lib/constant.rb +49 -0
  18. data/lib/dependencies.rb +177 -0
  19. data/lib/installer.rb +658 -0
  20. data/lib/webroar_command.rb +357 -0
  21. data/src/admin_panel/Rakefile +10 -0
  22. data/src/admin_panel/app/controllers/admin_controller.rb +197 -0
  23. data/src/admin_panel/app/controllers/application_controller.rb +137 -0
  24. data/src/admin_panel/app/controllers/application_specification_controller.rb +117 -0
  25. data/src/admin_panel/app/controllers/exceptions_controller.rb +179 -0
  26. data/src/admin_panel/app/controllers/graph_controller.rb +504 -0
  27. data/src/admin_panel/app/controllers/mail_specification_controller.rb +169 -0
  28. data/src/admin_panel/app/controllers/server_specification_controller.rb +106 -0
  29. data/src/admin_panel/app/helpers/admin_helper.rb +270 -0
  30. data/src/admin_panel/app/helpers/application_helper.rb +87 -0
  31. data/src/admin_panel/app/helpers/exceptions_helper.rb +22 -0
  32. data/src/admin_panel/app/helpers/graph_helper.rb +39 -0
  33. data/src/admin_panel/app/models/app.rb +34 -0
  34. data/src/admin_panel/app/models/app_exception.rb +72 -0
  35. data/src/admin_panel/app/models/app_time_sample.rb +212 -0
  36. data/src/admin_panel/app/models/application_specification.rb +315 -0
  37. data/src/admin_panel/app/models/pseudo_model.rb +32 -0
  38. data/src/admin_panel/app/models/resource_usage.rb +179 -0
  39. data/src/admin_panel/app/models/server_specification.rb +145 -0
  40. data/src/admin_panel/app/models/url_breakup_time_sample.rb +40 -0
  41. data/src/admin_panel/app/models/url_time_sample.rb +339 -0
  42. data/src/admin_panel/app/models/user.rb +48 -0
  43. data/src/admin_panel/app/views/admin/_add_div.html.erb +42 -0
  44. data/src/admin_panel/app/views/admin/_application_table.html.erb +68 -0
  45. data/src/admin_panel/app/views/admin/change_password_form.html.erb +53 -0
  46. data/src/admin_panel/app/views/admin/configuration.html.erb +89 -0
  47. data/src/admin_panel/app/views/admin/home.html.erb +77 -0
  48. data/src/admin_panel/app/views/admin/index.html.erb +47 -0
  49. data/src/admin_panel/app/views/application_specification/_application_form.html.erb +124 -0
  50. data/src/admin_panel/app/views/application_specification/add_application_form.html.erb +29 -0
  51. data/src/admin_panel/app/views/application_specification/edit_application_form.html.erb +28 -0
  52. data/src/admin_panel/app/views/exceptions/_close_exception_list_partial.html.erb +57 -0
  53. data/src/admin_panel/app/views/exceptions/_exception_list_partial.html.erb +64 -0
  54. data/src/admin_panel/app/views/exceptions/_exceptions_listing_partial.html.erb +31 -0
  55. data/src/admin_panel/app/views/exceptions/_ignored_exception_list_partial.html.erb +57 -0
  56. data/src/admin_panel/app/views/exceptions/_link_partial.html.erb +25 -0
  57. data/src/admin_panel/app/views/exceptions/_show.html.erb +173 -0
  58. data/src/admin_panel/app/views/exceptions/index.html.erb +37 -0
  59. data/src/admin_panel/app/views/graph/_database_usage_graph.html.erb +23 -0
  60. data/src/admin_panel/app/views/graph/_get_database_data.html.erb +30 -0
  61. data/src/admin_panel/app/views/graph/_get_resource_usage_data_app.html.erb +37 -0
  62. data/src/admin_panel/app/views/graph/_get_resource_usage_data_server.html.erb +42 -0
  63. data/src/admin_panel/app/views/graph/_get_throughput_data.html.erb +39 -0
  64. data/src/admin_panel/app/views/graph/_get_url_breakup_data.html.erb +34 -0
  65. data/src/admin_panel/app/views/graph/_get_url_data.html.erb +62 -0
  66. data/src/admin_panel/app/views/graph/_graph_page.html.erb +50 -0
  67. data/src/admin_panel/app/views/graph/_javascript_partial.html.erb +15 -0
  68. data/src/admin_panel/app/views/graph/_pie.html.erb +88 -0
  69. data/src/admin_panel/app/views/graph/_query_date.html.erb +38 -0
  70. data/src/admin_panel/app/views/graph/_query_period.html.erb +40 -0
  71. data/src/admin_panel/app/views/graph/_resource_usage_graph_app.html.erb +23 -0
  72. data/src/admin_panel/app/views/graph/_resource_usage_graph_server.html.erb +23 -0
  73. data/src/admin_panel/app/views/graph/_slider_partial.html.erb +6 -0
  74. data/src/admin_panel/app/views/graph/_throughput_graph.html.erb +23 -0
  75. data/src/admin_panel/app/views/graph/_url_breakup_graph.html.erb +24 -0
  76. data/src/admin_panel/app/views/graph/_url_calls_graph.html.erb +23 -0
  77. data/src/admin_panel/app/views/graph/index.html.erb +42 -0
  78. data/src/admin_panel/app/views/layouts/application.html.erb +174 -0
  79. data/src/admin_panel/app/views/layouts/index.html.erb +57 -0
  80. data/src/admin_panel/app/views/mail_specification/_sendmail_form.html.erb +62 -0
  81. data/src/admin_panel/app/views/mail_specification/_smtp_form.html.erb +95 -0
  82. data/src/admin_panel/app/views/server_specification/_ssl_support_form.html.erb +59 -0
  83. data/src/admin_panel/config/boot.rb +110 -0
  84. data/src/admin_panel/config/database.yml +23 -0
  85. data/src/admin_panel/config/environment.rb +69 -0
  86. data/src/admin_panel/config/environments/development.rb +18 -0
  87. data/src/admin_panel/config/environments/production.rb +24 -0
  88. data/src/admin_panel/config/environments/test.rb +24 -0
  89. data/src/admin_panel/config/initializers/application_constants.rb +137 -0
  90. data/src/admin_panel/config/initializers/inflections.rb +10 -0
  91. data/src/admin_panel/config/initializers/mime_types.rb +5 -0
  92. data/src/admin_panel/config/initializers/new_rails_defaults.rb +17 -0
  93. data/src/admin_panel/config/initializers/ssl.rb +46 -0
  94. data/src/admin_panel/config/routes.rb +57 -0
  95. data/src/admin_panel/db/migrate/20081020052652_create_apps.rb +32 -0
  96. data/src/admin_panel/db/migrate/20081020052934_create_resource_usages.rb +35 -0
  97. data/src/admin_panel/db/migrate/20081020053129_create_app_time_samples.rb +39 -0
  98. data/src/admin_panel/db/migrate/20081020053411_create_url_time_samples.rb +39 -0
  99. data/src/admin_panel/db/migrate/20081020053624_create_url_breakup_time_samples.rb +35 -0
  100. data/src/admin_panel/db/migrate/20081021005144_add_constraints.rb +49 -0
  101. data/src/admin_panel/db/migrate/20090407052622_create_app_exceptions.rb +68 -0
  102. data/src/admin_panel/doc/README_FOR_APP +2 -0
  103. data/src/admin_panel/doc/app/classes/AdminController.html +628 -0
  104. data/src/admin_panel/doc/app/classes/AdminHelper.html +482 -0
  105. data/src/admin_panel/doc/app/classes/Analytics/Database.html +245 -0
  106. data/src/admin_panel/doc/app/classes/Analytics/ResourceUsage.html +478 -0
  107. data/src/admin_panel/doc/app/classes/Analytics/Throughput.html +316 -0
  108. data/src/admin_panel/doc/app/classes/Analytics/Url.html +310 -0
  109. data/src/admin_panel/doc/app/classes/Analytics/UrlBreakup.html +366 -0
  110. data/src/admin_panel/doc/app/classes/Analytics.html +138 -0
  111. data/src/admin_panel/doc/app/classes/App.html +158 -0
  112. data/src/admin_panel/doc/app/classes/AppException.html +357 -0
  113. data/src/admin_panel/doc/app/classes/AppTimeSample.html +467 -0
  114. data/src/admin_panel/doc/app/classes/ApplicationController.html +118 -0
  115. data/src/admin_panel/doc/app/classes/ApplicationHelper.html +278 -0
  116. data/src/admin_panel/doc/app/classes/ApplicationSpecification.html +541 -0
  117. data/src/admin_panel/doc/app/classes/ApplicationSpecificationController.html +350 -0
  118. data/src/admin_panel/doc/app/classes/Control.html +329 -0
  119. data/src/admin_panel/doc/app/classes/ExceptionsController.html +624 -0
  120. data/src/admin_panel/doc/app/classes/ExceptionsHelper.html +105 -0
  121. data/src/admin_panel/doc/app/classes/GraphController.html +687 -0
  122. data/src/admin_panel/doc/app/classes/GraphHelper.html +164 -0
  123. data/src/admin_panel/doc/app/classes/MailSpecificationController.html +338 -0
  124. data/src/admin_panel/doc/app/classes/PseudoModel.html +206 -0
  125. data/src/admin_panel/doc/app/classes/ResourceUsage.html +425 -0
  126. data/src/admin_panel/doc/app/classes/SCGI.html +406 -0
  127. data/src/admin_panel/doc/app/classes/ServerSpecification.html +327 -0
  128. data/src/admin_panel/doc/app/classes/ServerSpecificationController.html +273 -0
  129. data/src/admin_panel/doc/app/classes/UrlBreakupTimeSample.html +169 -0
  130. data/src/admin_panel/doc/app/classes/UrlTimeSample.html +774 -0
  131. data/src/admin_panel/doc/app/classes/User.html +165 -0
  132. data/src/admin_panel/doc/app/classes/YAMLWriter.html +159 -0
  133. data/src/admin_panel/doc/app/created.rid +1 -0
  134. data/src/admin_panel/doc/app/files/app/controllers/admin_controller_rb.html +101 -0
  135. data/src/admin_panel/doc/app/files/app/controllers/application_controller_rb.html +108 -0
  136. data/src/admin_panel/doc/app/files/app/controllers/application_specification_controller_rb.html +101 -0
  137. data/src/admin_panel/doc/app/files/app/controllers/exceptions_controller_rb.html +101 -0
  138. data/src/admin_panel/doc/app/files/app/controllers/graph_controller_rb.html +101 -0
  139. data/src/admin_panel/doc/app/files/app/controllers/mail_specification_controller_rb.html +101 -0
  140. data/src/admin_panel/doc/app/files/app/controllers/server_specification_controller_rb.html +101 -0
  141. data/src/admin_panel/doc/app/files/app/helpers/admin_helper_rb.html +101 -0
  142. data/src/admin_panel/doc/app/files/app/helpers/application_helper_rb.html +101 -0
  143. data/src/admin_panel/doc/app/files/app/helpers/exceptions_helper_rb.html +101 -0
  144. data/src/admin_panel/doc/app/files/app/helpers/graph_helper_rb.html +101 -0
  145. data/src/admin_panel/doc/app/files/app/models/app_exception_rb.html +101 -0
  146. data/src/admin_panel/doc/app/files/app/models/app_rb.html +108 -0
  147. data/src/admin_panel/doc/app/files/app/models/app_time_sample_rb.html +101 -0
  148. data/src/admin_panel/doc/app/files/app/models/application_specification_rb.html +101 -0
  149. data/src/admin_panel/doc/app/files/app/models/pseudo_model_rb.html +101 -0
  150. data/src/admin_panel/doc/app/files/app/models/resource_usage_rb.html +101 -0
  151. data/src/admin_panel/doc/app/files/app/models/server_specification_rb.html +101 -0
  152. data/src/admin_panel/doc/app/files/app/models/url_breakup_time_sample_rb.html +101 -0
  153. data/src/admin_panel/doc/app/files/app/models/url_time_sample_rb.html +101 -0
  154. data/src/admin_panel/doc/app/files/app/models/user_rb.html +101 -0
  155. data/src/admin_panel/doc/app/files/doc/README_FOR_APP.html +109 -0
  156. data/src/admin_panel/doc/app/files/lib/control_rb.html +109 -0
  157. data/src/admin_panel/doc/app/files/lib/graph_controller_extensions/database_analytics_rb.html +101 -0
  158. data/src/admin_panel/doc/app/files/lib/graph_controller_extensions/resource_usage_analytics_rb.html +101 -0
  159. data/src/admin_panel/doc/app/files/lib/graph_controller_extensions/throughput_analytics_rb.html +101 -0
  160. data/src/admin_panel/doc/app/files/lib/graph_controller_extensions/url_analytics_rb.html +101 -0
  161. data/src/admin_panel/doc/app/files/lib/graph_controller_extensions/url_breakup_analytics_rb.html +101 -0
  162. data/src/admin_panel/doc/app/files/lib/scgi_rb.html +101 -0
  163. data/src/admin_panel/doc/app/files/lib/yaml_writer_rb.html +101 -0
  164. data/src/admin_panel/doc/app/fr_class_index.html +56 -0
  165. data/src/admin_panel/doc/app/fr_file_index.html +56 -0
  166. data/src/admin_panel/doc/app/fr_method_index.html +196 -0
  167. data/src/admin_panel/doc/app/index.html +24 -0
  168. data/src/admin_panel/doc/app/rdoc-style.css +208 -0
  169. data/src/admin_panel/lib/control.rb +92 -0
  170. data/src/admin_panel/lib/graph_controller_extensions/database_analytics.rb +62 -0
  171. data/src/admin_panel/lib/graph_controller_extensions/resource_usage_analytics.rb +132 -0
  172. data/src/admin_panel/lib/graph_controller_extensions/throughput_analytics.rb +84 -0
  173. data/src/admin_panel/lib/graph_controller_extensions/url_analytics.rb +79 -0
  174. data/src/admin_panel/lib/graph_controller_extensions/url_breakup_analytics.rb +137 -0
  175. data/src/admin_panel/lib/scgi.rb +97 -0
  176. data/src/admin_panel/lib/yaml_writer.rb +125 -0
  177. data/src/admin_panel/public/404.html +30 -0
  178. data/src/admin_panel/public/422.html +30 -0
  179. data/src/admin_panel/public/500.html +30 -0
  180. data/src/admin_panel/public/blank_iframe.html +2 -0
  181. data/src/admin_panel/public/dispatch.cgi +10 -0
  182. data/src/admin_panel/public/dispatch.fcgi +24 -0
  183. data/src/admin_panel/public/dispatch.rb +10 -0
  184. data/src/admin_panel/public/favicon.ico +0 -0
  185. data/src/admin_panel/public/images/analytics_ad.gif +0 -0
  186. data/src/admin_panel/public/images/analytics_ad_ov.gif +0 -0
  187. data/src/admin_panel/public/images/analytics_dn.gif +0 -0
  188. data/src/admin_panel/public/images/analytics_up.gif +0 -0
  189. data/src/admin_panel/public/images/bar.gif +0 -0
  190. data/src/admin_panel/public/images/bullet.gif +0 -0
  191. data/src/admin_panel/public/images/calendar_date_select/calendar.gif +0 -0
  192. data/src/admin_panel/public/images/callout_left.gif +0 -0
  193. data/src/admin_panel/public/images/callout_right.gif +0 -0
  194. data/src/admin_panel/public/images/configuration_ad.gif +0 -0
  195. data/src/admin_panel/public/images/configuration_ad_ov.gif +0 -0
  196. data/src/admin_panel/public/images/configuration_dn.gif +0 -0
  197. data/src/admin_panel/public/images/configuration_up.gif +0 -0
  198. data/src/admin_panel/public/images/exception_dn.gif +0 -0
  199. data/src/admin_panel/public/images/exception_up.gif +0 -0
  200. data/src/admin_panel/public/images/exceptions_ad.gif +0 -0
  201. data/src/admin_panel/public/images/exceptions_ad_ov.gif +0 -0
  202. data/src/admin_panel/public/images/footer-bg.gif +0 -0
  203. data/src/admin_panel/public/images/home_ad.gif +0 -0
  204. data/src/admin_panel/public/images/home_ad_ov.gif +0 -0
  205. data/src/admin_panel/public/images/home_dn.gif +0 -0
  206. data/src/admin_panel/public/images/home_down.jpg +0 -0
  207. data/src/admin_panel/public/images/home_up.gif +0 -0
  208. data/src/admin_panel/public/images/home_up.jpg +0 -0
  209. data/src/admin_panel/public/images/impetus.gif +0 -0
  210. data/src/admin_panel/public/images/left_menu.gif +0 -0
  211. data/src/admin_panel/public/images/loading.gif +0 -0
  212. data/src/admin_panel/public/images/logout.gif +0 -0
  213. data/src/admin_panel/public/images/rails.png +0 -0
  214. data/src/admin_panel/public/images/right_menu.gif +0 -0
  215. data/src/admin_panel/public/images/server_logo.gif +0 -0
  216. data/src/admin_panel/public/images/setting_dn.gif +0 -0
  217. data/src/admin_panel/public/images/setting_up.gif +0 -0
  218. data/src/admin_panel/public/images/settings_ad.gif +0 -0
  219. data/src/admin_panel/public/images/settings_ad_ov.gif +0 -0
  220. data/src/admin_panel/public/images/settings_down.jpg +0 -0
  221. data/src/admin_panel/public/images/settings_up.jpg +0 -0
  222. data/src/admin_panel/public/images/slider.jpg +0 -0
  223. data/src/admin_panel/public/images/tit_analytics_ad.gif +0 -0
  224. data/src/admin_panel/public/images/tit_configuration_ad.gif +0 -0
  225. data/src/admin_panel/public/images/tit_exceptions_ad.gif +0 -0
  226. data/src/admin_panel/public/images/tit_home_ad.gif +0 -0
  227. data/src/admin_panel/public/images/tit_settings_ad.gif +0 -0
  228. data/src/admin_panel/public/images/webroar-logo.gif +0 -0
  229. data/src/admin_panel/public/javascripts/application.js +283 -0
  230. data/src/admin_panel/public/javascripts/builder.js +136 -0
  231. data/src/admin_panel/public/javascripts/calendar_date_select/calendar_date_select.js +443 -0
  232. data/src/admin_panel/public/javascripts/calendar_date_select/format_american.js +34 -0
  233. data/src/admin_panel/public/javascripts/calendar_date_select/format_db.js +27 -0
  234. data/src/admin_panel/public/javascripts/calendar_date_select/format_euro_24hr.js +7 -0
  235. data/src/admin_panel/public/javascripts/calendar_date_select/format_euro_24hr_ymd.js +7 -0
  236. data/src/admin_panel/public/javascripts/calendar_date_select/format_finnish.js +32 -0
  237. data/src/admin_panel/public/javascripts/calendar_date_select/format_hyphen_ampm.js +37 -0
  238. data/src/admin_panel/public/javascripts/calendar_date_select/format_iso_date.js +46 -0
  239. data/src/admin_panel/public/javascripts/calendar_date_select/format_italian.js +24 -0
  240. data/src/admin_panel/public/javascripts/calendar_date_select/locale/de.js +11 -0
  241. data/src/admin_panel/public/javascripts/calendar_date_select/locale/fi.js +10 -0
  242. data/src/admin_panel/public/javascripts/calendar_date_select/locale/fr.js +10 -0
  243. data/src/admin_panel/public/javascripts/calendar_date_select/locale/pl.js +10 -0
  244. data/src/admin_panel/public/javascripts/calendar_date_select/locale/pt.js +11 -0
  245. data/src/admin_panel/public/javascripts/calendar_date_select/locale/ru.js +10 -0
  246. data/src/admin_panel/public/javascripts/controls.js +963 -0
  247. data/src/admin_panel/public/javascripts/dragdrop.js +973 -0
  248. data/src/admin_panel/public/javascripts/effects.js +1128 -0
  249. data/src/admin_panel/public/javascripts/jquery-1.3.2.js +4376 -0
  250. data/src/admin_panel/public/javascripts/prototype.js +4320 -0
  251. data/src/admin_panel/public/javascripts/scriptaculous.js +58 -0
  252. data/src/admin_panel/public/javascripts/swfobject.js +5 -0
  253. data/src/admin_panel/public/javascripts/ui.core.js +519 -0
  254. data/src/admin_panel/public/javascripts/ui.slider.js +555 -0
  255. data/src/admin_panel/public/javascripts/ui.slider_old.js +558 -0
  256. data/src/admin_panel/public/open-flash-chart.swf +0 -0
  257. data/src/admin_panel/public/robots.txt +5 -0
  258. data/src/admin_panel/public/stylesheets/calendar_date_select/blue.css +130 -0
  259. data/src/admin_panel/public/stylesheets/calendar_date_select/default.css +135 -0
  260. data/src/admin_panel/public/stylesheets/calendar_date_select/plain.css +128 -0
  261. data/src/admin_panel/public/stylesheets/calendar_date_select/red.css +135 -0
  262. data/src/admin_panel/public/stylesheets/calendar_date_select/silver.css +133 -0
  263. data/src/admin_panel/public/stylesheets/netscape/login.css +92 -0
  264. data/src/admin_panel/public/stylesheets/netscape/style.css +657 -0
  265. data/src/admin_panel/public/stylesheets/other/login.css +91 -0
  266. data/src/admin_panel/public/stylesheets/other/style.css +657 -0
  267. data/src/admin_panel/public/stylesheets/safari/login.css +75 -0
  268. data/src/admin_panel/public/stylesheets/safari/style.css +668 -0
  269. data/src/admin_panel/public/stylesheets/ui.all.css +2 -0
  270. data/src/admin_panel/public/stylesheets/ui.base.css +2 -0
  271. data/src/admin_panel/public/stylesheets/ui.core.css +37 -0
  272. data/src/admin_panel/public/stylesheets/ui.slider.css +23 -0
  273. data/src/admin_panel/public/stylesheets/ui.theme.css +245 -0
  274. data/src/admin_panel/script/about +4 -0
  275. data/src/admin_panel/script/console +3 -0
  276. data/src/admin_panel/script/dbconsole +3 -0
  277. data/src/admin_panel/script/destroy +3 -0
  278. data/src/admin_panel/script/generate +3 -0
  279. data/src/admin_panel/script/performance/benchmarker +3 -0
  280. data/src/admin_panel/script/performance/profiler +3 -0
  281. data/src/admin_panel/script/performance/request +3 -0
  282. data/src/admin_panel/script/plugin +3 -0
  283. data/src/admin_panel/script/process/inspector +3 -0
  284. data/src/admin_panel/script/process/reaper +3 -0
  285. data/src/admin_panel/script/process/spawner +3 -0
  286. data/src/admin_panel/script/runner +3 -0
  287. data/src/admin_panel/script/server +3 -0
  288. data/src/admin_panel/test/functional/admin_controller_test.rb +126 -0
  289. data/src/admin_panel/test/functional/application_specification_controller_test.rb +61 -0
  290. data/src/admin_panel/test/functional/exceptions_controller_test.rb +28 -0
  291. data/src/admin_panel/test/functional/graph_controller_test.rb +44 -0
  292. data/src/admin_panel/test/test_helper.rb +76 -0
  293. data/src/admin_panel/test/unit/app_exception_test.rb +28 -0
  294. data/src/admin_panel/test/unit/app_test.rb +34 -0
  295. data/src/admin_panel/test/unit/app_time_sample_test.rb +38 -0
  296. data/src/admin_panel/test/unit/helpers/exceptions_helper_test.rb +24 -0
  297. data/src/admin_panel/test/unit/resource_usage_test.rb +55 -0
  298. data/src/admin_panel/test/unit/url_breakup_time_sample_test.rb +25 -0
  299. data/src/admin_panel/test/unit/url_time_sample_test.rb +34 -0
  300. data/src/admin_panel/vendor/plugins/open_flash_chart_2/CHANGES +12 -0
  301. data/src/admin_panel/vendor/plugins/open_flash_chart_2/MIT-LICENSE +20 -0
  302. data/src/admin_panel/vendor/plugins/open_flash_chart_2/README +79 -0
  303. data/src/admin_panel/vendor/plugins/open_flash_chart_2/Rakefile +22 -0
  304. data/src/admin_panel/vendor/plugins/open_flash_chart_2/TODO +11 -0
  305. data/src/admin_panel/vendor/plugins/open_flash_chart_2/init.rb +3 -0
  306. data/src/admin_panel/vendor/plugins/open_flash_chart_2/install.rb +6 -0
  307. data/src/admin_panel/vendor/plugins/open_flash_chart_2/lib/open_flash_chart_2.rb +563 -0
  308. data/src/admin_panel/vendor/plugins/open_flash_chart_2/requirements/json/json2.js +461 -0
  309. data/src/admin_panel/vendor/plugins/open_flash_chart_2/requirements/open-flash-chart.swf +0 -0
  310. data/src/admin_panel/vendor/plugins/open_flash_chart_2/requirements/swfobject.js +5 -0
  311. data/src/admin_panel/vendor/plugins/open_flash_chart_2/tasks/open_flash_chart_tasks.rake +16 -0
  312. data/src/admin_panel/vendor/plugins/open_flash_chart_2/test/open_flash_chart_test.rb +8 -0
  313. data/src/admin_panel/vendor/plugins/open_flash_chart_2/uninstall.rb +4 -0
  314. data/src/admin_panel/vendor/plugins/ssl_requirement/README +43 -0
  315. data/src/admin_panel/vendor/plugins/ssl_requirement/lib/ssl_requirement.rb +72 -0
  316. data/src/admin_panel/vendor/plugins/ssl_requirement/test/ssl_requirement_test.rb +132 -0
  317. data/src/admin_panel/vendor/rails/actionmailer/CHANGELOG +358 -0
  318. data/src/admin_panel/vendor/rails/actionmailer/MIT-LICENSE +21 -0
  319. data/src/admin_panel/vendor/rails/actionmailer/README +149 -0
  320. data/src/admin_panel/vendor/rails/actionmailer/Rakefile +98 -0
  321. data/src/admin_panel/vendor/rails/actionmailer/install.rb +30 -0
  322. data/src/admin_panel/vendor/rails/actionmailer/lib/action_mailer/adv_attr_accessor.rb +30 -0
  323. data/src/admin_panel/vendor/rails/actionmailer/lib/action_mailer/base.rb +705 -0
  324. data/src/admin_panel/vendor/rails/actionmailer/lib/action_mailer/helpers.rb +113 -0
  325. data/src/admin_panel/vendor/rails/actionmailer/lib/action_mailer/mail_helper.rb +17 -0
  326. data/src/admin_panel/vendor/rails/actionmailer/lib/action_mailer/part.rb +107 -0
  327. data/src/admin_panel/vendor/rails/actionmailer/lib/action_mailer/part_container.rb +55 -0
  328. data/src/admin_panel/vendor/rails/actionmailer/lib/action_mailer/quoting.rb +61 -0
  329. data/src/admin_panel/vendor/rails/actionmailer/lib/action_mailer/test_case.rb +64 -0
  330. data/src/admin_panel/vendor/rails/actionmailer/lib/action_mailer/test_helper.rb +68 -0
  331. data/src/admin_panel/vendor/rails/actionmailer/lib/action_mailer/utils.rb +7 -0
  332. data/src/admin_panel/vendor/rails/actionmailer/lib/action_mailer/vendor/text-format-0.6.3/text/format.rb +1466 -0
  333. data/src/admin_panel/vendor/rails/actionmailer/lib/action_mailer/vendor/text_format.rb +10 -0
  334. data/src/admin_panel/vendor/rails/actionmailer/lib/action_mailer/vendor/tmail-1.2.3/tmail/address.rb +426 -0
  335. data/src/admin_panel/vendor/rails/actionmailer/lib/action_mailer/vendor/tmail-1.2.3/tmail/attachments.rb +46 -0
  336. data/src/admin_panel/vendor/rails/actionmailer/lib/action_mailer/vendor/tmail-1.2.3/tmail/base64.rb +46 -0
  337. data/src/admin_panel/vendor/rails/actionmailer/lib/action_mailer/vendor/tmail-1.2.3/tmail/compat.rb +41 -0
  338. data/src/admin_panel/vendor/rails/actionmailer/lib/action_mailer/vendor/tmail-1.2.3/tmail/config.rb +67 -0
  339. data/src/admin_panel/vendor/rails/actionmailer/lib/action_mailer/vendor/tmail-1.2.3/tmail/core_extensions.rb +63 -0
  340. data/src/admin_panel/vendor/rails/actionmailer/lib/action_mailer/vendor/tmail-1.2.3/tmail/encode.rb +581 -0
  341. data/src/admin_panel/vendor/rails/actionmailer/lib/action_mailer/vendor/tmail-1.2.3/tmail/header.rb +960 -0
  342. data/src/admin_panel/vendor/rails/actionmailer/lib/action_mailer/vendor/tmail-1.2.3/tmail/index.rb +9 -0
  343. data/src/admin_panel/vendor/rails/actionmailer/lib/action_mailer/vendor/tmail-1.2.3/tmail/interface.rb +1130 -0
  344. data/src/admin_panel/vendor/rails/actionmailer/lib/action_mailer/vendor/tmail-1.2.3/tmail/loader.rb +3 -0
  345. data/src/admin_panel/vendor/rails/actionmailer/lib/action_mailer/vendor/tmail-1.2.3/tmail/mail.rb +578 -0
  346. data/src/admin_panel/vendor/rails/actionmailer/lib/action_mailer/vendor/tmail-1.2.3/tmail/mailbox.rb +495 -0
  347. data/src/admin_panel/vendor/rails/actionmailer/lib/action_mailer/vendor/tmail-1.2.3/tmail/main.rb +6 -0
  348. data/src/admin_panel/vendor/rails/actionmailer/lib/action_mailer/vendor/tmail-1.2.3/tmail/mbox.rb +3 -0
  349. data/src/admin_panel/vendor/rails/actionmailer/lib/action_mailer/vendor/tmail-1.2.3/tmail/net.rb +248 -0
  350. data/src/admin_panel/vendor/rails/actionmailer/lib/action_mailer/vendor/tmail-1.2.3/tmail/obsolete.rb +132 -0
  351. data/src/admin_panel/vendor/rails/actionmailer/lib/action_mailer/vendor/tmail-1.2.3/tmail/parser.rb +1476 -0
  352. data/src/admin_panel/vendor/rails/actionmailer/lib/action_mailer/vendor/tmail-1.2.3/tmail/port.rb +379 -0
  353. data/src/admin_panel/vendor/rails/actionmailer/lib/action_mailer/vendor/tmail-1.2.3/tmail/quoting.rb +118 -0
  354. data/src/admin_panel/vendor/rails/actionmailer/lib/action_mailer/vendor/tmail-1.2.3/tmail/require_arch.rb +58 -0
  355. data/src/admin_panel/vendor/rails/actionmailer/lib/action_mailer/vendor/tmail-1.2.3/tmail/scanner.rb +49 -0
  356. data/src/admin_panel/vendor/rails/actionmailer/lib/action_mailer/vendor/tmail-1.2.3/tmail/scanner_r.rb +261 -0
  357. data/src/admin_panel/vendor/rails/actionmailer/lib/action_mailer/vendor/tmail-1.2.3/tmail/stringio.rb +280 -0
  358. data/src/admin_panel/vendor/rails/actionmailer/lib/action_mailer/vendor/tmail-1.2.3/tmail/utils.rb +337 -0
  359. data/src/admin_panel/vendor/rails/actionmailer/lib/action_mailer/vendor/tmail-1.2.3/tmail/version.rb +39 -0
  360. data/src/admin_panel/vendor/rails/actionmailer/lib/action_mailer/vendor/tmail-1.2.3/tmail.rb +5 -0
  361. data/src/admin_panel/vendor/rails/actionmailer/lib/action_mailer/vendor/tmail.rb +17 -0
  362. data/src/admin_panel/vendor/rails/actionmailer/lib/action_mailer/version.rb +9 -0
  363. data/src/admin_panel/vendor/rails/actionmailer/lib/action_mailer.rb +62 -0
  364. data/src/admin_panel/vendor/rails/actionmailer/lib/actionmailer.rb +1 -0
  365. data/src/admin_panel/vendor/rails/actionmailer/test/abstract_unit.rb +65 -0
  366. data/src/admin_panel/vendor/rails/actionmailer/test/asset_host_test.rb +54 -0
  367. data/src/admin_panel/vendor/rails/actionmailer/test/delivery_method_test.rb +51 -0
  368. data/src/admin_panel/vendor/rails/actionmailer/test/fixtures/asset_host_mailer/email_with_asset.html.erb +1 -0
  369. data/src/admin_panel/vendor/rails/actionmailer/test/fixtures/auto_layout_mailer/hello.html.erb +1 -0
  370. data/src/admin_panel/vendor/rails/actionmailer/test/fixtures/auto_layout_mailer/multipart.text.html.erb +1 -0
  371. data/src/admin_panel/vendor/rails/actionmailer/test/fixtures/auto_layout_mailer/multipart.text.plain.erb +1 -0
  372. data/src/admin_panel/vendor/rails/actionmailer/test/fixtures/explicit_layout_mailer/logout.html.erb +1 -0
  373. data/src/admin_panel/vendor/rails/actionmailer/test/fixtures/explicit_layout_mailer/signup.html.erb +1 -0
  374. data/src/admin_panel/vendor/rails/actionmailer/test/fixtures/first_mailer/share.erb +1 -0
  375. data/src/admin_panel/vendor/rails/actionmailer/test/fixtures/helper_mailer/use_example_helper.erb +1 -0
  376. data/src/admin_panel/vendor/rails/actionmailer/test/fixtures/helper_mailer/use_helper.erb +1 -0
  377. data/src/admin_panel/vendor/rails/actionmailer/test/fixtures/helper_mailer/use_helper_method.erb +1 -0
  378. data/src/admin_panel/vendor/rails/actionmailer/test/fixtures/helper_mailer/use_mail_helper.erb +5 -0
  379. data/src/admin_panel/vendor/rails/actionmailer/test/fixtures/helpers/example_helper.rb +5 -0
  380. data/src/admin_panel/vendor/rails/actionmailer/test/fixtures/layouts/auto_layout_mailer.html.erb +1 -0
  381. data/src/admin_panel/vendor/rails/actionmailer/test/fixtures/layouts/auto_layout_mailer.text.erb +1 -0
  382. data/src/admin_panel/vendor/rails/actionmailer/test/fixtures/layouts/spam.html.erb +1 -0
  383. data/src/admin_panel/vendor/rails/actionmailer/test/fixtures/path.with.dots/funky_path_mailer/multipart_with_template_path_with_dots.erb +1 -0
  384. data/src/admin_panel/vendor/rails/actionmailer/test/fixtures/raw_email +14 -0
  385. data/src/admin_panel/vendor/rails/actionmailer/test/fixtures/raw_email10 +20 -0
  386. data/src/admin_panel/vendor/rails/actionmailer/test/fixtures/raw_email12 +32 -0
  387. data/src/admin_panel/vendor/rails/actionmailer/test/fixtures/raw_email13 +29 -0
  388. data/src/admin_panel/vendor/rails/actionmailer/test/fixtures/raw_email2 +114 -0
  389. data/src/admin_panel/vendor/rails/actionmailer/test/fixtures/raw_email3 +70 -0
  390. data/src/admin_panel/vendor/rails/actionmailer/test/fixtures/raw_email4 +59 -0
  391. data/src/admin_panel/vendor/rails/actionmailer/test/fixtures/raw_email5 +19 -0
  392. data/src/admin_panel/vendor/rails/actionmailer/test/fixtures/raw_email6 +20 -0
  393. data/src/admin_panel/vendor/rails/actionmailer/test/fixtures/raw_email7 +66 -0
  394. data/src/admin_panel/vendor/rails/actionmailer/test/fixtures/raw_email8 +47 -0
  395. data/src/admin_panel/vendor/rails/actionmailer/test/fixtures/raw_email9 +28 -0
  396. data/src/admin_panel/vendor/rails/actionmailer/test/fixtures/raw_email_quoted_with_0d0a +14 -0
  397. data/src/admin_panel/vendor/rails/actionmailer/test/fixtures/raw_email_with_invalid_characters_in_content_type +104 -0
  398. data/src/admin_panel/vendor/rails/actionmailer/test/fixtures/raw_email_with_nested_attachment +100 -0
  399. data/src/admin_panel/vendor/rails/actionmailer/test/fixtures/raw_email_with_partially_quoted_subject +14 -0
  400. data/src/admin_panel/vendor/rails/actionmailer/test/fixtures/second_mailer/share.erb +1 -0
  401. data/src/admin_panel/vendor/rails/actionmailer/test/fixtures/templates/signed_up.erb +3 -0
  402. data/src/admin_panel/vendor/rails/actionmailer/test/fixtures/test_mailer/_subtemplate.text.plain.erb +1 -0
  403. data/src/admin_panel/vendor/rails/actionmailer/test/fixtures/test_mailer/body_ivar.erb +2 -0
  404. data/src/admin_panel/vendor/rails/actionmailer/test/fixtures/test_mailer/custom_templating_extension.text.html.haml +6 -0
  405. data/src/admin_panel/vendor/rails/actionmailer/test/fixtures/test_mailer/custom_templating_extension.text.plain.haml +6 -0
  406. data/src/admin_panel/vendor/rails/actionmailer/test/fixtures/test_mailer/implicitly_multipart_example.ignored.erb +1 -0
  407. data/src/admin_panel/vendor/rails/actionmailer/test/fixtures/test_mailer/implicitly_multipart_example.text.html.erb +10 -0
  408. data/src/admin_panel/vendor/rails/actionmailer/test/fixtures/test_mailer/implicitly_multipart_example.text.plain.erb +2 -0
  409. data/src/admin_panel/vendor/rails/actionmailer/test/fixtures/test_mailer/implicitly_multipart_example.text.yaml.erb +1 -0
  410. data/src/admin_panel/vendor/rails/actionmailer/test/fixtures/test_mailer/included_subtemplate.text.plain.erb +1 -0
  411. data/src/admin_panel/vendor/rails/actionmailer/test/fixtures/test_mailer/rxml_template.builder +2 -0
  412. data/src/admin_panel/vendor/rails/actionmailer/test/fixtures/test_mailer/rxml_template.rxml +2 -0
  413. data/src/admin_panel/vendor/rails/actionmailer/test/fixtures/test_mailer/signed_up.html.erb +3 -0
  414. data/src/admin_panel/vendor/rails/actionmailer/test/fixtures/test_mailer/signed_up_with_url.erb +5 -0
  415. data/src/admin_panel/vendor/rails/actionmailer/test/mail_helper_test.rb +95 -0
  416. data/src/admin_panel/vendor/rails/actionmailer/test/mail_layout_test.rb +123 -0
  417. data/src/admin_panel/vendor/rails/actionmailer/test/mail_render_test.rb +116 -0
  418. data/src/admin_panel/vendor/rails/actionmailer/test/mail_service_test.rb +1078 -0
  419. data/src/admin_panel/vendor/rails/actionmailer/test/quoting_test.rb +99 -0
  420. data/src/admin_panel/vendor/rails/actionmailer/test/test_helper_test.rb +129 -0
  421. data/src/admin_panel/vendor/rails/actionmailer/test/tmail_test.rb +22 -0
  422. data/src/admin_panel/vendor/rails/actionmailer/test/url_test.rb +76 -0
  423. data/src/admin_panel/vendor/rails/actionpack/CHANGELOG +5156 -0
  424. data/src/admin_panel/vendor/rails/actionpack/MIT-LICENSE +21 -0
  425. data/src/admin_panel/vendor/rails/actionpack/README +409 -0
  426. data/src/admin_panel/vendor/rails/actionpack/RUNNING_UNIT_TESTS +24 -0
  427. data/src/admin_panel/vendor/rails/actionpack/Rakefile +158 -0
  428. data/src/admin_panel/vendor/rails/actionpack/install.rb +30 -0
  429. data/src/admin_panel/vendor/rails/actionpack/lib/action_controller/assertions/dom_assertions.rb +39 -0
  430. data/src/admin_panel/vendor/rails/actionpack/lib/action_controller/assertions/model_assertions.rb +21 -0
  431. data/src/admin_panel/vendor/rails/actionpack/lib/action_controller/assertions/response_assertions.rb +150 -0
  432. data/src/admin_panel/vendor/rails/actionpack/lib/action_controller/assertions/routing_assertions.rb +146 -0
  433. data/src/admin_panel/vendor/rails/actionpack/lib/action_controller/assertions/selector_assertions.rb +632 -0
  434. data/src/admin_panel/vendor/rails/actionpack/lib/action_controller/assertions/tag_assertions.rb +127 -0
  435. data/src/admin_panel/vendor/rails/actionpack/lib/action_controller/base.rb +1414 -0
  436. data/src/admin_panel/vendor/rails/actionpack/lib/action_controller/benchmarking.rb +107 -0
  437. data/src/admin_panel/vendor/rails/actionpack/lib/action_controller/caching/actions.rb +169 -0
  438. data/src/admin_panel/vendor/rails/actionpack/lib/action_controller/caching/fragments.rb +120 -0
  439. data/src/admin_panel/vendor/rails/actionpack/lib/action_controller/caching/pages.rb +152 -0
  440. data/src/admin_panel/vendor/rails/actionpack/lib/action_controller/caching/sweeping.rb +97 -0
  441. data/src/admin_panel/vendor/rails/actionpack/lib/action_controller/caching.rb +70 -0
  442. data/src/admin_panel/vendor/rails/actionpack/lib/action_controller/cgi_ext/cookie.rb +112 -0
  443. data/src/admin_panel/vendor/rails/actionpack/lib/action_controller/cgi_ext/query_extension.rb +22 -0
  444. data/src/admin_panel/vendor/rails/actionpack/lib/action_controller/cgi_ext/stdinput.rb +24 -0
  445. data/src/admin_panel/vendor/rails/actionpack/lib/action_controller/cgi_ext.rb +15 -0
  446. data/src/admin_panel/vendor/rails/actionpack/lib/action_controller/cgi_process.rb +77 -0
  447. data/src/admin_panel/vendor/rails/actionpack/lib/action_controller/cookies.rb +94 -0
  448. data/src/admin_panel/vendor/rails/actionpack/lib/action_controller/dispatcher.rb +118 -0
  449. data/src/admin_panel/vendor/rails/actionpack/lib/action_controller/failsafe.rb +52 -0
  450. data/src/admin_panel/vendor/rails/actionpack/lib/action_controller/filters.rb +680 -0
  451. data/src/admin_panel/vendor/rails/actionpack/lib/action_controller/flash.rb +163 -0
  452. data/src/admin_panel/vendor/rails/actionpack/lib/action_controller/headers.rb +33 -0
  453. data/src/admin_panel/vendor/rails/actionpack/lib/action_controller/helpers.rb +225 -0
  454. data/src/admin_panel/vendor/rails/actionpack/lib/action_controller/http_authentication.rb +304 -0
  455. data/src/admin_panel/vendor/rails/actionpack/lib/action_controller/integration.rb +687 -0
  456. data/src/admin_panel/vendor/rails/actionpack/lib/action_controller/layout.rb +281 -0
  457. data/src/admin_panel/vendor/rails/actionpack/lib/action_controller/middleware_stack.rb +119 -0
  458. data/src/admin_panel/vendor/rails/actionpack/lib/action_controller/middlewares.rb +13 -0
  459. data/src/admin_panel/vendor/rails/actionpack/lib/action_controller/mime_responds.rb +193 -0
  460. data/src/admin_panel/vendor/rails/actionpack/lib/action_controller/mime_type.rb +212 -0
  461. data/src/admin_panel/vendor/rails/actionpack/lib/action_controller/mime_types.rb +21 -0
  462. data/src/admin_panel/vendor/rails/actionpack/lib/action_controller/params_parser.rb +71 -0
  463. data/src/admin_panel/vendor/rails/actionpack/lib/action_controller/performance_test.rb +15 -0
  464. data/src/admin_panel/vendor/rails/actionpack/lib/action_controller/polymorphic_routes.rb +204 -0
  465. data/src/admin_panel/vendor/rails/actionpack/lib/action_controller/record_identifier.rb +104 -0
  466. data/src/admin_panel/vendor/rails/actionpack/lib/action_controller/reloader.rb +14 -0
  467. data/src/admin_panel/vendor/rails/actionpack/lib/action_controller/request.rb +489 -0
  468. data/src/admin_panel/vendor/rails/actionpack/lib/action_controller/request_forgery_protection.rb +108 -0
  469. data/src/admin_panel/vendor/rails/actionpack/lib/action_controller/rescue.rb +183 -0
  470. data/src/admin_panel/vendor/rails/actionpack/lib/action_controller/resources.rb +678 -0
  471. data/src/admin_panel/vendor/rails/actionpack/lib/action_controller/response.rb +232 -0
  472. data/src/admin_panel/vendor/rails/actionpack/lib/action_controller/rewindable_input.rb +28 -0
  473. data/src/admin_panel/vendor/rails/actionpack/lib/action_controller/routing/builder.rb +197 -0
  474. data/src/admin_panel/vendor/rails/actionpack/lib/action_controller/routing/optimisations.rb +130 -0
  475. data/src/admin_panel/vendor/rails/actionpack/lib/action_controller/routing/recognition_optimisation.rb +167 -0
  476. data/src/admin_panel/vendor/rails/actionpack/lib/action_controller/routing/route.rb +265 -0
  477. data/src/admin_panel/vendor/rails/actionpack/lib/action_controller/routing/route_set.rb +488 -0
  478. data/src/admin_panel/vendor/rails/actionpack/lib/action_controller/routing/routing_ext.rb +49 -0
  479. data/src/admin_panel/vendor/rails/actionpack/lib/action_controller/routing/segments.rb +343 -0
  480. data/src/admin_panel/vendor/rails/actionpack/lib/action_controller/routing.rb +385 -0
  481. data/src/admin_panel/vendor/rails/actionpack/lib/action_controller/session/abstract_store.rb +181 -0
  482. data/src/admin_panel/vendor/rails/actionpack/lib/action_controller/session/cookie_store.rb +221 -0
  483. data/src/admin_panel/vendor/rails/actionpack/lib/action_controller/session/mem_cache_store.rb +51 -0
  484. data/src/admin_panel/vendor/rails/actionpack/lib/action_controller/session_management.rb +54 -0
  485. data/src/admin_panel/vendor/rails/actionpack/lib/action_controller/status_codes.rb +88 -0
  486. data/src/admin_panel/vendor/rails/actionpack/lib/action_controller/streaming.rb +179 -0
  487. data/src/admin_panel/vendor/rails/actionpack/lib/action_controller/templates/rescues/_request_and_response.erb +24 -0
  488. data/src/admin_panel/vendor/rails/actionpack/lib/action_controller/templates/rescues/_trace.erb +26 -0
  489. data/src/admin_panel/vendor/rails/actionpack/lib/action_controller/templates/rescues/diagnostics.erb +11 -0
  490. data/src/admin_panel/vendor/rails/actionpack/lib/action_controller/templates/rescues/layout.erb +29 -0
  491. data/src/admin_panel/vendor/rails/actionpack/lib/action_controller/templates/rescues/missing_template.erb +2 -0
  492. data/src/admin_panel/vendor/rails/actionpack/lib/action_controller/templates/rescues/routing_error.erb +10 -0
  493. data/src/admin_panel/vendor/rails/actionpack/lib/action_controller/templates/rescues/template_error.erb +21 -0
  494. data/src/admin_panel/vendor/rails/actionpack/lib/action_controller/templates/rescues/unknown_action.erb +2 -0
  495. data/src/admin_panel/vendor/rails/actionpack/lib/action_controller/test_case.rb +204 -0
  496. data/src/admin_panel/vendor/rails/actionpack/lib/action_controller/test_process.rb +572 -0
  497. data/src/admin_panel/vendor/rails/actionpack/lib/action_controller/translation.rb +13 -0
  498. data/src/admin_panel/vendor/rails/actionpack/lib/action_controller/uploaded_file.rb +44 -0
  499. data/src/admin_panel/vendor/rails/actionpack/lib/action_controller/url_rewriter.rb +216 -0
  500. data/src/admin_panel/vendor/rails/actionpack/lib/action_controller/vendor/html-scanner/html/document.rb +68 -0
  501. data/src/admin_panel/vendor/rails/actionpack/lib/action_controller/vendor/html-scanner/html/node.rb +537 -0
  502. data/src/admin_panel/vendor/rails/actionpack/lib/action_controller/vendor/html-scanner/html/sanitizer.rb +173 -0
  503. data/src/admin_panel/vendor/rails/actionpack/lib/action_controller/vendor/html-scanner/html/selector.rb +828 -0
  504. data/src/admin_panel/vendor/rails/actionpack/lib/action_controller/vendor/html-scanner/html/tokenizer.rb +105 -0
  505. data/src/admin_panel/vendor/rails/actionpack/lib/action_controller/vendor/html-scanner/html/version.rb +11 -0
  506. data/src/admin_panel/vendor/rails/actionpack/lib/action_controller/vendor/html-scanner.rb +16 -0
  507. data/src/admin_panel/vendor/rails/actionpack/lib/action_controller/vendor/rack-1.0/rack/adapter/camping.rb +22 -0
  508. data/src/admin_panel/vendor/rails/actionpack/lib/action_controller/vendor/rack-1.0/rack/auth/abstract/handler.rb +37 -0
  509. data/src/admin_panel/vendor/rails/actionpack/lib/action_controller/vendor/rack-1.0/rack/auth/abstract/request.rb +37 -0
  510. data/src/admin_panel/vendor/rails/actionpack/lib/action_controller/vendor/rack-1.0/rack/auth/basic.rb +58 -0
  511. data/src/admin_panel/vendor/rails/actionpack/lib/action_controller/vendor/rack-1.0/rack/auth/digest/md5.rb +124 -0
  512. data/src/admin_panel/vendor/rails/actionpack/lib/action_controller/vendor/rack-1.0/rack/auth/digest/nonce.rb +51 -0
  513. data/src/admin_panel/vendor/rails/actionpack/lib/action_controller/vendor/rack-1.0/rack/auth/digest/params.rb +55 -0
  514. data/src/admin_panel/vendor/rails/actionpack/lib/action_controller/vendor/rack-1.0/rack/auth/digest/request.rb +40 -0
  515. data/src/admin_panel/vendor/rails/actionpack/lib/action_controller/vendor/rack-1.0/rack/auth/openid.rb +480 -0
  516. data/src/admin_panel/vendor/rails/actionpack/lib/action_controller/vendor/rack-1.0/rack/builder.rb +63 -0
  517. data/src/admin_panel/vendor/rails/actionpack/lib/action_controller/vendor/rack-1.0/rack/cascade.rb +36 -0
  518. data/src/admin_panel/vendor/rails/actionpack/lib/action_controller/vendor/rack-1.0/rack/chunked.rb +49 -0
  519. data/src/admin_panel/vendor/rails/actionpack/lib/action_controller/vendor/rack-1.0/rack/commonlogger.rb +61 -0
  520. data/src/admin_panel/vendor/rails/actionpack/lib/action_controller/vendor/rack-1.0/rack/conditionalget.rb +45 -0
  521. data/src/admin_panel/vendor/rails/actionpack/lib/action_controller/vendor/rack-1.0/rack/content_length.rb +29 -0
  522. data/src/admin_panel/vendor/rails/actionpack/lib/action_controller/vendor/rack-1.0/rack/content_type.rb +23 -0
  523. data/src/admin_panel/vendor/rails/actionpack/lib/action_controller/vendor/rack-1.0/rack/deflater.rb +85 -0
  524. data/src/admin_panel/vendor/rails/actionpack/lib/action_controller/vendor/rack-1.0/rack/directory.rb +153 -0
  525. data/src/admin_panel/vendor/rails/actionpack/lib/action_controller/vendor/rack-1.0/rack/file.rb +88 -0
  526. data/src/admin_panel/vendor/rails/actionpack/lib/action_controller/vendor/rack-1.0/rack/handler/cgi.rb +61 -0
  527. data/src/admin_panel/vendor/rails/actionpack/lib/action_controller/vendor/rack-1.0/rack/handler/evented_mongrel.rb +8 -0
  528. data/src/admin_panel/vendor/rails/actionpack/lib/action_controller/vendor/rack-1.0/rack/handler/fastcgi.rb +89 -0
  529. data/src/admin_panel/vendor/rails/actionpack/lib/action_controller/vendor/rack-1.0/rack/handler/lsws.rb +55 -0
  530. data/src/admin_panel/vendor/rails/actionpack/lib/action_controller/vendor/rack-1.0/rack/handler/mongrel.rb +84 -0
  531. data/src/admin_panel/vendor/rails/actionpack/lib/action_controller/vendor/rack-1.0/rack/handler/scgi.rb +59 -0
  532. data/src/admin_panel/vendor/rails/actionpack/lib/action_controller/vendor/rack-1.0/rack/handler/swiftiplied_mongrel.rb +8 -0
  533. data/src/admin_panel/vendor/rails/actionpack/lib/action_controller/vendor/rack-1.0/rack/handler/thin.rb +18 -0
  534. data/src/admin_panel/vendor/rails/actionpack/lib/action_controller/vendor/rack-1.0/rack/handler/webrick.rb +67 -0
  535. data/src/admin_panel/vendor/rails/actionpack/lib/action_controller/vendor/rack-1.0/rack/handler.rb +48 -0
  536. data/src/admin_panel/vendor/rails/actionpack/lib/action_controller/vendor/rack-1.0/rack/head.rb +19 -0
  537. data/src/admin_panel/vendor/rails/actionpack/lib/action_controller/vendor/rack-1.0/rack/lint.rb +462 -0
  538. data/src/admin_panel/vendor/rails/actionpack/lib/action_controller/vendor/rack-1.0/rack/lobster.rb +65 -0
  539. data/src/admin_panel/vendor/rails/actionpack/lib/action_controller/vendor/rack-1.0/rack/lock.rb +16 -0
  540. data/src/admin_panel/vendor/rails/actionpack/lib/action_controller/vendor/rack-1.0/rack/methodoverride.rb +27 -0
  541. data/src/admin_panel/vendor/rails/actionpack/lib/action_controller/vendor/rack-1.0/rack/mime.rb +204 -0
  542. data/src/admin_panel/vendor/rails/actionpack/lib/action_controller/vendor/rack-1.0/rack/mock.rb +160 -0
  543. data/src/admin_panel/vendor/rails/actionpack/lib/action_controller/vendor/rack-1.0/rack/recursive.rb +57 -0
  544. data/src/admin_panel/vendor/rails/actionpack/lib/action_controller/vendor/rack-1.0/rack/reloader.rb +64 -0
  545. data/src/admin_panel/vendor/rails/actionpack/lib/action_controller/vendor/rack-1.0/rack/request.rb +241 -0
  546. data/src/admin_panel/vendor/rails/actionpack/lib/action_controller/vendor/rack-1.0/rack/response.rb +179 -0
  547. data/src/admin_panel/vendor/rails/actionpack/lib/action_controller/vendor/rack-1.0/rack/session/abstract/id.rb +142 -0
  548. data/src/admin_panel/vendor/rails/actionpack/lib/action_controller/vendor/rack-1.0/rack/session/cookie.rb +91 -0
  549. data/src/admin_panel/vendor/rails/actionpack/lib/action_controller/vendor/rack-1.0/rack/session/memcache.rb +109 -0
  550. data/src/admin_panel/vendor/rails/actionpack/lib/action_controller/vendor/rack-1.0/rack/session/pool.rb +100 -0
  551. data/src/admin_panel/vendor/rails/actionpack/lib/action_controller/vendor/rack-1.0/rack/showexceptions.rb +349 -0
  552. data/src/admin_panel/vendor/rails/actionpack/lib/action_controller/vendor/rack-1.0/rack/showstatus.rb +106 -0
  553. data/src/admin_panel/vendor/rails/actionpack/lib/action_controller/vendor/rack-1.0/rack/static.rb +38 -0
  554. data/src/admin_panel/vendor/rails/actionpack/lib/action_controller/vendor/rack-1.0/rack/urlmap.rb +55 -0
  555. data/src/admin_panel/vendor/rails/actionpack/lib/action_controller/vendor/rack-1.0/rack/utils.rb +392 -0
  556. data/src/admin_panel/vendor/rails/actionpack/lib/action_controller/vendor/rack-1.0/rack.rb +89 -0
  557. data/src/admin_panel/vendor/rails/actionpack/lib/action_controller/verification.rb +130 -0
  558. data/src/admin_panel/vendor/rails/actionpack/lib/action_controller.rb +116 -0
  559. data/src/admin_panel/vendor/rails/actionpack/lib/action_pack/version.rb +9 -0
  560. data/src/admin_panel/vendor/rails/actionpack/lib/action_pack.rb +24 -0
  561. data/src/admin_panel/vendor/rails/actionpack/lib/action_view/base.rb +357 -0
  562. data/src/admin_panel/vendor/rails/actionpack/lib/action_view/erb/util.rb +38 -0
  563. data/src/admin_panel/vendor/rails/actionpack/lib/action_view/helpers/active_record_helper.rb +305 -0
  564. data/src/admin_panel/vendor/rails/actionpack/lib/action_view/helpers/asset_tag_helper.rb +682 -0
  565. data/src/admin_panel/vendor/rails/actionpack/lib/action_view/helpers/atom_feed_helper.rb +198 -0
  566. data/src/admin_panel/vendor/rails/actionpack/lib/action_view/helpers/benchmark_helper.rb +54 -0
  567. data/src/admin_panel/vendor/rails/actionpack/lib/action_view/helpers/cache_helper.rb +39 -0
  568. data/src/admin_panel/vendor/rails/actionpack/lib/action_view/helpers/capture_helper.rb +136 -0
  569. data/src/admin_panel/vendor/rails/actionpack/lib/action_view/helpers/date_helper.rb +976 -0
  570. data/src/admin_panel/vendor/rails/actionpack/lib/action_view/helpers/debug_helper.rb +38 -0
  571. data/src/admin_panel/vendor/rails/actionpack/lib/action_view/helpers/form_helper.rb +1039 -0
  572. data/src/admin_panel/vendor/rails/actionpack/lib/action_view/helpers/form_options_helper.rb +530 -0
  573. data/src/admin_panel/vendor/rails/actionpack/lib/action_view/helpers/form_tag_helper.rb +481 -0
  574. data/src/admin_panel/vendor/rails/actionpack/lib/action_view/helpers/javascript_helper.rb +208 -0
  575. data/src/admin_panel/vendor/rails/actionpack/lib/action_view/helpers/number_helper.rb +303 -0
  576. data/src/admin_panel/vendor/rails/actionpack/lib/action_view/helpers/prototype_helper.rb +1305 -0
  577. data/src/admin_panel/vendor/rails/actionpack/lib/action_view/helpers/record_identification_helper.rb +20 -0
  578. data/src/admin_panel/vendor/rails/actionpack/lib/action_view/helpers/record_tag_helper.rb +58 -0
  579. data/src/admin_panel/vendor/rails/actionpack/lib/action_view/helpers/sanitize_helper.rb +251 -0
  580. data/src/admin_panel/vendor/rails/actionpack/lib/action_view/helpers/scriptaculous_helper.rb +226 -0
  581. data/src/admin_panel/vendor/rails/actionpack/lib/action_view/helpers/tag_helper.rb +150 -0
  582. data/src/admin_panel/vendor/rails/actionpack/lib/action_view/helpers/text_helper.rb +578 -0
  583. data/src/admin_panel/vendor/rails/actionpack/lib/action_view/helpers/translation_helper.rb +39 -0
  584. data/src/admin_panel/vendor/rails/actionpack/lib/action_view/helpers/url_helper.rb +638 -0
  585. data/src/admin_panel/vendor/rails/actionpack/lib/action_view/helpers.rb +57 -0
  586. data/src/admin_panel/vendor/rails/actionpack/lib/action_view/inline_template.rb +19 -0
  587. data/src/admin_panel/vendor/rails/actionpack/lib/action_view/locale/en.yml +110 -0
  588. data/src/admin_panel/vendor/rails/actionpack/lib/action_view/partials.rb +240 -0
  589. data/src/admin_panel/vendor/rails/actionpack/lib/action_view/paths.rb +69 -0
  590. data/src/admin_panel/vendor/rails/actionpack/lib/action_view/reloadable_template.rb +117 -0
  591. data/src/admin_panel/vendor/rails/actionpack/lib/action_view/renderable.rb +95 -0
  592. data/src/admin_panel/vendor/rails/actionpack/lib/action_view/renderable_partial.rb +47 -0
  593. data/src/admin_panel/vendor/rails/actionpack/lib/action_view/template.rb +257 -0
  594. data/src/admin_panel/vendor/rails/actionpack/lib/action_view/template_error.rb +99 -0
  595. data/src/admin_panel/vendor/rails/actionpack/lib/action_view/template_handler.rb +34 -0
  596. data/src/admin_panel/vendor/rails/actionpack/lib/action_view/template_handlers/builder.rb +17 -0
  597. data/src/admin_panel/vendor/rails/actionpack/lib/action_view/template_handlers/erb.rb +22 -0
  598. data/src/admin_panel/vendor/rails/actionpack/lib/action_view/template_handlers/rjs.rb +13 -0
  599. data/src/admin_panel/vendor/rails/actionpack/lib/action_view/template_handlers.rb +48 -0
  600. data/src/admin_panel/vendor/rails/actionpack/lib/action_view/test_case.rb +87 -0
  601. data/src/admin_panel/vendor/rails/actionpack/lib/action_view.rb +58 -0
  602. data/src/admin_panel/vendor/rails/actionpack/lib/actionpack.rb +1 -0
  603. data/src/admin_panel/vendor/rails/actionpack/test/abstract_unit.rb +45 -0
  604. data/src/admin_panel/vendor/rails/actionpack/test/active_record_unit.rb +104 -0
  605. data/src/admin_panel/vendor/rails/actionpack/test/activerecord/active_record_store_test.rb +174 -0
  606. data/src/admin_panel/vendor/rails/actionpack/test/activerecord/render_partial_with_record_identification_test.rb +188 -0
  607. data/src/admin_panel/vendor/rails/actionpack/test/adv_attr_test.rb +20 -0
  608. data/src/admin_panel/vendor/rails/actionpack/test/controller/action_pack_assertions_test.rb +516 -0
  609. data/src/admin_panel/vendor/rails/actionpack/test/controller/addresses_render_test.rb +37 -0
  610. data/src/admin_panel/vendor/rails/actionpack/test/controller/assert_select_test.rb +734 -0
  611. data/src/admin_panel/vendor/rails/actionpack/test/controller/base_test.rb +217 -0
  612. data/src/admin_panel/vendor/rails/actionpack/test/controller/benchmark_test.rb +32 -0
  613. data/src/admin_panel/vendor/rails/actionpack/test/controller/caching_test.rb +690 -0
  614. data/src/admin_panel/vendor/rails/actionpack/test/controller/capture_test.rb +66 -0
  615. data/src/admin_panel/vendor/rails/actionpack/test/controller/content_type_test.rb +168 -0
  616. data/src/admin_panel/vendor/rails/actionpack/test/controller/controller_fixtures/app/controllers/admin/user_controller.rb +0 -0
  617. data/src/admin_panel/vendor/rails/actionpack/test/controller/controller_fixtures/app/controllers/user_controller.rb +0 -0
  618. data/src/admin_panel/vendor/rails/actionpack/test/controller/controller_fixtures/vendor/plugins/bad_plugin/lib/plugin_controller.rb +0 -0
  619. data/src/admin_panel/vendor/rails/actionpack/test/controller/cookie_test.rb +111 -0
  620. data/src/admin_panel/vendor/rails/actionpack/test/controller/deprecation/deprecated_base_methods_test.rb +32 -0
  621. data/src/admin_panel/vendor/rails/actionpack/test/controller/dispatcher_test.rb +103 -0
  622. data/src/admin_panel/vendor/rails/actionpack/test/controller/fake_controllers.rb +33 -0
  623. data/src/admin_panel/vendor/rails/actionpack/test/controller/fake_models.rb +19 -0
  624. data/src/admin_panel/vendor/rails/actionpack/test/controller/filter_params_test.rb +49 -0
  625. data/src/admin_panel/vendor/rails/actionpack/test/controller/filters_test.rb +885 -0
  626. data/src/admin_panel/vendor/rails/actionpack/test/controller/flash_test.rb +142 -0
  627. data/src/admin_panel/vendor/rails/actionpack/test/controller/header_test.rb +14 -0
  628. data/src/admin_panel/vendor/rails/actionpack/test/controller/helper_test.rb +224 -0
  629. data/src/admin_panel/vendor/rails/actionpack/test/controller/html-scanner/cdata_node_test.rb +15 -0
  630. data/src/admin_panel/vendor/rails/actionpack/test/controller/html-scanner/document_test.rb +148 -0
  631. data/src/admin_panel/vendor/rails/actionpack/test/controller/html-scanner/node_test.rb +89 -0
  632. data/src/admin_panel/vendor/rails/actionpack/test/controller/html-scanner/sanitizer_test.rb +273 -0
  633. data/src/admin_panel/vendor/rails/actionpack/test/controller/html-scanner/tag_node_test.rb +238 -0
  634. data/src/admin_panel/vendor/rails/actionpack/test/controller/html-scanner/text_node_test.rb +50 -0
  635. data/src/admin_panel/vendor/rails/actionpack/test/controller/html-scanner/tokenizer_test.rb +131 -0
  636. data/src/admin_panel/vendor/rails/actionpack/test/controller/http_basic_authentication_test.rb +88 -0
  637. data/src/admin_panel/vendor/rails/actionpack/test/controller/http_digest_authentication_test.rb +178 -0
  638. data/src/admin_panel/vendor/rails/actionpack/test/controller/integration_test.rb +417 -0
  639. data/src/admin_panel/vendor/rails/actionpack/test/controller/layout_test.rb +204 -0
  640. data/src/admin_panel/vendor/rails/actionpack/test/controller/logging_test.rb +46 -0
  641. data/src/admin_panel/vendor/rails/actionpack/test/controller/middleware_stack_test.rb +90 -0
  642. data/src/admin_panel/vendor/rails/actionpack/test/controller/mime_responds_test.rb +536 -0
  643. data/src/admin_panel/vendor/rails/actionpack/test/controller/mime_type_test.rb +93 -0
  644. data/src/admin_panel/vendor/rails/actionpack/test/controller/polymorphic_routes_test.rb +293 -0
  645. data/src/admin_panel/vendor/rails/actionpack/test/controller/rack_test.rb +294 -0
  646. data/src/admin_panel/vendor/rails/actionpack/test/controller/record_identifier_test.rb +139 -0
  647. data/src/admin_panel/vendor/rails/actionpack/test/controller/redirect_test.rb +282 -0
  648. data/src/admin_panel/vendor/rails/actionpack/test/controller/render_test.rb +1752 -0
  649. data/src/admin_panel/vendor/rails/actionpack/test/controller/request/json_params_parsing_test.rb +45 -0
  650. data/src/admin_panel/vendor/rails/actionpack/test/controller/request/multipart_params_parsing_test.rb +223 -0
  651. data/src/admin_panel/vendor/rails/actionpack/test/controller/request/query_string_parsing_test.rb +120 -0
  652. data/src/admin_panel/vendor/rails/actionpack/test/controller/request/url_encoded_params_parsing_test.rb +184 -0
  653. data/src/admin_panel/vendor/rails/actionpack/test/controller/request/xml_params_parsing_test.rb +88 -0
  654. data/src/admin_panel/vendor/rails/actionpack/test/controller/request_forgery_protection_test.rb +246 -0
  655. data/src/admin_panel/vendor/rails/actionpack/test/controller/request_test.rb +407 -0
  656. data/src/admin_panel/vendor/rails/actionpack/test/controller/rescue_test.rb +536 -0
  657. data/src/admin_panel/vendor/rails/actionpack/test/controller/resources_test.rb +1341 -0
  658. data/src/admin_panel/vendor/rails/actionpack/test/controller/routing_test.rb +2557 -0
  659. data/src/admin_panel/vendor/rails/actionpack/test/controller/selector_test.rb +628 -0
  660. data/src/admin_panel/vendor/rails/actionpack/test/controller/send_file_test.rb +161 -0
  661. data/src/admin_panel/vendor/rails/actionpack/test/controller/session/cookie_store_test.rb +239 -0
  662. data/src/admin_panel/vendor/rails/actionpack/test/controller/session/mem_cache_store_test.rb +127 -0
  663. data/src/admin_panel/vendor/rails/actionpack/test/controller/session/test_session_test.rb +58 -0
  664. data/src/admin_panel/vendor/rails/actionpack/test/controller/test_test.rb +692 -0
  665. data/src/admin_panel/vendor/rails/actionpack/test/controller/translation_test.rb +26 -0
  666. data/src/admin_panel/vendor/rails/actionpack/test/controller/url_rewriter_test.rb +359 -0
  667. data/src/admin_panel/vendor/rails/actionpack/test/controller/verification_test.rb +270 -0
  668. data/src/admin_panel/vendor/rails/actionpack/test/controller/view_paths_test.rb +141 -0
  669. data/src/admin_panel/vendor/rails/actionpack/test/controller/webservice_test.rb +260 -0
  670. data/src/admin_panel/vendor/rails/actionpack/test/fixtures/_top_level_partial.html.erb +1 -0
  671. data/src/admin_panel/vendor/rails/actionpack/test/fixtures/_top_level_partial_only.erb +1 -0
  672. data/src/admin_panel/vendor/rails/actionpack/test/fixtures/addresses/list.erb +1 -0
  673. data/src/admin_panel/vendor/rails/actionpack/test/fixtures/alternate_helpers/foo_helper.rb +3 -0
  674. data/src/admin_panel/vendor/rails/actionpack/test/fixtures/bad_customers/_bad_customer.html.erb +1 -0
  675. data/src/admin_panel/vendor/rails/actionpack/test/fixtures/companies.yml +24 -0
  676. data/src/admin_panel/vendor/rails/actionpack/test/fixtures/company.rb +10 -0
  677. data/src/admin_panel/vendor/rails/actionpack/test/fixtures/content_type/render_default_content_types_for_respond_to.rhtml +1 -0
  678. data/src/admin_panel/vendor/rails/actionpack/test/fixtures/content_type/render_default_for_rhtml.rhtml +1 -0
  679. data/src/admin_panel/vendor/rails/actionpack/test/fixtures/content_type/render_default_for_rjs.rjs +1 -0
  680. data/src/admin_panel/vendor/rails/actionpack/test/fixtures/content_type/render_default_for_rxml.rxml +1 -0
  681. data/src/admin_panel/vendor/rails/actionpack/test/fixtures/customers/_customer.html.erb +1 -0
  682. data/src/admin_panel/vendor/rails/actionpack/test/fixtures/db_definitions/sqlite.sql +49 -0
  683. data/src/admin_panel/vendor/rails/actionpack/test/fixtures/developer.rb +9 -0
  684. data/src/admin_panel/vendor/rails/actionpack/test/fixtures/developers/_developer.erb +1 -0
  685. data/src/admin_panel/vendor/rails/actionpack/test/fixtures/developers.yml +21 -0
  686. data/src/admin_panel/vendor/rails/actionpack/test/fixtures/developers_projects.yml +13 -0
  687. data/src/admin_panel/vendor/rails/actionpack/test/fixtures/fun/games/_game.erb +1 -0
  688. data/src/admin_panel/vendor/rails/actionpack/test/fixtures/fun/games/hello_world.erb +1 -0
  689. data/src/admin_panel/vendor/rails/actionpack/test/fixtures/fun/serious/games/_game.erb +1 -0
  690. data/src/admin_panel/vendor/rails/actionpack/test/fixtures/functional_caching/_partial.erb +3 -0
  691. data/src/admin_panel/vendor/rails/actionpack/test/fixtures/functional_caching/formatted_fragment_cached.html.erb +3 -0
  692. data/src/admin_panel/vendor/rails/actionpack/test/fixtures/functional_caching/formatted_fragment_cached.js.rjs +6 -0
  693. data/src/admin_panel/vendor/rails/actionpack/test/fixtures/functional_caching/formatted_fragment_cached.xml.builder +5 -0
  694. data/src/admin_panel/vendor/rails/actionpack/test/fixtures/functional_caching/fragment_cached.html.erb +2 -0
  695. data/src/admin_panel/vendor/rails/actionpack/test/fixtures/functional_caching/html_fragment_cached_with_partial.html.erb +1 -0
  696. data/src/admin_panel/vendor/rails/actionpack/test/fixtures/functional_caching/inline_fragment_cached.html.erb +2 -0
  697. data/src/admin_panel/vendor/rails/actionpack/test/fixtures/functional_caching/js_fragment_cached_with_partial.js.rjs +1 -0
  698. data/src/admin_panel/vendor/rails/actionpack/test/fixtures/good_customers/_good_customer.html.erb +1 -0
  699. data/src/admin_panel/vendor/rails/actionpack/test/fixtures/helpers/abc_helper.rb +5 -0
  700. data/src/admin_panel/vendor/rails/actionpack/test/fixtures/helpers/fun/games_helper.rb +3 -0
  701. data/src/admin_panel/vendor/rails/actionpack/test/fixtures/helpers/fun/pdf_helper.rb +3 -0
  702. data/src/admin_panel/vendor/rails/actionpack/test/fixtures/layout_tests/alt/hello.rhtml +1 -0
  703. data/src/admin_panel/vendor/rails/actionpack/test/fixtures/layout_tests/alt/layouts/alt.rhtml +0 -0
  704. data/src/admin_panel/vendor/rails/actionpack/test/fixtures/layout_tests/layouts/controller_name_space/nested.rhtml +1 -0
  705. data/src/admin_panel/vendor/rails/actionpack/test/fixtures/layout_tests/layouts/item.rhtml +1 -0
  706. data/src/admin_panel/vendor/rails/actionpack/test/fixtures/layout_tests/layouts/layout_test.rhtml +1 -0
  707. data/src/admin_panel/vendor/rails/actionpack/test/fixtures/layout_tests/layouts/multiple_extensions.html.erb +1 -0
  708. data/src/admin_panel/vendor/rails/actionpack/test/fixtures/layout_tests/layouts/third_party_template_library.mab +1 -0
  709. data/src/admin_panel/vendor/rails/actionpack/test/fixtures/layout_tests/views/hello.rhtml +1 -0
  710. data/src/admin_panel/vendor/rails/actionpack/test/fixtures/layouts/_column.html.erb +2 -0
  711. data/src/admin_panel/vendor/rails/actionpack/test/fixtures/layouts/block_with_layout.erb +3 -0
  712. data/src/admin_panel/vendor/rails/actionpack/test/fixtures/layouts/builder.builder +3 -0
  713. data/src/admin_panel/vendor/rails/actionpack/test/fixtures/layouts/default_html.html.erb +1 -0
  714. data/src/admin_panel/vendor/rails/actionpack/test/fixtures/layouts/partial_with_layout.erb +3 -0
  715. data/src/admin_panel/vendor/rails/actionpack/test/fixtures/layouts/standard.erb +1 -0
  716. data/src/admin_panel/vendor/rails/actionpack/test/fixtures/layouts/talk_from_action.erb +2 -0
  717. data/src/admin_panel/vendor/rails/actionpack/test/fixtures/layouts/xhr.html.erb +2 -0
  718. data/src/admin_panel/vendor/rails/actionpack/test/fixtures/layouts/yield.erb +2 -0
  719. data/src/admin_panel/vendor/rails/actionpack/test/fixtures/mascot.rb +3 -0
  720. data/src/admin_panel/vendor/rails/actionpack/test/fixtures/mascots/_mascot.html.erb +1 -0
  721. data/src/admin_panel/vendor/rails/actionpack/test/fixtures/mascots.yml +4 -0
  722. data/src/admin_panel/vendor/rails/actionpack/test/fixtures/multipart/binary_file +0 -0
  723. data/src/admin_panel/vendor/rails/actionpack/test/fixtures/multipart/boundary_problem_file +10 -0
  724. data/src/admin_panel/vendor/rails/actionpack/test/fixtures/multipart/bracketed_param +5 -0
  725. data/src/admin_panel/vendor/rails/actionpack/test/fixtures/multipart/empty +10 -0
  726. data/src/admin_panel/vendor/rails/actionpack/test/fixtures/multipart/hello.txt +1 -0
  727. data/src/admin_panel/vendor/rails/actionpack/test/fixtures/multipart/large_text_file +10 -0
  728. data/src/admin_panel/vendor/rails/actionpack/test/fixtures/multipart/mixed_files +0 -0
  729. data/src/admin_panel/vendor/rails/actionpack/test/fixtures/multipart/mona_lisa.jpg +0 -0
  730. data/src/admin_panel/vendor/rails/actionpack/test/fixtures/multipart/none +9 -0
  731. data/src/admin_panel/vendor/rails/actionpack/test/fixtures/multipart/single_parameter +5 -0
  732. data/src/admin_panel/vendor/rails/actionpack/test/fixtures/multipart/text_file +10 -0
  733. data/src/admin_panel/vendor/rails/actionpack/test/fixtures/override/test/hello_world.erb +1 -0
  734. data/src/admin_panel/vendor/rails/actionpack/test/fixtures/override2/layouts/test/sub.erb +1 -0
  735. data/src/admin_panel/vendor/rails/actionpack/test/fixtures/post_test/layouts/post.html.erb +1 -0
  736. data/src/admin_panel/vendor/rails/actionpack/test/fixtures/post_test/layouts/super_post.iphone.erb +1 -0
  737. data/src/admin_panel/vendor/rails/actionpack/test/fixtures/post_test/post/index.html.erb +1 -0
  738. data/src/admin_panel/vendor/rails/actionpack/test/fixtures/post_test/post/index.iphone.erb +1 -0
  739. data/src/admin_panel/vendor/rails/actionpack/test/fixtures/post_test/super_post/index.html.erb +1 -0
  740. data/src/admin_panel/vendor/rails/actionpack/test/fixtures/post_test/super_post/index.iphone.erb +1 -0
  741. data/src/admin_panel/vendor/rails/actionpack/test/fixtures/project.rb +3 -0
  742. data/src/admin_panel/vendor/rails/actionpack/test/fixtures/projects/_project.erb +1 -0
  743. data/src/admin_panel/vendor/rails/actionpack/test/fixtures/projects.yml +7 -0
  744. data/src/admin_panel/vendor/rails/actionpack/test/fixtures/public/404.html +1 -0
  745. data/src/admin_panel/vendor/rails/actionpack/test/fixtures/public/500.da.html +1 -0
  746. data/src/admin_panel/vendor/rails/actionpack/test/fixtures/public/500.html +1 -0
  747. data/src/admin_panel/vendor/rails/actionpack/test/fixtures/public/images/rails.png +0 -0
  748. data/src/admin_panel/vendor/rails/actionpack/test/fixtures/public/javascripts/application.js +1 -0
  749. data/src/admin_panel/vendor/rails/actionpack/test/fixtures/public/javascripts/bank.js +1 -0
  750. data/src/admin_panel/vendor/rails/actionpack/test/fixtures/public/javascripts/controls.js +1 -0
  751. data/src/admin_panel/vendor/rails/actionpack/test/fixtures/public/javascripts/dragdrop.js +1 -0
  752. data/src/admin_panel/vendor/rails/actionpack/test/fixtures/public/javascripts/effects.js +1 -0
  753. data/src/admin_panel/vendor/rails/actionpack/test/fixtures/public/javascripts/prototype.js +1 -0
  754. data/src/admin_panel/vendor/rails/actionpack/test/fixtures/public/javascripts/robber.js +1 -0
  755. data/src/admin_panel/vendor/rails/actionpack/test/fixtures/public/javascripts/subdir/subdir.js +1 -0
  756. data/src/admin_panel/vendor/rails/actionpack/test/fixtures/public/javascripts/version.1.0.js +1 -0
  757. data/src/admin_panel/vendor/rails/actionpack/test/fixtures/public/stylesheets/bank.css +1 -0
  758. data/src/admin_panel/vendor/rails/actionpack/test/fixtures/public/stylesheets/robber.css +1 -0
  759. data/src/admin_panel/vendor/rails/actionpack/test/fixtures/public/stylesheets/subdir/subdir.css +1 -0
  760. data/src/admin_panel/vendor/rails/actionpack/test/fixtures/public/stylesheets/version.1.0.css +1 -0
  761. data/src/admin_panel/vendor/rails/actionpack/test/fixtures/quiz/questions/_question.html.erb +1 -0
  762. data/src/admin_panel/vendor/rails/actionpack/test/fixtures/replies/_reply.erb +1 -0
  763. data/src/admin_panel/vendor/rails/actionpack/test/fixtures/replies.yml +15 -0
  764. data/src/admin_panel/vendor/rails/actionpack/test/fixtures/reply.rb +7 -0
  765. data/src/admin_panel/vendor/rails/actionpack/test/fixtures/respond_to/all_types_with_layout.html.erb +1 -0
  766. data/src/admin_panel/vendor/rails/actionpack/test/fixtures/respond_to/all_types_with_layout.js.rjs +1 -0
  767. data/src/admin_panel/vendor/rails/actionpack/test/fixtures/respond_to/custom_constant_handling_without_block.mobile.erb +1 -0
  768. data/src/admin_panel/vendor/rails/actionpack/test/fixtures/respond_to/iphone_with_html_response_type.html.erb +1 -0
  769. data/src/admin_panel/vendor/rails/actionpack/test/fixtures/respond_to/iphone_with_html_response_type.iphone.erb +1 -0
  770. data/src/admin_panel/vendor/rails/actionpack/test/fixtures/respond_to/layouts/missing.html.erb +1 -0
  771. data/src/admin_panel/vendor/rails/actionpack/test/fixtures/respond_to/layouts/standard.html.erb +1 -0
  772. data/src/admin_panel/vendor/rails/actionpack/test/fixtures/respond_to/layouts/standard.iphone.erb +1 -0
  773. data/src/admin_panel/vendor/rails/actionpack/test/fixtures/respond_to/using_defaults.html.erb +1 -0
  774. data/src/admin_panel/vendor/rails/actionpack/test/fixtures/respond_to/using_defaults.js.rjs +1 -0
  775. data/src/admin_panel/vendor/rails/actionpack/test/fixtures/respond_to/using_defaults.xml.builder +1 -0
  776. data/src/admin_panel/vendor/rails/actionpack/test/fixtures/respond_to/using_defaults_with_type_list.html.erb +1 -0
  777. data/src/admin_panel/vendor/rails/actionpack/test/fixtures/respond_to/using_defaults_with_type_list.js.rjs +1 -0
  778. data/src/admin_panel/vendor/rails/actionpack/test/fixtures/respond_to/using_defaults_with_type_list.xml.builder +1 -0
  779. data/src/admin_panel/vendor/rails/actionpack/test/fixtures/scope/test/modgreet.erb +1 -0
  780. data/src/admin_panel/vendor/rails/actionpack/test/fixtures/shared.html.erb +1 -0
  781. data/src/admin_panel/vendor/rails/actionpack/test/fixtures/symlink_parent/symlinked_layout.erb +5 -0
  782. data/src/admin_panel/vendor/rails/actionpack/test/fixtures/test/_counter.html.erb +1 -0
  783. data/src/admin_panel/vendor/rails/actionpack/test/fixtures/test/_customer.erb +1 -0
  784. data/src/admin_panel/vendor/rails/actionpack/test/fixtures/test/_customer_counter.erb +1 -0
  785. data/src/admin_panel/vendor/rails/actionpack/test/fixtures/test/_customer_greeting.erb +1 -0
  786. data/src/admin_panel/vendor/rails/actionpack/test/fixtures/test/_customer_with_var.erb +1 -0
  787. data/src/admin_panel/vendor/rails/actionpack/test/fixtures/test/_form.erb +1 -0
  788. data/src/admin_panel/vendor/rails/actionpack/test/fixtures/test/_hash_greeting.erb +1 -0
  789. data/src/admin_panel/vendor/rails/actionpack/test/fixtures/test/_hash_object.erb +2 -0
  790. data/src/admin_panel/vendor/rails/actionpack/test/fixtures/test/_hello.builder +1 -0
  791. data/src/admin_panel/vendor/rails/actionpack/test/fixtures/test/_labelling_form.erb +1 -0
  792. data/src/admin_panel/vendor/rails/actionpack/test/fixtures/test/_layout_for_block_with_args.html.erb +3 -0
  793. data/src/admin_panel/vendor/rails/actionpack/test/fixtures/test/_layout_for_partial.html.erb +3 -0
  794. data/src/admin_panel/vendor/rails/actionpack/test/fixtures/test/_local_inspector.html.erb +1 -0
  795. data/src/admin_panel/vendor/rails/actionpack/test/fixtures/test/_one.html.erb +1 -0
  796. data/src/admin_panel/vendor/rails/actionpack/test/fixtures/test/_partial.erb +1 -0
  797. data/src/admin_panel/vendor/rails/actionpack/test/fixtures/test/_partial.html.erb +1 -0
  798. data/src/admin_panel/vendor/rails/actionpack/test/fixtures/test/_partial.js.erb +1 -0
  799. data/src/admin_panel/vendor/rails/actionpack/test/fixtures/test/_partial_for_use_in_layout.html.erb +1 -0
  800. data/src/admin_panel/vendor/rails/actionpack/test/fixtures/test/_partial_only.erb +1 -0
  801. data/src/admin_panel/vendor/rails/actionpack/test/fixtures/test/_partial_with_only_html_version.html.erb +1 -0
  802. data/src/admin_panel/vendor/rails/actionpack/test/fixtures/test/_person.erb +2 -0
  803. data/src/admin_panel/vendor/rails/actionpack/test/fixtures/test/_raise.html.erb +1 -0
  804. data/src/admin_panel/vendor/rails/actionpack/test/fixtures/test/_two.html.erb +1 -0
  805. data/src/admin_panel/vendor/rails/actionpack/test/fixtures/test/action_talk_to_layout.erb +2 -0
  806. data/src/admin_panel/vendor/rails/actionpack/test/fixtures/test/calling_partial_with_layout.html.erb +1 -0
  807. data/src/admin_panel/vendor/rails/actionpack/test/fixtures/test/capturing.erb +4 -0
  808. data/src/admin_panel/vendor/rails/actionpack/test/fixtures/test/content_for.erb +2 -0
  809. data/src/admin_panel/vendor/rails/actionpack/test/fixtures/test/content_for_concatenated.erb +3 -0
  810. data/src/admin_panel/vendor/rails/actionpack/test/fixtures/test/content_for_with_parameter.erb +2 -0
  811. data/src/admin_panel/vendor/rails/actionpack/test/fixtures/test/delete_with_js.rjs +2 -0
  812. data/src/admin_panel/vendor/rails/actionpack/test/fixtures/test/dont_pick_me +1 -0
  813. data/src/admin_panel/vendor/rails/actionpack/test/fixtures/test/dot.directory/render_file_with_ivar.erb +1 -0
  814. data/src/admin_panel/vendor/rails/actionpack/test/fixtures/test/enum_rjs_test.rjs +6 -0
  815. data/src/admin_panel/vendor/rails/actionpack/test/fixtures/test/formatted_html_erb.html.erb +1 -0
  816. data/src/admin_panel/vendor/rails/actionpack/test/fixtures/test/formatted_xml_erb.builder +1 -0
  817. data/src/admin_panel/vendor/rails/actionpack/test/fixtures/test/formatted_xml_erb.html.erb +1 -0
  818. data/src/admin_panel/vendor/rails/actionpack/test/fixtures/test/formatted_xml_erb.xml.erb +1 -0
  819. data/src/admin_panel/vendor/rails/actionpack/test/fixtures/test/greeting.erb +1 -0
  820. data/src/admin_panel/vendor/rails/actionpack/test/fixtures/test/greeting.js.rjs +1 -0
  821. data/src/admin_panel/vendor/rails/actionpack/test/fixtures/test/hello.builder +4 -0
  822. data/src/admin_panel/vendor/rails/actionpack/test/fixtures/test/hello_world.da.html.erb +1 -0
  823. data/src/admin_panel/vendor/rails/actionpack/test/fixtures/test/hello_world.erb +1 -0
  824. data/src/admin_panel/vendor/rails/actionpack/test/fixtures/test/hello_world.pt-BR.html.erb +1 -0
  825. data/src/admin_panel/vendor/rails/actionpack/test/fixtures/test/hello_world_container.builder +3 -0
  826. data/src/admin_panel/vendor/rails/actionpack/test/fixtures/test/hello_world_from_rxml.builder +4 -0
  827. data/src/admin_panel/vendor/rails/actionpack/test/fixtures/test/hello_world_with_layout_false.erb +1 -0
  828. data/src/admin_panel/vendor/rails/actionpack/test/fixtures/test/hello_xml_world.builder +11 -0
  829. data/src/admin_panel/vendor/rails/actionpack/test/fixtures/test/hyphen-ated.erb +1 -0
  830. data/src/admin_panel/vendor/rails/actionpack/test/fixtures/test/implicit_content_type.atom.builder +2 -0
  831. data/src/admin_panel/vendor/rails/actionpack/test/fixtures/test/list.erb +1 -0
  832. data/src/admin_panel/vendor/rails/actionpack/test/fixtures/test/nested_layout.erb +3 -0
  833. data/src/admin_panel/vendor/rails/actionpack/test/fixtures/test/non_erb_block_content_for.builder +4 -0
  834. data/src/admin_panel/vendor/rails/actionpack/test/fixtures/test/potential_conflicts.erb +4 -0
  835. data/src/admin_panel/vendor/rails/actionpack/test/fixtures/test/render_explicit_html_template.js.rjs +1 -0
  836. data/src/admin_panel/vendor/rails/actionpack/test/fixtures/test/render_file_from_template.html.erb +1 -0
  837. data/src/admin_panel/vendor/rails/actionpack/test/fixtures/test/render_file_with_ivar.erb +1 -0
  838. data/src/admin_panel/vendor/rails/actionpack/test/fixtures/test/render_file_with_locals.erb +1 -0
  839. data/src/admin_panel/vendor/rails/actionpack/test/fixtures/test/render_implicit_html_template.js.rjs +1 -0
  840. data/src/admin_panel/vendor/rails/actionpack/test/fixtures/test/render_implicit_html_template_from_xhr_request.da.html.erb +1 -0
  841. data/src/admin_panel/vendor/rails/actionpack/test/fixtures/test/render_implicit_html_template_from_xhr_request.html.erb +1 -0
  842. data/src/admin_panel/vendor/rails/actionpack/test/fixtures/test/render_implicit_js_template_without_layout.js.erb +1 -0
  843. data/src/admin_panel/vendor/rails/actionpack/test/fixtures/test/render_to_string_test.erb +1 -0
  844. data/src/admin_panel/vendor/rails/actionpack/test/fixtures/test/sub_template_raise.html.erb +1 -0
  845. data/src/admin_panel/vendor/rails/actionpack/test/fixtures/test/template.erb +1 -0
  846. data/src/admin_panel/vendor/rails/actionpack/test/fixtures/test/update_element_with_capture.erb +9 -0
  847. data/src/admin_panel/vendor/rails/actionpack/test/fixtures/test/using_layout_around_block.html.erb +1 -0
  848. data/src/admin_panel/vendor/rails/actionpack/test/fixtures/test/using_layout_around_block_with_args.html.erb +1 -0
  849. data/src/admin_panel/vendor/rails/actionpack/test/fixtures/test/utf8.html.erb +2 -0
  850. data/src/admin_panel/vendor/rails/actionpack/test/fixtures/topic.rb +3 -0
  851. data/src/admin_panel/vendor/rails/actionpack/test/fixtures/topics/_topic.html.erb +1 -0
  852. data/src/admin_panel/vendor/rails/actionpack/test/fixtures/topics.yml +22 -0
  853. data/src/admin_panel/vendor/rails/actionpack/test/template/active_record_helper_i18n_test.rb +44 -0
  854. data/src/admin_panel/vendor/rails/actionpack/test/template/active_record_helper_test.rb +302 -0
  855. data/src/admin_panel/vendor/rails/actionpack/test/template/asset_tag_helper_test.rb +713 -0
  856. data/src/admin_panel/vendor/rails/actionpack/test/template/atom_feed_helper_test.rb +286 -0
  857. data/src/admin_panel/vendor/rails/actionpack/test/template/benchmark_helper_test.rb +86 -0
  858. data/src/admin_panel/vendor/rails/actionpack/test/template/compiled_templates_test.rb +203 -0
  859. data/src/admin_panel/vendor/rails/actionpack/test/template/date_helper_i18n_test.rb +120 -0
  860. data/src/admin_panel/vendor/rails/actionpack/test/template/date_helper_test.rb +2469 -0
  861. data/src/admin_panel/vendor/rails/actionpack/test/template/erb_util_test.rb +24 -0
  862. data/src/admin_panel/vendor/rails/actionpack/test/template/form_helper_test.rb +1176 -0
  863. data/src/admin_panel/vendor/rails/actionpack/test/template/form_options_helper_test.rb +751 -0
  864. data/src/admin_panel/vendor/rails/actionpack/test/template/form_tag_helper_test.rb +327 -0
  865. data/src/admin_panel/vendor/rails/actionpack/test/template/javascript_helper_test.rb +106 -0
  866. data/src/admin_panel/vendor/rails/actionpack/test/template/number_helper_i18n_test.rb +69 -0
  867. data/src/admin_panel/vendor/rails/actionpack/test/template/number_helper_test.rb +128 -0
  868. data/src/admin_panel/vendor/rails/actionpack/test/template/prototype_helper_test.rb +639 -0
  869. data/src/admin_panel/vendor/rails/actionpack/test/template/record_tag_helper_test.rb +58 -0
  870. data/src/admin_panel/vendor/rails/actionpack/test/template/render_test.rb +290 -0
  871. data/src/admin_panel/vendor/rails/actionpack/test/template/sanitize_helper_test.rb +48 -0
  872. data/src/admin_panel/vendor/rails/actionpack/test/template/scriptaculous_helper_test.rb +90 -0
  873. data/src/admin_panel/vendor/rails/actionpack/test/template/tag_helper_test.rb +97 -0
  874. data/src/admin_panel/vendor/rails/actionpack/test/template/test_test.rb +54 -0
  875. data/src/admin_panel/vendor/rails/actionpack/test/template/text_helper_test.rb +520 -0
  876. data/src/admin_panel/vendor/rails/actionpack/test/template/translation_helper_test.rb +32 -0
  877. data/src/admin_panel/vendor/rails/actionpack/test/template/url_helper_test.rb +614 -0
  878. data/src/admin_panel/vendor/rails/actionpack/test/testing_sandbox.rb +15 -0
  879. data/src/admin_panel/vendor/rails/actionpack/test/view/test_case_test.rb +8 -0
  880. data/src/admin_panel/vendor/rails/activerecord/CHANGELOG +5832 -0
  881. data/src/admin_panel/vendor/rails/activerecord/README +351 -0
  882. data/src/admin_panel/vendor/rails/activerecord/RUNNING_UNIT_TESTS +36 -0
  883. data/src/admin_panel/vendor/rails/activerecord/Rakefile +253 -0
  884. data/src/admin_panel/vendor/rails/activerecord/examples/associations.png +0 -0
  885. data/src/admin_panel/vendor/rails/activerecord/install.rb +30 -0
  886. data/src/admin_panel/vendor/rails/activerecord/lib/active_record/aggregations.rb +261 -0
  887. data/src/admin_panel/vendor/rails/activerecord/lib/active_record/association_preload.rb +389 -0
  888. data/src/admin_panel/vendor/rails/activerecord/lib/active_record/associations/association_collection.rb +470 -0
  889. data/src/admin_panel/vendor/rails/activerecord/lib/active_record/associations/association_proxy.rb +279 -0
  890. data/src/admin_panel/vendor/rails/activerecord/lib/active_record/associations/belongs_to_association.rb +58 -0
  891. data/src/admin_panel/vendor/rails/activerecord/lib/active_record/associations/belongs_to_polymorphic_association.rb +49 -0
  892. data/src/admin_panel/vendor/rails/activerecord/lib/active_record/associations/has_and_belongs_to_many_association.rb +127 -0
  893. data/src/admin_panel/vendor/rails/activerecord/lib/active_record/associations/has_many_association.rb +121 -0
  894. data/src/admin_panel/vendor/rails/activerecord/lib/active_record/associations/has_many_through_association.rb +256 -0
  895. data/src/admin_panel/vendor/rails/activerecord/lib/active_record/associations/has_one_association.rb +124 -0
  896. data/src/admin_panel/vendor/rails/activerecord/lib/active_record/associations/has_one_through_association.rb +31 -0
  897. data/src/admin_panel/vendor/rails/activerecord/lib/active_record/associations.rb +2169 -0
  898. data/src/admin_panel/vendor/rails/activerecord/lib/active_record/attribute_methods.rb +388 -0
  899. data/src/admin_panel/vendor/rails/activerecord/lib/active_record/autosave_association.rb +349 -0
  900. data/src/admin_panel/vendor/rails/activerecord/lib/active_record/base.rb +3155 -0
  901. data/src/admin_panel/vendor/rails/activerecord/lib/active_record/batches.rb +73 -0
  902. data/src/admin_panel/vendor/rails/activerecord/lib/active_record/calculations.rb +317 -0
  903. data/src/admin_panel/vendor/rails/activerecord/lib/active_record/callbacks.rb +360 -0
  904. data/src/admin_panel/vendor/rails/activerecord/lib/active_record/connection_adapters/abstract/connection_pool.rb +371 -0
  905. data/src/admin_panel/vendor/rails/activerecord/lib/active_record/connection_adapters/abstract/connection_specification.rb +139 -0
  906. data/src/admin_panel/vendor/rails/activerecord/lib/active_record/connection_adapters/abstract/database_statements.rb +289 -0
  907. data/src/admin_panel/vendor/rails/activerecord/lib/active_record/connection_adapters/abstract/query_cache.rb +94 -0
  908. data/src/admin_panel/vendor/rails/activerecord/lib/active_record/connection_adapters/abstract/quoting.rb +69 -0
  909. data/src/admin_panel/vendor/rails/activerecord/lib/active_record/connection_adapters/abstract/schema_definitions.rb +708 -0
  910. data/src/admin_panel/vendor/rails/activerecord/lib/active_record/connection_adapters/abstract/schema_statements.rb +434 -0
  911. data/src/admin_panel/vendor/rails/activerecord/lib/active_record/connection_adapters/abstract_adapter.rb +234 -0
  912. data/src/admin_panel/vendor/rails/activerecord/lib/active_record/connection_adapters/mysql_adapter.rb +617 -0
  913. data/src/admin_panel/vendor/rails/activerecord/lib/active_record/connection_adapters/postgresql_adapter.rb +1050 -0
  914. data/src/admin_panel/vendor/rails/activerecord/lib/active_record/connection_adapters/sqlite3_adapter.rb +34 -0
  915. data/src/admin_panel/vendor/rails/activerecord/lib/active_record/connection_adapters/sqlite_adapter.rb +438 -0
  916. data/src/admin_panel/vendor/rails/activerecord/lib/active_record/dirty.rb +183 -0
  917. data/src/admin_panel/vendor/rails/activerecord/lib/active_record/dynamic_finder_match.rb +41 -0
  918. data/src/admin_panel/vendor/rails/activerecord/lib/active_record/dynamic_scope_match.rb +25 -0
  919. data/src/admin_panel/vendor/rails/activerecord/lib/active_record/fixtures.rb +993 -0
  920. data/src/admin_panel/vendor/rails/activerecord/lib/active_record/i18n_interpolation_deprecation.rb +26 -0
  921. data/src/admin_panel/vendor/rails/activerecord/lib/active_record/locale/en.yml +54 -0
  922. data/src/admin_panel/vendor/rails/activerecord/lib/active_record/locking/optimistic.rb +181 -0
  923. data/src/admin_panel/vendor/rails/activerecord/lib/active_record/locking/pessimistic.rb +77 -0
  924. data/src/admin_panel/vendor/rails/activerecord/lib/active_record/migration.rb +566 -0
  925. data/src/admin_panel/vendor/rails/activerecord/lib/active_record/named_scope.rb +197 -0
  926. data/src/admin_panel/vendor/rails/activerecord/lib/active_record/nested_attributes.rb +329 -0
  927. data/src/admin_panel/vendor/rails/activerecord/lib/active_record/observer.rb +197 -0
  928. data/src/admin_panel/vendor/rails/activerecord/lib/active_record/query_cache.rb +33 -0
  929. data/src/admin_panel/vendor/rails/activerecord/lib/active_record/reflection.rb +320 -0
  930. data/src/admin_panel/vendor/rails/activerecord/lib/active_record/schema.rb +51 -0
  931. data/src/admin_panel/vendor/rails/activerecord/lib/active_record/schema_dumper.rb +179 -0
  932. data/src/admin_panel/vendor/rails/activerecord/lib/active_record/serialization.rb +100 -0
  933. data/src/admin_panel/vendor/rails/activerecord/lib/active_record/serializers/json_serializer.rb +99 -0
  934. data/src/admin_panel/vendor/rails/activerecord/lib/active_record/serializers/xml_serializer.rb +353 -0
  935. data/src/admin_panel/vendor/rails/activerecord/lib/active_record/session_store.rb +318 -0
  936. data/src/admin_panel/vendor/rails/activerecord/lib/active_record/test_case.rb +66 -0
  937. data/src/admin_panel/vendor/rails/activerecord/lib/active_record/timestamp.rb +41 -0
  938. data/src/admin_panel/vendor/rails/activerecord/lib/active_record/transactions.rb +235 -0
  939. data/src/admin_panel/vendor/rails/activerecord/lib/active_record/validations.rb +1066 -0
  940. data/src/admin_panel/vendor/rails/activerecord/lib/active_record/version.rb +9 -0
  941. data/src/admin_panel/vendor/rails/activerecord/lib/active_record.rb +84 -0
  942. data/src/admin_panel/vendor/rails/activerecord/lib/activerecord.rb +1 -0
  943. data/src/admin_panel/vendor/rails/activerecord/test/assets/flowers.jpg +0 -0
  944. data/src/admin_panel/vendor/rails/activerecord/test/cases/aaa_create_tables_test.rb +24 -0
  945. data/src/admin_panel/vendor/rails/activerecord/test/cases/active_schema_test_mysql.rb +100 -0
  946. data/src/admin_panel/vendor/rails/activerecord/test/cases/active_schema_test_postgresql.rb +24 -0
  947. data/src/admin_panel/vendor/rails/activerecord/test/cases/adapter_test.rb +133 -0
  948. data/src/admin_panel/vendor/rails/activerecord/test/cases/aggregations_test.rb +167 -0
  949. data/src/admin_panel/vendor/rails/activerecord/test/cases/ar_schema_test.rb +32 -0
  950. data/src/admin_panel/vendor/rails/activerecord/test/cases/associations/belongs_to_associations_test.rb +345 -0
  951. data/src/admin_panel/vendor/rails/activerecord/test/cases/associations/callbacks_test.rb +161 -0
  952. data/src/admin_panel/vendor/rails/activerecord/test/cases/associations/cascaded_eager_loading_test.rb +131 -0
  953. data/src/admin_panel/vendor/rails/activerecord/test/cases/associations/eager_load_includes_full_sti_class_test.rb +36 -0
  954. data/src/admin_panel/vendor/rails/activerecord/test/cases/associations/eager_load_nested_include_test.rb +130 -0
  955. data/src/admin_panel/vendor/rails/activerecord/test/cases/associations/eager_singularization_test.rb +145 -0
  956. data/src/admin_panel/vendor/rails/activerecord/test/cases/associations/eager_test.rb +822 -0
  957. data/src/admin_panel/vendor/rails/activerecord/test/cases/associations/extension_test.rb +62 -0
  958. data/src/admin_panel/vendor/rails/activerecord/test/cases/associations/has_and_belongs_to_many_associations_test.rb +822 -0
  959. data/src/admin_panel/vendor/rails/activerecord/test/cases/associations/has_many_associations_test.rb +1062 -0
  960. data/src/admin_panel/vendor/rails/activerecord/test/cases/associations/has_many_through_associations_test.rb +279 -0
  961. data/src/admin_panel/vendor/rails/activerecord/test/cases/associations/has_one_associations_test.rb +309 -0
  962. data/src/admin_panel/vendor/rails/activerecord/test/cases/associations/has_one_through_associations_test.rb +192 -0
  963. data/src/admin_panel/vendor/rails/activerecord/test/cases/associations/inner_join_association_test.rb +88 -0
  964. data/src/admin_panel/vendor/rails/activerecord/test/cases/associations/join_model_test.rb +712 -0
  965. data/src/admin_panel/vendor/rails/activerecord/test/cases/associations_test.rb +262 -0
  966. data/src/admin_panel/vendor/rails/activerecord/test/cases/attribute_methods_test.rb +305 -0
  967. data/src/admin_panel/vendor/rails/activerecord/test/cases/autosave_association_test.rb +901 -0
  968. data/src/admin_panel/vendor/rails/activerecord/test/cases/base_test.rb +2107 -0
  969. data/src/admin_panel/vendor/rails/activerecord/test/cases/batches_test.rb +61 -0
  970. data/src/admin_panel/vendor/rails/activerecord/test/cases/binary_test.rb +30 -0
  971. data/src/admin_panel/vendor/rails/activerecord/test/cases/calculations_test.rb +348 -0
  972. data/src/admin_panel/vendor/rails/activerecord/test/cases/callbacks_observers_test.rb +38 -0
  973. data/src/admin_panel/vendor/rails/activerecord/test/cases/callbacks_test.rb +438 -0
  974. data/src/admin_panel/vendor/rails/activerecord/test/cases/class_inheritable_attributes_test.rb +32 -0
  975. data/src/admin_panel/vendor/rails/activerecord/test/cases/column_alias_test.rb +17 -0
  976. data/src/admin_panel/vendor/rails/activerecord/test/cases/column_definition_test.rb +36 -0
  977. data/src/admin_panel/vendor/rails/activerecord/test/cases/connection_pool_test.rb +25 -0
  978. data/src/admin_panel/vendor/rails/activerecord/test/cases/connection_test_firebird.rb +8 -0
  979. data/src/admin_panel/vendor/rails/activerecord/test/cases/connection_test_mysql.rb +56 -0
  980. data/src/admin_panel/vendor/rails/activerecord/test/cases/copy_table_test_sqlite.rb +80 -0
  981. data/src/admin_panel/vendor/rails/activerecord/test/cases/database_statements_test.rb +12 -0
  982. data/src/admin_panel/vendor/rails/activerecord/test/cases/datatype_test_postgresql.rb +204 -0
  983. data/src/admin_panel/vendor/rails/activerecord/test/cases/date_time_test.rb +37 -0
  984. data/src/admin_panel/vendor/rails/activerecord/test/cases/default_test_firebird.rb +16 -0
  985. data/src/admin_panel/vendor/rails/activerecord/test/cases/defaults_test.rb +111 -0
  986. data/src/admin_panel/vendor/rails/activerecord/test/cases/deprecated_finder_test.rb +30 -0
  987. data/src/admin_panel/vendor/rails/activerecord/test/cases/dirty_test.rb +306 -0
  988. data/src/admin_panel/vendor/rails/activerecord/test/cases/finder_respond_to_test.rb +76 -0
  989. data/src/admin_panel/vendor/rails/activerecord/test/cases/finder_test.rb +1083 -0
  990. data/src/admin_panel/vendor/rails/activerecord/test/cases/fixtures_test.rb +651 -0
  991. data/src/admin_panel/vendor/rails/activerecord/test/cases/helper.rb +69 -0
  992. data/src/admin_panel/vendor/rails/activerecord/test/cases/i18n_test.rb +41 -0
  993. data/src/admin_panel/vendor/rails/activerecord/test/cases/inheritance_test.rb +262 -0
  994. data/src/admin_panel/vendor/rails/activerecord/test/cases/invalid_date_test.rb +24 -0
  995. data/src/admin_panel/vendor/rails/activerecord/test/cases/json_serialization_test.rb +205 -0
  996. data/src/admin_panel/vendor/rails/activerecord/test/cases/lifecycle_test.rb +193 -0
  997. data/src/admin_panel/vendor/rails/activerecord/test/cases/locking_test.rb +322 -0
  998. data/src/admin_panel/vendor/rails/activerecord/test/cases/method_scoping_test.rb +694 -0
  999. data/src/admin_panel/vendor/rails/activerecord/test/cases/migration_test.rb +1495 -0
  1000. data/src/admin_panel/vendor/rails/activerecord/test/cases/migration_test_firebird.rb +124 -0
  1001. data/src/admin_panel/vendor/rails/activerecord/test/cases/mixin_test.rb +96 -0
  1002. data/src/admin_panel/vendor/rails/activerecord/test/cases/modules_test.rb +39 -0
  1003. data/src/admin_panel/vendor/rails/activerecord/test/cases/multiple_db_test.rb +85 -0
  1004. data/src/admin_panel/vendor/rails/activerecord/test/cases/named_scope_test.rb +359 -0
  1005. data/src/admin_panel/vendor/rails/activerecord/test/cases/nested_attributes_test.rb +509 -0
  1006. data/src/admin_panel/vendor/rails/activerecord/test/cases/pk_test.rb +101 -0
  1007. data/src/admin_panel/vendor/rails/activerecord/test/cases/pooled_connections_test.rb +103 -0
  1008. data/src/admin_panel/vendor/rails/activerecord/test/cases/query_cache_test.rb +123 -0
  1009. data/src/admin_panel/vendor/rails/activerecord/test/cases/readonly_test.rb +107 -0
  1010. data/src/admin_panel/vendor/rails/activerecord/test/cases/reflection_test.rb +194 -0
  1011. data/src/admin_panel/vendor/rails/activerecord/test/cases/reload_models_test.rb +22 -0
  1012. data/src/admin_panel/vendor/rails/activerecord/test/cases/repair_helper.rb +50 -0
  1013. data/src/admin_panel/vendor/rails/activerecord/test/cases/reserved_word_test_mysql.rb +176 -0
  1014. data/src/admin_panel/vendor/rails/activerecord/test/cases/sanitize_test.rb +25 -0
  1015. data/src/admin_panel/vendor/rails/activerecord/test/cases/schema_authorization_test_postgresql.rb +75 -0
  1016. data/src/admin_panel/vendor/rails/activerecord/test/cases/schema_dumper_test.rb +183 -0
  1017. data/src/admin_panel/vendor/rails/activerecord/test/cases/schema_test_postgresql.rb +102 -0
  1018. data/src/admin_panel/vendor/rails/activerecord/test/cases/serialization_test.rb +47 -0
  1019. data/src/admin_panel/vendor/rails/activerecord/test/cases/synonym_test_oracle.rb +17 -0
  1020. data/src/admin_panel/vendor/rails/activerecord/test/cases/transactions_test.rb +522 -0
  1021. data/src/admin_panel/vendor/rails/activerecord/test/cases/unconnected_test.rb +32 -0
  1022. data/src/admin_panel/vendor/rails/activerecord/test/cases/validations_i18n_test.rb +915 -0
  1023. data/src/admin_panel/vendor/rails/activerecord/test/cases/validations_test.rb +1602 -0
  1024. data/src/admin_panel/vendor/rails/activerecord/test/cases/xml_serialization_test.rb +220 -0
  1025. data/src/admin_panel/vendor/rails/activerecord/test/config.rb +5 -0
  1026. data/src/admin_panel/vendor/rails/activerecord/test/connections/jdbc_jdbcderby/connection.rb +18 -0
  1027. data/src/admin_panel/vendor/rails/activerecord/test/connections/jdbc_jdbch2/connection.rb +18 -0
  1028. data/src/admin_panel/vendor/rails/activerecord/test/connections/jdbc_jdbchsqldb/connection.rb +18 -0
  1029. data/src/admin_panel/vendor/rails/activerecord/test/connections/jdbc_jdbcmysql/connection.rb +26 -0
  1030. data/src/admin_panel/vendor/rails/activerecord/test/connections/jdbc_jdbcpostgresql/connection.rb +26 -0
  1031. data/src/admin_panel/vendor/rails/activerecord/test/connections/jdbc_jdbcsqlite3/connection.rb +25 -0
  1032. data/src/admin_panel/vendor/rails/activerecord/test/connections/native_db2/connection.rb +25 -0
  1033. data/src/admin_panel/vendor/rails/activerecord/test/connections/native_firebird/connection.rb +26 -0
  1034. data/src/admin_panel/vendor/rails/activerecord/test/connections/native_frontbase/connection.rb +27 -0
  1035. data/src/admin_panel/vendor/rails/activerecord/test/connections/native_mysql/connection.rb +25 -0
  1036. data/src/admin_panel/vendor/rails/activerecord/test/connections/native_openbase/connection.rb +21 -0
  1037. data/src/admin_panel/vendor/rails/activerecord/test/connections/native_oracle/connection.rb +27 -0
  1038. data/src/admin_panel/vendor/rails/activerecord/test/connections/native_postgresql/connection.rb +21 -0
  1039. data/src/admin_panel/vendor/rails/activerecord/test/connections/native_sqlite/connection.rb +25 -0
  1040. data/src/admin_panel/vendor/rails/activerecord/test/connections/native_sqlite3/connection.rb +25 -0
  1041. data/src/admin_panel/vendor/rails/activerecord/test/connections/native_sqlite3/in_memory_connection.rb +18 -0
  1042. data/src/admin_panel/vendor/rails/activerecord/test/connections/native_sybase/connection.rb +23 -0
  1043. data/src/admin_panel/vendor/rails/activerecord/test/fixtures/accounts.yml +28 -0
  1044. data/src/admin_panel/vendor/rails/activerecord/test/fixtures/all/developers.yml +0 -0
  1045. data/src/admin_panel/vendor/rails/activerecord/test/fixtures/all/people.csv +0 -0
  1046. data/src/admin_panel/vendor/rails/activerecord/test/fixtures/all/tasks.yml +0 -0
  1047. data/src/admin_panel/vendor/rails/activerecord/test/fixtures/author_addresses.yml +5 -0
  1048. data/src/admin_panel/vendor/rails/activerecord/test/fixtures/author_favorites.yml +4 -0
  1049. data/src/admin_panel/vendor/rails/activerecord/test/fixtures/authors.yml +9 -0
  1050. data/src/admin_panel/vendor/rails/activerecord/test/fixtures/binaries.yml +132 -0
  1051. data/src/admin_panel/vendor/rails/activerecord/test/fixtures/books.yml +7 -0
  1052. data/src/admin_panel/vendor/rails/activerecord/test/fixtures/categories/special_categories.yml +9 -0
  1053. data/src/admin_panel/vendor/rails/activerecord/test/fixtures/categories/subsubdir/arbitrary_filename.yml +4 -0
  1054. data/src/admin_panel/vendor/rails/activerecord/test/fixtures/categories.yml +14 -0
  1055. data/src/admin_panel/vendor/rails/activerecord/test/fixtures/categories_ordered.yml +7 -0
  1056. data/src/admin_panel/vendor/rails/activerecord/test/fixtures/categories_posts.yml +23 -0
  1057. data/src/admin_panel/vendor/rails/activerecord/test/fixtures/categorizations.yml +17 -0
  1058. data/src/admin_panel/vendor/rails/activerecord/test/fixtures/clubs.yml +6 -0
  1059. data/src/admin_panel/vendor/rails/activerecord/test/fixtures/comments.yml +59 -0
  1060. data/src/admin_panel/vendor/rails/activerecord/test/fixtures/companies.yml +56 -0
  1061. data/src/admin_panel/vendor/rails/activerecord/test/fixtures/computers.yml +4 -0
  1062. data/src/admin_panel/vendor/rails/activerecord/test/fixtures/courses.yml +7 -0
  1063. data/src/admin_panel/vendor/rails/activerecord/test/fixtures/customers.yml +26 -0
  1064. data/src/admin_panel/vendor/rails/activerecord/test/fixtures/developers.yml +21 -0
  1065. data/src/admin_panel/vendor/rails/activerecord/test/fixtures/developers_projects.yml +17 -0
  1066. data/src/admin_panel/vendor/rails/activerecord/test/fixtures/edges.yml +6 -0
  1067. data/src/admin_panel/vendor/rails/activerecord/test/fixtures/entrants.yml +14 -0
  1068. data/src/admin_panel/vendor/rails/activerecord/test/fixtures/fixture_database.sqlite3 +0 -0
  1069. data/src/admin_panel/vendor/rails/activerecord/test/fixtures/fixture_database_2.sqlite3 +0 -0
  1070. data/src/admin_panel/vendor/rails/activerecord/test/fixtures/fk_test_has_fk.yml +3 -0
  1071. data/src/admin_panel/vendor/rails/activerecord/test/fixtures/fk_test_has_pk.yml +2 -0
  1072. data/src/admin_panel/vendor/rails/activerecord/test/fixtures/funny_jokes.yml +10 -0
  1073. data/src/admin_panel/vendor/rails/activerecord/test/fixtures/items.yml +4 -0
  1074. data/src/admin_panel/vendor/rails/activerecord/test/fixtures/jobs.yml +7 -0
  1075. data/src/admin_panel/vendor/rails/activerecord/test/fixtures/legacy_things.yml +3 -0
  1076. data/src/admin_panel/vendor/rails/activerecord/test/fixtures/mateys.yml +4 -0
  1077. data/src/admin_panel/vendor/rails/activerecord/test/fixtures/member_types.yml +6 -0
  1078. data/src/admin_panel/vendor/rails/activerecord/test/fixtures/members.yml +6 -0
  1079. data/src/admin_panel/vendor/rails/activerecord/test/fixtures/memberships.yml +20 -0
  1080. data/src/admin_panel/vendor/rails/activerecord/test/fixtures/minimalistics.yml +2 -0
  1081. data/src/admin_panel/vendor/rails/activerecord/test/fixtures/mixed_case_monkeys.yml +6 -0
  1082. data/src/admin_panel/vendor/rails/activerecord/test/fixtures/mixins.yml +29 -0
  1083. data/src/admin_panel/vendor/rails/activerecord/test/fixtures/movies.yml +7 -0
  1084. data/src/admin_panel/vendor/rails/activerecord/test/fixtures/naked/csv/accounts.csv +1 -0
  1085. data/src/admin_panel/vendor/rails/activerecord/test/fixtures/naked/yml/accounts.yml +1 -0
  1086. data/src/admin_panel/vendor/rails/activerecord/test/fixtures/naked/yml/companies.yml +1 -0
  1087. data/src/admin_panel/vendor/rails/activerecord/test/fixtures/naked/yml/courses.yml +1 -0
  1088. data/src/admin_panel/vendor/rails/activerecord/test/fixtures/organizations.yml +5 -0
  1089. data/src/admin_panel/vendor/rails/activerecord/test/fixtures/owners.yml +7 -0
  1090. data/src/admin_panel/vendor/rails/activerecord/test/fixtures/parrots.yml +27 -0
  1091. data/src/admin_panel/vendor/rails/activerecord/test/fixtures/parrots_pirates.yml +7 -0
  1092. data/src/admin_panel/vendor/rails/activerecord/test/fixtures/people.yml +15 -0
  1093. data/src/admin_panel/vendor/rails/activerecord/test/fixtures/pets.yml +14 -0
  1094. data/src/admin_panel/vendor/rails/activerecord/test/fixtures/pirates.yml +9 -0
  1095. data/src/admin_panel/vendor/rails/activerecord/test/fixtures/posts.yml +49 -0
  1096. data/src/admin_panel/vendor/rails/activerecord/test/fixtures/price_estimates.yml +7 -0
  1097. data/src/admin_panel/vendor/rails/activerecord/test/fixtures/projects.yml +7 -0
  1098. data/src/admin_panel/vendor/rails/activerecord/test/fixtures/readers.yml +9 -0
  1099. data/src/admin_panel/vendor/rails/activerecord/test/fixtures/references.yml +17 -0
  1100. data/src/admin_panel/vendor/rails/activerecord/test/fixtures/reserved_words/distinct.yml +5 -0
  1101. data/src/admin_panel/vendor/rails/activerecord/test/fixtures/reserved_words/distincts_selects.yml +11 -0
  1102. data/src/admin_panel/vendor/rails/activerecord/test/fixtures/reserved_words/group.yml +14 -0
  1103. data/src/admin_panel/vendor/rails/activerecord/test/fixtures/reserved_words/select.yml +8 -0
  1104. data/src/admin_panel/vendor/rails/activerecord/test/fixtures/reserved_words/values.yml +7 -0
  1105. data/src/admin_panel/vendor/rails/activerecord/test/fixtures/ships.yml +5 -0
  1106. data/src/admin_panel/vendor/rails/activerecord/test/fixtures/sponsors.yml +9 -0
  1107. data/src/admin_panel/vendor/rails/activerecord/test/fixtures/subscribers.yml +7 -0
  1108. data/src/admin_panel/vendor/rails/activerecord/test/fixtures/subscriptions.yml +12 -0
  1109. data/src/admin_panel/vendor/rails/activerecord/test/fixtures/taggings.yml +28 -0
  1110. data/src/admin_panel/vendor/rails/activerecord/test/fixtures/tags.yml +7 -0
  1111. data/src/admin_panel/vendor/rails/activerecord/test/fixtures/tasks.yml +7 -0
  1112. data/src/admin_panel/vendor/rails/activerecord/test/fixtures/topics.yml +42 -0
  1113. data/src/admin_panel/vendor/rails/activerecord/test/fixtures/toys.yml +4 -0
  1114. data/src/admin_panel/vendor/rails/activerecord/test/fixtures/treasures.yml +10 -0
  1115. data/src/admin_panel/vendor/rails/activerecord/test/fixtures/vertices.yml +4 -0
  1116. data/src/admin_panel/vendor/rails/activerecord/test/fixtures/warehouse-things.yml +3 -0
  1117. data/src/admin_panel/vendor/rails/activerecord/test/migrations/broken/100_migration_that_raises_exception.rb +10 -0
  1118. data/src/admin_panel/vendor/rails/activerecord/test/migrations/decimal/1_give_me_big_numbers.rb +15 -0
  1119. data/src/admin_panel/vendor/rails/activerecord/test/migrations/duplicate/1_people_have_last_names.rb +9 -0
  1120. data/src/admin_panel/vendor/rails/activerecord/test/migrations/duplicate/2_we_need_reminders.rb +12 -0
  1121. data/src/admin_panel/vendor/rails/activerecord/test/migrations/duplicate/3_foo.rb +7 -0
  1122. data/src/admin_panel/vendor/rails/activerecord/test/migrations/duplicate/3_innocent_jointable.rb +12 -0
  1123. data/src/admin_panel/vendor/rails/activerecord/test/migrations/duplicate_names/20080507052938_chunky.rb +7 -0
  1124. data/src/admin_panel/vendor/rails/activerecord/test/migrations/duplicate_names/20080507053028_chunky.rb +7 -0
  1125. data/src/admin_panel/vendor/rails/activerecord/test/migrations/interleaved/pass_1/3_innocent_jointable.rb +12 -0
  1126. data/src/admin_panel/vendor/rails/activerecord/test/migrations/interleaved/pass_2/1_people_have_last_names.rb +9 -0
  1127. data/src/admin_panel/vendor/rails/activerecord/test/migrations/interleaved/pass_2/3_innocent_jointable.rb +12 -0
  1128. data/src/admin_panel/vendor/rails/activerecord/test/migrations/interleaved/pass_3/1_people_have_last_names.rb +9 -0
  1129. data/src/admin_panel/vendor/rails/activerecord/test/migrations/interleaved/pass_3/2_i_raise_on_down.rb +8 -0
  1130. data/src/admin_panel/vendor/rails/activerecord/test/migrations/interleaved/pass_3/3_innocent_jointable.rb +12 -0
  1131. data/src/admin_panel/vendor/rails/activerecord/test/migrations/missing/1000_people_have_middle_names.rb +9 -0
  1132. data/src/admin_panel/vendor/rails/activerecord/test/migrations/missing/1_people_have_last_names.rb +9 -0
  1133. data/src/admin_panel/vendor/rails/activerecord/test/migrations/missing/3_we_need_reminders.rb +12 -0
  1134. data/src/admin_panel/vendor/rails/activerecord/test/migrations/missing/4_innocent_jointable.rb +12 -0
  1135. data/src/admin_panel/vendor/rails/activerecord/test/migrations/valid/1_people_have_last_names.rb +9 -0
  1136. data/src/admin_panel/vendor/rails/activerecord/test/migrations/valid/2_we_need_reminders.rb +12 -0
  1137. data/src/admin_panel/vendor/rails/activerecord/test/migrations/valid/3_innocent_jointable.rb +12 -0
  1138. data/src/admin_panel/vendor/rails/activerecord/test/models/author.rb +141 -0
  1139. data/src/admin_panel/vendor/rails/activerecord/test/models/auto_id.rb +4 -0
  1140. data/src/admin_panel/vendor/rails/activerecord/test/models/binary.rb +2 -0
  1141. data/src/admin_panel/vendor/rails/activerecord/test/models/bird.rb +3 -0
  1142. data/src/admin_panel/vendor/rails/activerecord/test/models/book.rb +4 -0
  1143. data/src/admin_panel/vendor/rails/activerecord/test/models/categorization.rb +5 -0
  1144. data/src/admin_panel/vendor/rails/activerecord/test/models/category.rb +34 -0
  1145. data/src/admin_panel/vendor/rails/activerecord/test/models/citation.rb +6 -0
  1146. data/src/admin_panel/vendor/rails/activerecord/test/models/club.rb +13 -0
  1147. data/src/admin_panel/vendor/rails/activerecord/test/models/column_name.rb +3 -0
  1148. data/src/admin_panel/vendor/rails/activerecord/test/models/comment.rb +25 -0
  1149. data/src/admin_panel/vendor/rails/activerecord/test/models/company.rb +159 -0
  1150. data/src/admin_panel/vendor/rails/activerecord/test/models/company_in_module.rb +61 -0
  1151. data/src/admin_panel/vendor/rails/activerecord/test/models/computer.rb +3 -0
  1152. data/src/admin_panel/vendor/rails/activerecord/test/models/contact.rb +16 -0
  1153. data/src/admin_panel/vendor/rails/activerecord/test/models/course.rb +3 -0
  1154. data/src/admin_panel/vendor/rails/activerecord/test/models/customer.rb +73 -0
  1155. data/src/admin_panel/vendor/rails/activerecord/test/models/default.rb +2 -0
  1156. data/src/admin_panel/vendor/rails/activerecord/test/models/developer.rb +91 -0
  1157. data/src/admin_panel/vendor/rails/activerecord/test/models/edge.rb +5 -0
  1158. data/src/admin_panel/vendor/rails/activerecord/test/models/entrant.rb +3 -0
  1159. data/src/admin_panel/vendor/rails/activerecord/test/models/event.rb +3 -0
  1160. data/src/admin_panel/vendor/rails/activerecord/test/models/guid.rb +2 -0
  1161. data/src/admin_panel/vendor/rails/activerecord/test/models/item.rb +7 -0
  1162. data/src/admin_panel/vendor/rails/activerecord/test/models/job.rb +5 -0
  1163. data/src/admin_panel/vendor/rails/activerecord/test/models/joke.rb +3 -0
  1164. data/src/admin_panel/vendor/rails/activerecord/test/models/keyboard.rb +3 -0
  1165. data/src/admin_panel/vendor/rails/activerecord/test/models/legacy_thing.rb +3 -0
  1166. data/src/admin_panel/vendor/rails/activerecord/test/models/matey.rb +4 -0
  1167. data/src/admin_panel/vendor/rails/activerecord/test/models/member.rb +12 -0
  1168. data/src/admin_panel/vendor/rails/activerecord/test/models/member_detail.rb +5 -0
  1169. data/src/admin_panel/vendor/rails/activerecord/test/models/member_type.rb +3 -0
  1170. data/src/admin_panel/vendor/rails/activerecord/test/models/membership.rb +9 -0
  1171. data/src/admin_panel/vendor/rails/activerecord/test/models/minimalistic.rb +2 -0
  1172. data/src/admin_panel/vendor/rails/activerecord/test/models/mixed_case_monkey.rb +3 -0
  1173. data/src/admin_panel/vendor/rails/activerecord/test/models/movie.rb +5 -0
  1174. data/src/admin_panel/vendor/rails/activerecord/test/models/order.rb +4 -0
  1175. data/src/admin_panel/vendor/rails/activerecord/test/models/organization.rb +4 -0
  1176. data/src/admin_panel/vendor/rails/activerecord/test/models/owner.rb +5 -0
  1177. data/src/admin_panel/vendor/rails/activerecord/test/models/parrot.rb +16 -0
  1178. data/src/admin_panel/vendor/rails/activerecord/test/models/person.rb +16 -0
  1179. data/src/admin_panel/vendor/rails/activerecord/test/models/pet.rb +5 -0
  1180. data/src/admin_panel/vendor/rails/activerecord/test/models/pirate.rb +63 -0
  1181. data/src/admin_panel/vendor/rails/activerecord/test/models/post.rb +100 -0
  1182. data/src/admin_panel/vendor/rails/activerecord/test/models/price_estimate.rb +3 -0
  1183. data/src/admin_panel/vendor/rails/activerecord/test/models/project.rb +30 -0
  1184. data/src/admin_panel/vendor/rails/activerecord/test/models/reader.rb +4 -0
  1185. data/src/admin_panel/vendor/rails/activerecord/test/models/reference.rb +4 -0
  1186. data/src/admin_panel/vendor/rails/activerecord/test/models/reply.rb +45 -0
  1187. data/src/admin_panel/vendor/rails/activerecord/test/models/ship.rb +10 -0
  1188. data/src/admin_panel/vendor/rails/activerecord/test/models/ship_part.rb +5 -0
  1189. data/src/admin_panel/vendor/rails/activerecord/test/models/sponsor.rb +4 -0
  1190. data/src/admin_panel/vendor/rails/activerecord/test/models/subject.rb +4 -0
  1191. data/src/admin_panel/vendor/rails/activerecord/test/models/subscriber.rb +8 -0
  1192. data/src/admin_panel/vendor/rails/activerecord/test/models/subscription.rb +4 -0
  1193. data/src/admin_panel/vendor/rails/activerecord/test/models/tag.rb +7 -0
  1194. data/src/admin_panel/vendor/rails/activerecord/test/models/tagging.rb +10 -0
  1195. data/src/admin_panel/vendor/rails/activerecord/test/models/task.rb +3 -0
  1196. data/src/admin_panel/vendor/rails/activerecord/test/models/topic.rb +81 -0
  1197. data/src/admin_panel/vendor/rails/activerecord/test/models/toy.rb +4 -0
  1198. data/src/admin_panel/vendor/rails/activerecord/test/models/treasure.rb +6 -0
  1199. data/src/admin_panel/vendor/rails/activerecord/test/models/vertex.rb +9 -0
  1200. data/src/admin_panel/vendor/rails/activerecord/test/models/warehouse_thing.rb +5 -0
  1201. data/src/admin_panel/vendor/rails/activerecord/test/schema/mysql_specific_schema.rb +12 -0
  1202. data/src/admin_panel/vendor/rails/activerecord/test/schema/postgresql_specific_schema.rb +103 -0
  1203. data/src/admin_panel/vendor/rails/activerecord/test/schema/schema.rb +473 -0
  1204. data/src/admin_panel/vendor/rails/activerecord/test/schema/schema2.rb +6 -0
  1205. data/src/admin_panel/vendor/rails/activerecord/test/schema/sqlite_specific_schema.rb +25 -0
  1206. data/src/admin_panel/vendor/rails/activeresource/CHANGELOG +267 -0
  1207. data/src/admin_panel/vendor/rails/activeresource/README +165 -0
  1208. data/src/admin_panel/vendor/rails/activeresource/Rakefile +138 -0
  1209. data/src/admin_panel/vendor/rails/activeresource/lib/active_resource/base.rb +1077 -0
  1210. data/src/admin_panel/vendor/rails/activeresource/lib/active_resource/connection.rb +218 -0
  1211. data/src/admin_panel/vendor/rails/activeresource/lib/active_resource/custom_methods.rb +120 -0
  1212. data/src/admin_panel/vendor/rails/activeresource/lib/active_resource/formats/json_format.rb +23 -0
  1213. data/src/admin_panel/vendor/rails/activeresource/lib/active_resource/formats/xml_format.rb +34 -0
  1214. data/src/admin_panel/vendor/rails/activeresource/lib/active_resource/formats.rb +14 -0
  1215. data/src/admin_panel/vendor/rails/activeresource/lib/active_resource/http_mock.rb +207 -0
  1216. data/src/admin_panel/vendor/rails/activeresource/lib/active_resource/validations.rb +274 -0
  1217. data/src/admin_panel/vendor/rails/activeresource/lib/active_resource/version.rb +9 -0
  1218. data/src/admin_panel/vendor/rails/activeresource/lib/active_resource.rb +44 -0
  1219. data/src/admin_panel/vendor/rails/activeresource/lib/activeresource.rb +1 -0
  1220. data/src/admin_panel/vendor/rails/activeresource/test/abstract_unit.rb +23 -0
  1221. data/src/admin_panel/vendor/rails/activeresource/test/authorization_test.rb +122 -0
  1222. data/src/admin_panel/vendor/rails/activeresource/test/base/custom_methods_test.rb +100 -0
  1223. data/src/admin_panel/vendor/rails/activeresource/test/base/equality_test.rb +52 -0
  1224. data/src/admin_panel/vendor/rails/activeresource/test/base/load_test.rb +146 -0
  1225. data/src/admin_panel/vendor/rails/activeresource/test/base_errors_test.rb +48 -0
  1226. data/src/admin_panel/vendor/rails/activeresource/test/base_test.rb +891 -0
  1227. data/src/admin_panel/vendor/rails/activeresource/test/connection_test.rb +196 -0
  1228. data/src/admin_panel/vendor/rails/activeresource/test/fixtures/beast.rb +14 -0
  1229. data/src/admin_panel/vendor/rails/activeresource/test/fixtures/customer.rb +3 -0
  1230. data/src/admin_panel/vendor/rails/activeresource/test/fixtures/person.rb +3 -0
  1231. data/src/admin_panel/vendor/rails/activeresource/test/fixtures/street_address.rb +4 -0
  1232. data/src/admin_panel/vendor/rails/activeresource/test/format_test.rb +112 -0
  1233. data/src/admin_panel/vendor/rails/activeresource/test/setter_trap.rb +26 -0
  1234. data/src/admin_panel/vendor/rails/activesupport/CHANGELOG +1309 -0
  1235. data/src/admin_panel/vendor/rails/activesupport/README +43 -0
  1236. data/src/admin_panel/vendor/rails/activesupport/lib/active_support/backtrace_cleaner.rb +72 -0
  1237. data/src/admin_panel/vendor/rails/activesupport/lib/active_support/base64.rb +33 -0
  1238. data/src/admin_panel/vendor/rails/activesupport/lib/active_support/basic_object.rb +24 -0
  1239. data/src/admin_panel/vendor/rails/activesupport/lib/active_support/buffered_logger.rb +127 -0
  1240. data/src/admin_panel/vendor/rails/activesupport/lib/active_support/cache/compressed_mem_cache_store.rb +20 -0
  1241. data/src/admin_panel/vendor/rails/activesupport/lib/active_support/cache/drb_store.rb +14 -0
  1242. data/src/admin_panel/vendor/rails/activesupport/lib/active_support/cache/file_store.rb +72 -0
  1243. data/src/admin_panel/vendor/rails/activesupport/lib/active_support/cache/mem_cache_store.rb +132 -0
  1244. data/src/admin_panel/vendor/rails/activesupport/lib/active_support/cache/memory_store.rb +52 -0
  1245. data/src/admin_panel/vendor/rails/activesupport/lib/active_support/cache/strategy/local_cache.rb +104 -0
  1246. data/src/admin_panel/vendor/rails/activesupport/lib/active_support/cache/synchronized_memory_store.rb +47 -0
  1247. data/src/admin_panel/vendor/rails/activesupport/lib/active_support/cache.rb +228 -0
  1248. data/src/admin_panel/vendor/rails/activesupport/lib/active_support/callbacks.rb +279 -0
  1249. data/src/admin_panel/vendor/rails/activesupport/lib/active_support/core_ext/array/access.rb +53 -0
  1250. data/src/admin_panel/vendor/rails/activesupport/lib/active_support/core_ext/array/conversions.rb +196 -0
  1251. data/src/admin_panel/vendor/rails/activesupport/lib/active_support/core_ext/array/extract_options.rb +20 -0
  1252. data/src/admin_panel/vendor/rails/activesupport/lib/active_support/core_ext/array/grouping.rb +106 -0
  1253. data/src/admin_panel/vendor/rails/activesupport/lib/active_support/core_ext/array/random_access.rb +12 -0
  1254. data/src/admin_panel/vendor/rails/activesupport/lib/active_support/core_ext/array/wrapper.rb +24 -0
  1255. data/src/admin_panel/vendor/rails/activesupport/lib/active_support/core_ext/array.rb +15 -0
  1256. data/src/admin_panel/vendor/rails/activesupport/lib/active_support/core_ext/base64/encoding.rb +16 -0
  1257. data/src/admin_panel/vendor/rails/activesupport/lib/active_support/core_ext/base64.rb +4 -0
  1258. data/src/admin_panel/vendor/rails/activesupport/lib/active_support/core_ext/benchmark.rb +19 -0
  1259. data/src/admin_panel/vendor/rails/activesupport/lib/active_support/core_ext/bigdecimal/conversions.rb +37 -0
  1260. data/src/admin_panel/vendor/rails/activesupport/lib/active_support/core_ext/bigdecimal.rb +6 -0
  1261. data/src/admin_panel/vendor/rails/activesupport/lib/active_support/core_ext/blank.rb +58 -0
  1262. data/src/admin_panel/vendor/rails/activesupport/lib/active_support/core_ext/cgi/escape_skipping_slashes.rb +23 -0
  1263. data/src/admin_panel/vendor/rails/activesupport/lib/active_support/core_ext/cgi.rb +5 -0
  1264. data/src/admin_panel/vendor/rails/activesupport/lib/active_support/core_ext/class/attribute_accessors.rb +54 -0
  1265. data/src/admin_panel/vendor/rails/activesupport/lib/active_support/core_ext/class/delegating_attributes.rb +47 -0
  1266. data/src/admin_panel/vendor/rails/activesupport/lib/active_support/core_ext/class/inheritable_attributes.rb +140 -0
  1267. data/src/admin_panel/vendor/rails/activesupport/lib/active_support/core_ext/class/removal.rb +50 -0
  1268. data/src/admin_panel/vendor/rails/activesupport/lib/active_support/core_ext/class.rb +4 -0
  1269. data/src/admin_panel/vendor/rails/activesupport/lib/active_support/core_ext/date/behavior.rb +42 -0
  1270. data/src/admin_panel/vendor/rails/activesupport/lib/active_support/core_ext/date/calculations.rb +230 -0
  1271. data/src/admin_panel/vendor/rails/activesupport/lib/active_support/core_ext/date/conversions.rb +107 -0
  1272. data/src/admin_panel/vendor/rails/activesupport/lib/active_support/core_ext/date.rb +10 -0
  1273. data/src/admin_panel/vendor/rails/activesupport/lib/active_support/core_ext/date_time/calculations.rb +126 -0
  1274. data/src/admin_panel/vendor/rails/activesupport/lib/active_support/core_ext/date_time/conversions.rb +96 -0
  1275. data/src/admin_panel/vendor/rails/activesupport/lib/active_support/core_ext/date_time.rb +12 -0
  1276. data/src/admin_panel/vendor/rails/activesupport/lib/active_support/core_ext/duplicable.rb +43 -0
  1277. data/src/admin_panel/vendor/rails/activesupport/lib/active_support/core_ext/enumerable.rb +116 -0
  1278. data/src/admin_panel/vendor/rails/activesupport/lib/active_support/core_ext/exception.rb +45 -0
  1279. data/src/admin_panel/vendor/rails/activesupport/lib/active_support/core_ext/file/atomic.rb +46 -0
  1280. data/src/admin_panel/vendor/rails/activesupport/lib/active_support/core_ext/file.rb +5 -0
  1281. data/src/admin_panel/vendor/rails/activesupport/lib/active_support/core_ext/float/rounding.rb +24 -0
  1282. data/src/admin_panel/vendor/rails/activesupport/lib/active_support/core_ext/float/time.rb +27 -0
  1283. data/src/admin_panel/vendor/rails/activesupport/lib/active_support/core_ext/float.rb +7 -0
  1284. data/src/admin_panel/vendor/rails/activesupport/lib/active_support/core_ext/hash/conversions.rb +237 -0
  1285. data/src/admin_panel/vendor/rails/activesupport/lib/active_support/core_ext/hash/deep_merge.rb +23 -0
  1286. data/src/admin_panel/vendor/rails/activesupport/lib/active_support/core_ext/hash/diff.rb +19 -0
  1287. data/src/admin_panel/vendor/rails/activesupport/lib/active_support/core_ext/hash/except.rb +25 -0
  1288. data/src/admin_panel/vendor/rails/activesupport/lib/active_support/core_ext/hash/indifferent_access.rb +143 -0
  1289. data/src/admin_panel/vendor/rails/activesupport/lib/active_support/core_ext/hash/keys.rb +52 -0
  1290. data/src/admin_panel/vendor/rails/activesupport/lib/active_support/core_ext/hash/reverse_merge.rb +35 -0
  1291. data/src/admin_panel/vendor/rails/activesupport/lib/active_support/core_ext/hash/slice.rb +40 -0
  1292. data/src/admin_panel/vendor/rails/activesupport/lib/active_support/core_ext/hash.rb +14 -0
  1293. data/src/admin_panel/vendor/rails/activesupport/lib/active_support/core_ext/integer/even_odd.rb +29 -0
  1294. data/src/admin_panel/vendor/rails/activesupport/lib/active_support/core_ext/integer/inflections.rb +20 -0
  1295. data/src/admin_panel/vendor/rails/activesupport/lib/active_support/core_ext/integer/time.rb +45 -0
  1296. data/src/admin_panel/vendor/rails/activesupport/lib/active_support/core_ext/integer.rb +9 -0
  1297. data/src/admin_panel/vendor/rails/activesupport/lib/active_support/core_ext/kernel/agnostics.rb +11 -0
  1298. data/src/admin_panel/vendor/rails/activesupport/lib/active_support/core_ext/kernel/daemonizing.rb +7 -0
  1299. data/src/admin_panel/vendor/rails/activesupport/lib/active_support/core_ext/kernel/debugger.rb +13 -0
  1300. data/src/admin_panel/vendor/rails/activesupport/lib/active_support/core_ext/kernel/reporting.rb +59 -0
  1301. data/src/admin_panel/vendor/rails/activesupport/lib/active_support/core_ext/kernel/requires.rb +24 -0
  1302. data/src/admin_panel/vendor/rails/activesupport/lib/active_support/core_ext/kernel.rb +5 -0
  1303. data/src/admin_panel/vendor/rails/activesupport/lib/active_support/core_ext/load_error.rb +38 -0
  1304. data/src/admin_panel/vendor/rails/activesupport/lib/active_support/core_ext/logger.rb +145 -0
  1305. data/src/admin_panel/vendor/rails/activesupport/lib/active_support/core_ext/module/aliasing.rb +74 -0
  1306. data/src/admin_panel/vendor/rails/activesupport/lib/active_support/core_ext/module/attr_accessor_with_default.rb +31 -0
  1307. data/src/admin_panel/vendor/rails/activesupport/lib/active_support/core_ext/module/attr_internal.rb +32 -0
  1308. data/src/admin_panel/vendor/rails/activesupport/lib/active_support/core_ext/module/attribute_accessors.rb +58 -0
  1309. data/src/admin_panel/vendor/rails/activesupport/lib/active_support/core_ext/module/delegation.rb +121 -0
  1310. data/src/admin_panel/vendor/rails/activesupport/lib/active_support/core_ext/module/inclusion.rb +30 -0
  1311. data/src/admin_panel/vendor/rails/activesupport/lib/active_support/core_ext/module/introspection.rb +90 -0
  1312. data/src/admin_panel/vendor/rails/activesupport/lib/active_support/core_ext/module/loading.rb +23 -0
  1313. data/src/admin_panel/vendor/rails/activesupport/lib/active_support/core_ext/module/model_naming.rb +23 -0
  1314. data/src/admin_panel/vendor/rails/activesupport/lib/active_support/core_ext/module/synchronization.rb +39 -0
  1315. data/src/admin_panel/vendor/rails/activesupport/lib/active_support/core_ext/module.rb +23 -0
  1316. data/src/admin_panel/vendor/rails/activesupport/lib/active_support/core_ext/name_error.rb +17 -0
  1317. data/src/admin_panel/vendor/rails/activesupport/lib/active_support/core_ext/numeric/bytes.rb +44 -0
  1318. data/src/admin_panel/vendor/rails/activesupport/lib/active_support/core_ext/numeric/conversions.rb +19 -0
  1319. data/src/admin_panel/vendor/rails/activesupport/lib/active_support/core_ext/numeric/time.rb +81 -0
  1320. data/src/admin_panel/vendor/rails/activesupport/lib/active_support/core_ext/numeric.rb +9 -0
  1321. data/src/admin_panel/vendor/rails/activesupport/lib/active_support/core_ext/object/conversions.rb +15 -0
  1322. data/src/admin_panel/vendor/rails/activesupport/lib/active_support/core_ext/object/extending.rb +80 -0
  1323. data/src/admin_panel/vendor/rails/activesupport/lib/active_support/core_ext/object/instance_variables.rb +74 -0
  1324. data/src/admin_panel/vendor/rails/activesupport/lib/active_support/core_ext/object/metaclass.rb +13 -0
  1325. data/src/admin_panel/vendor/rails/activesupport/lib/active_support/core_ext/object/misc.rb +90 -0
  1326. data/src/admin_panel/vendor/rails/activesupport/lib/active_support/core_ext/object.rb +5 -0
  1327. data/src/admin_panel/vendor/rails/activesupport/lib/active_support/core_ext/pathname/clean_within.rb +14 -0
  1328. data/src/admin_panel/vendor/rails/activesupport/lib/active_support/core_ext/pathname.rb +7 -0
  1329. data/src/admin_panel/vendor/rails/activesupport/lib/active_support/core_ext/proc.rb +12 -0
  1330. data/src/admin_panel/vendor/rails/activesupport/lib/active_support/core_ext/process/daemon.rb +25 -0
  1331. data/src/admin_panel/vendor/rails/activesupport/lib/active_support/core_ext/process.rb +1 -0
  1332. data/src/admin_panel/vendor/rails/activesupport/lib/active_support/core_ext/range/blockless_step.rb +32 -0
  1333. data/src/admin_panel/vendor/rails/activesupport/lib/active_support/core_ext/range/conversions.rb +27 -0
  1334. data/src/admin_panel/vendor/rails/activesupport/lib/active_support/core_ext/range/include_range.rb +30 -0
  1335. data/src/admin_panel/vendor/rails/activesupport/lib/active_support/core_ext/range/overlaps.rb +15 -0
  1336. data/src/admin_panel/vendor/rails/activesupport/lib/active_support/core_ext/range.rb +11 -0
  1337. data/src/admin_panel/vendor/rails/activesupport/lib/active_support/core_ext/rexml.rb +41 -0
  1338. data/src/admin_panel/vendor/rails/activesupport/lib/active_support/core_ext/string/access.rb +82 -0
  1339. data/src/admin_panel/vendor/rails/activesupport/lib/active_support/core_ext/string/behavior.rb +13 -0
  1340. data/src/admin_panel/vendor/rails/activesupport/lib/active_support/core_ext/string/conversions.rb +28 -0
  1341. data/src/admin_panel/vendor/rails/activesupport/lib/active_support/core_ext/string/filters.rb +26 -0
  1342. data/src/admin_panel/vendor/rails/activesupport/lib/active_support/core_ext/string/inflections.rb +167 -0
  1343. data/src/admin_panel/vendor/rails/activesupport/lib/active_support/core_ext/string/iterators.rb +23 -0
  1344. data/src/admin_panel/vendor/rails/activesupport/lib/active_support/core_ext/string/multibyte.rb +81 -0
  1345. data/src/admin_panel/vendor/rails/activesupport/lib/active_support/core_ext/string/starts_ends_with.rb +35 -0
  1346. data/src/admin_panel/vendor/rails/activesupport/lib/active_support/core_ext/string/xchar.rb +11 -0
  1347. data/src/admin_panel/vendor/rails/activesupport/lib/active_support/core_ext/string.rb +22 -0
  1348. data/src/admin_panel/vendor/rails/activesupport/lib/active_support/core_ext/symbol.rb +14 -0
  1349. data/src/admin_panel/vendor/rails/activesupport/lib/active_support/core_ext/time/behavior.rb +13 -0
  1350. data/src/admin_panel/vendor/rails/activesupport/lib/active_support/core_ext/time/calculations.rb +303 -0
  1351. data/src/admin_panel/vendor/rails/activesupport/lib/active_support/core_ext/time/conversions.rb +90 -0
  1352. data/src/admin_panel/vendor/rails/activesupport/lib/active_support/core_ext/time/zones.rb +86 -0
  1353. data/src/admin_panel/vendor/rails/activesupport/lib/active_support/core_ext/time.rb +42 -0
  1354. data/src/admin_panel/vendor/rails/activesupport/lib/active_support/core_ext/try.rb +36 -0
  1355. data/src/admin_panel/vendor/rails/activesupport/lib/active_support/core_ext/uri.rb +16 -0
  1356. data/src/admin_panel/vendor/rails/activesupport/lib/active_support/core_ext.rb +4 -0
  1357. data/src/admin_panel/vendor/rails/activesupport/lib/active_support/dependencies.rb +625 -0
  1358. data/src/admin_panel/vendor/rails/activesupport/lib/active_support/deprecation.rb +196 -0
  1359. data/src/admin_panel/vendor/rails/activesupport/lib/active_support/duration.rb +98 -0
  1360. data/src/admin_panel/vendor/rails/activesupport/lib/active_support/gzip.rb +25 -0
  1361. data/src/admin_panel/vendor/rails/activesupport/lib/active_support/inflections.rb +56 -0
  1362. data/src/admin_panel/vendor/rails/activesupport/lib/active_support/inflector.rb +406 -0
  1363. data/src/admin_panel/vendor/rails/activesupport/lib/active_support/json/decoding.rb +82 -0
  1364. data/src/admin_panel/vendor/rails/activesupport/lib/active_support/json/encoders/date.rb +21 -0
  1365. data/src/admin_panel/vendor/rails/activesupport/lib/active_support/json/encoders/date_time.rb +21 -0
  1366. data/src/admin_panel/vendor/rails/activesupport/lib/active_support/json/encoders/enumerable.rb +12 -0
  1367. data/src/admin_panel/vendor/rails/activesupport/lib/active_support/json/encoders/false_class.rb +5 -0
  1368. data/src/admin_panel/vendor/rails/activesupport/lib/active_support/json/encoders/hash.rb +46 -0
  1369. data/src/admin_panel/vendor/rails/activesupport/lib/active_support/json/encoders/nil_class.rb +5 -0
  1370. data/src/admin_panel/vendor/rails/activesupport/lib/active_support/json/encoders/numeric.rb +5 -0
  1371. data/src/admin_panel/vendor/rails/activesupport/lib/active_support/json/encoders/object.rb +6 -0
  1372. data/src/admin_panel/vendor/rails/activesupport/lib/active_support/json/encoders/regexp.rb +5 -0
  1373. data/src/admin_panel/vendor/rails/activesupport/lib/active_support/json/encoders/string.rb +36 -0
  1374. data/src/admin_panel/vendor/rails/activesupport/lib/active_support/json/encoders/symbol.rb +5 -0
  1375. data/src/admin_panel/vendor/rails/activesupport/lib/active_support/json/encoders/time.rb +21 -0
  1376. data/src/admin_panel/vendor/rails/activesupport/lib/active_support/json/encoders/true_class.rb +5 -0
  1377. data/src/admin_panel/vendor/rails/activesupport/lib/active_support/json/encoding.rb +31 -0
  1378. data/src/admin_panel/vendor/rails/activesupport/lib/active_support/json/variable.rb +10 -0
  1379. data/src/admin_panel/vendor/rails/activesupport/lib/active_support/json.rb +23 -0
  1380. data/src/admin_panel/vendor/rails/activesupport/lib/active_support/locale/en.yml +33 -0
  1381. data/src/admin_panel/vendor/rails/activesupport/lib/active_support/memoizable.rb +100 -0
  1382. data/src/admin_panel/vendor/rails/activesupport/lib/active_support/message_encryptor.rb +70 -0
  1383. data/src/admin_panel/vendor/rails/activesupport/lib/active_support/message_verifier.rb +46 -0
  1384. data/src/admin_panel/vendor/rails/activesupport/lib/active_support/multibyte/chars.rb +701 -0
  1385. data/src/admin_panel/vendor/rails/activesupport/lib/active_support/multibyte/exceptions.rb +8 -0
  1386. data/src/admin_panel/vendor/rails/activesupport/lib/active_support/multibyte/unicode_database.rb +71 -0
  1387. data/src/admin_panel/vendor/rails/activesupport/lib/active_support/multibyte.rb +33 -0
  1388. data/src/admin_panel/vendor/rails/activesupport/lib/active_support/option_merger.rb +23 -0
  1389. data/src/admin_panel/vendor/rails/activesupport/lib/active_support/ordered_hash.rb +106 -0
  1390. data/src/admin_panel/vendor/rails/activesupport/lib/active_support/ordered_options.rb +19 -0
  1391. data/src/admin_panel/vendor/rails/activesupport/lib/active_support/rescuable.rb +108 -0
  1392. data/src/admin_panel/vendor/rails/activesupport/lib/active_support/secure_random.rb +199 -0
  1393. data/src/admin_panel/vendor/rails/activesupport/lib/active_support/string_inquirer.rb +21 -0
  1394. data/src/admin_panel/vendor/rails/activesupport/lib/active_support/test_case.rb +39 -0
  1395. data/src/admin_panel/vendor/rails/activesupport/lib/active_support/testing/assertions.rb +65 -0
  1396. data/src/admin_panel/vendor/rails/activesupport/lib/active_support/testing/declarative.rb +21 -0
  1397. data/src/admin_panel/vendor/rails/activesupport/lib/active_support/testing/default.rb +9 -0
  1398. data/src/admin_panel/vendor/rails/activesupport/lib/active_support/testing/deprecation.rb +55 -0
  1399. data/src/admin_panel/vendor/rails/activesupport/lib/active_support/testing/performance.rb +452 -0
  1400. data/src/admin_panel/vendor/rails/activesupport/lib/active_support/testing/setup_and_teardown.rb +91 -0
  1401. data/src/admin_panel/vendor/rails/activesupport/lib/active_support/time_with_zone.rb +334 -0
  1402. data/src/admin_panel/vendor/rails/activesupport/lib/active_support/values/time_zone.rb +404 -0
  1403. data/src/admin_panel/vendor/rails/activesupport/lib/active_support/values/unicode_tables.dat +0 -0
  1404. data/src/admin_panel/vendor/rails/activesupport/lib/active_support/vendor/builder-2.1.2/blankslate.rb +113 -0
  1405. data/src/admin_panel/vendor/rails/activesupport/lib/active_support/vendor/builder-2.1.2/builder/blankslate.rb +20 -0
  1406. data/src/admin_panel/vendor/rails/activesupport/lib/active_support/vendor/builder-2.1.2/builder/css.rb +250 -0
  1407. data/src/admin_panel/vendor/rails/activesupport/lib/active_support/vendor/builder-2.1.2/builder/xchar.rb +115 -0
  1408. data/src/admin_panel/vendor/rails/activesupport/lib/active_support/vendor/builder-2.1.2/builder/xmlbase.rb +139 -0
  1409. data/src/admin_panel/vendor/rails/activesupport/lib/active_support/vendor/builder-2.1.2/builder/xmlevents.rb +63 -0
  1410. data/src/admin_panel/vendor/rails/activesupport/lib/active_support/vendor/builder-2.1.2/builder/xmlmarkup.rb +328 -0
  1411. data/src/admin_panel/vendor/rails/activesupport/lib/active_support/vendor/builder-2.1.2/builder.rb +13 -0
  1412. data/src/admin_panel/vendor/rails/activesupport/lib/active_support/vendor/i18n-0.1.3/MIT-LICENSE +20 -0
  1413. data/src/admin_panel/vendor/rails/activesupport/lib/active_support/vendor/i18n-0.1.3/README.textile +20 -0
  1414. data/src/admin_panel/vendor/rails/activesupport/lib/active_support/vendor/i18n-0.1.3/Rakefile +5 -0
  1415. data/src/admin_panel/vendor/rails/activesupport/lib/active_support/vendor/i18n-0.1.3/i18n.gemspec +27 -0
  1416. data/src/admin_panel/vendor/rails/activesupport/lib/active_support/vendor/i18n-0.1.3/lib/i18n/backend/simple.rb +214 -0
  1417. data/src/admin_panel/vendor/rails/activesupport/lib/active_support/vendor/i18n-0.1.3/lib/i18n/exceptions.rb +53 -0
  1418. data/src/admin_panel/vendor/rails/activesupport/lib/active_support/vendor/i18n-0.1.3/lib/i18n.rb +199 -0
  1419. data/src/admin_panel/vendor/rails/activesupport/lib/active_support/vendor/i18n-0.1.3/test/all.rb +5 -0
  1420. data/src/admin_panel/vendor/rails/activesupport/lib/active_support/vendor/i18n-0.1.3/test/i18n_exceptions_test.rb +100 -0
  1421. data/src/admin_panel/vendor/rails/activesupport/lib/active_support/vendor/i18n-0.1.3/test/i18n_test.rb +125 -0
  1422. data/src/admin_panel/vendor/rails/activesupport/lib/active_support/vendor/i18n-0.1.3/test/locale/en.rb +1 -0
  1423. data/src/admin_panel/vendor/rails/activesupport/lib/active_support/vendor/i18n-0.1.3/test/locale/en.yml +3 -0
  1424. data/src/admin_panel/vendor/rails/activesupport/lib/active_support/vendor/i18n-0.1.3/test/simple_backend_test.rb +568 -0
  1425. data/src/admin_panel/vendor/rails/activesupport/lib/active_support/vendor/memcache-client-1.6.5/memcache.rb +935 -0
  1426. data/src/admin_panel/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/data_timezone.rb +47 -0
  1427. data/src/admin_panel/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/data_timezone_info.rb +228 -0
  1428. data/src/admin_panel/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Africa/Algiers.rb +55 -0
  1429. data/src/admin_panel/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Africa/Cairo.rb +219 -0
  1430. data/src/admin_panel/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Africa/Casablanca.rb +40 -0
  1431. data/src/admin_panel/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Africa/Harare.rb +18 -0
  1432. data/src/admin_panel/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Africa/Johannesburg.rb +25 -0
  1433. data/src/admin_panel/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Africa/Monrovia.rb +22 -0
  1434. data/src/admin_panel/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Africa/Nairobi.rb +23 -0
  1435. data/src/admin_panel/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/America/Argentina/Buenos_Aires.rb +166 -0
  1436. data/src/admin_panel/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/America/Argentina/San_Juan.rb +86 -0
  1437. data/src/admin_panel/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/America/Bogota.rb +23 -0
  1438. data/src/admin_panel/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/America/Caracas.rb +23 -0
  1439. data/src/admin_panel/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/America/Chicago.rb +283 -0
  1440. data/src/admin_panel/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/America/Chihuahua.rb +136 -0
  1441. data/src/admin_panel/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/America/Denver.rb +204 -0
  1442. data/src/admin_panel/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/America/Godthab.rb +161 -0
  1443. data/src/admin_panel/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/America/Guatemala.rb +27 -0
  1444. data/src/admin_panel/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/America/Halifax.rb +274 -0
  1445. data/src/admin_panel/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/America/Indiana/Indianapolis.rb +149 -0
  1446. data/src/admin_panel/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/America/Juneau.rb +194 -0
  1447. data/src/admin_panel/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/America/La_Paz.rb +22 -0
  1448. data/src/admin_panel/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/America/Lima.rb +35 -0
  1449. data/src/admin_panel/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/America/Los_Angeles.rb +232 -0
  1450. data/src/admin_panel/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/America/Mazatlan.rb +139 -0
  1451. data/src/admin_panel/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/America/Mexico_City.rb +144 -0
  1452. data/src/admin_panel/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/America/Monterrey.rb +131 -0
  1453. data/src/admin_panel/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/America/New_York.rb +282 -0
  1454. data/src/admin_panel/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/America/Phoenix.rb +30 -0
  1455. data/src/admin_panel/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/America/Regina.rb +74 -0
  1456. data/src/admin_panel/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/America/Santiago.rb +205 -0
  1457. data/src/admin_panel/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/America/Sao_Paulo.rb +171 -0
  1458. data/src/admin_panel/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/America/St_Johns.rb +288 -0
  1459. data/src/admin_panel/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/America/Tijuana.rb +196 -0
  1460. data/src/admin_panel/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Asia/Almaty.rb +67 -0
  1461. data/src/admin_panel/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Asia/Baghdad.rb +73 -0
  1462. data/src/admin_panel/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Asia/Baku.rb +161 -0
  1463. data/src/admin_panel/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Asia/Bangkok.rb +20 -0
  1464. data/src/admin_panel/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Asia/Chongqing.rb +33 -0
  1465. data/src/admin_panel/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Asia/Colombo.rb +30 -0
  1466. data/src/admin_panel/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Asia/Dhaka.rb +27 -0
  1467. data/src/admin_panel/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Asia/Hong_Kong.rb +87 -0
  1468. data/src/admin_panel/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Asia/Irkutsk.rb +165 -0
  1469. data/src/admin_panel/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Asia/Jakarta.rb +30 -0
  1470. data/src/admin_panel/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Asia/Jerusalem.rb +163 -0
  1471. data/src/admin_panel/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Asia/Kabul.rb +20 -0
  1472. data/src/admin_panel/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Asia/Kamchatka.rb +163 -0
  1473. data/src/admin_panel/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Asia/Karachi.rb +30 -0
  1474. data/src/admin_panel/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Asia/Katmandu.rb +20 -0
  1475. data/src/admin_panel/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Asia/Kolkata.rb +25 -0
  1476. data/src/admin_panel/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Asia/Krasnoyarsk.rb +163 -0
  1477. data/src/admin_panel/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Asia/Kuala_Lumpur.rb +31 -0
  1478. data/src/admin_panel/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Asia/Kuwait.rb +18 -0
  1479. data/src/admin_panel/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Asia/Magadan.rb +163 -0
  1480. data/src/admin_panel/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Asia/Muscat.rb +18 -0
  1481. data/src/admin_panel/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Asia/Novosibirsk.rb +164 -0
  1482. data/src/admin_panel/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Asia/Rangoon.rb +24 -0
  1483. data/src/admin_panel/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Asia/Riyadh.rb +18 -0
  1484. data/src/admin_panel/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Asia/Seoul.rb +34 -0
  1485. data/src/admin_panel/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Asia/Shanghai.rb +35 -0
  1486. data/src/admin_panel/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Asia/Singapore.rb +33 -0
  1487. data/src/admin_panel/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Asia/Taipei.rb +59 -0
  1488. data/src/admin_panel/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Asia/Tashkent.rb +47 -0
  1489. data/src/admin_panel/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Asia/Tbilisi.rb +78 -0
  1490. data/src/admin_panel/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Asia/Tehran.rb +121 -0
  1491. data/src/admin_panel/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Asia/Tokyo.rb +30 -0
  1492. data/src/admin_panel/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Asia/Ulaanbaatar.rb +65 -0
  1493. data/src/admin_panel/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Asia/Urumqi.rb +33 -0
  1494. data/src/admin_panel/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Asia/Vladivostok.rb +164 -0
  1495. data/src/admin_panel/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Asia/Yakutsk.rb +163 -0
  1496. data/src/admin_panel/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Asia/Yekaterinburg.rb +165 -0
  1497. data/src/admin_panel/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Asia/Yerevan.rb +165 -0
  1498. data/src/admin_panel/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Atlantic/Azores.rb +270 -0
  1499. data/src/admin_panel/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Atlantic/Cape_Verde.rb +23 -0
  1500. data/src/admin_panel/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Atlantic/South_Georgia.rb +18 -0
  1501. data/src/admin_panel/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Australia/Adelaide.rb +187 -0
  1502. data/src/admin_panel/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Australia/Brisbane.rb +35 -0
  1503. data/src/admin_panel/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Australia/Darwin.rb +29 -0
  1504. data/src/admin_panel/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Australia/Hobart.rb +193 -0
  1505. data/src/admin_panel/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Australia/Melbourne.rb +185 -0
  1506. data/src/admin_panel/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Australia/Perth.rb +37 -0
  1507. data/src/admin_panel/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Australia/Sydney.rb +185 -0
  1508. data/src/admin_panel/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Etc/UTC.rb +16 -0
  1509. data/src/admin_panel/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Europe/Amsterdam.rb +228 -0
  1510. data/src/admin_panel/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Europe/Athens.rb +185 -0
  1511. data/src/admin_panel/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Europe/Belgrade.rb +163 -0
  1512. data/src/admin_panel/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Europe/Berlin.rb +188 -0
  1513. data/src/admin_panel/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Europe/Bratislava.rb +13 -0
  1514. data/src/admin_panel/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Europe/Brussels.rb +232 -0
  1515. data/src/admin_panel/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Europe/Bucharest.rb +181 -0
  1516. data/src/admin_panel/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Europe/Budapest.rb +197 -0
  1517. data/src/admin_panel/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Europe/Copenhagen.rb +179 -0
  1518. data/src/admin_panel/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Europe/Dublin.rb +276 -0
  1519. data/src/admin_panel/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Europe/Helsinki.rb +163 -0
  1520. data/src/admin_panel/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Europe/Istanbul.rb +218 -0
  1521. data/src/admin_panel/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Europe/Kiev.rb +168 -0
  1522. data/src/admin_panel/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Europe/Lisbon.rb +268 -0
  1523. data/src/admin_panel/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Europe/Ljubljana.rb +13 -0
  1524. data/src/admin_panel/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Europe/London.rb +288 -0
  1525. data/src/admin_panel/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Europe/Madrid.rb +211 -0
  1526. data/src/admin_panel/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Europe/Minsk.rb +170 -0
  1527. data/src/admin_panel/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Europe/Moscow.rb +181 -0
  1528. data/src/admin_panel/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Europe/Paris.rb +232 -0
  1529. data/src/admin_panel/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Europe/Prague.rb +187 -0
  1530. data/src/admin_panel/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Europe/Riga.rb +176 -0
  1531. data/src/admin_panel/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Europe/Rome.rb +215 -0
  1532. data/src/admin_panel/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Europe/Sarajevo.rb +13 -0
  1533. data/src/admin_panel/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Europe/Skopje.rb +13 -0
  1534. data/src/admin_panel/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Europe/Sofia.rb +173 -0
  1535. data/src/admin_panel/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Europe/Stockholm.rb +165 -0
  1536. data/src/admin_panel/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Europe/Tallinn.rb +172 -0
  1537. data/src/admin_panel/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Europe/Vienna.rb +183 -0
  1538. data/src/admin_panel/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Europe/Vilnius.rb +170 -0
  1539. data/src/admin_panel/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Europe/Warsaw.rb +212 -0
  1540. data/src/admin_panel/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Europe/Zagreb.rb +13 -0
  1541. data/src/admin_panel/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Pacific/Auckland.rb +202 -0
  1542. data/src/admin_panel/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Pacific/Fiji.rb +23 -0
  1543. data/src/admin_panel/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Pacific/Guam.rb +22 -0
  1544. data/src/admin_panel/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Pacific/Honolulu.rb +28 -0
  1545. data/src/admin_panel/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Pacific/Majuro.rb +20 -0
  1546. data/src/admin_panel/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Pacific/Midway.rb +25 -0
  1547. data/src/admin_panel/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Pacific/Noumea.rb +25 -0
  1548. data/src/admin_panel/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Pacific/Pago_Pago.rb +26 -0
  1549. data/src/admin_panel/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Pacific/Port_Moresby.rb +20 -0
  1550. data/src/admin_panel/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Pacific/Tongatapu.rb +27 -0
  1551. data/src/admin_panel/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/info_timezone.rb +52 -0
  1552. data/src/admin_panel/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/linked_timezone.rb +51 -0
  1553. data/src/admin_panel/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/linked_timezone_info.rb +44 -0
  1554. data/src/admin_panel/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/offset_rationals.rb +98 -0
  1555. data/src/admin_panel/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/ruby_core_support.rb +56 -0
  1556. data/src/admin_panel/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/time_or_datetime.rb +292 -0
  1557. data/src/admin_panel/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/timezone.rb +508 -0
  1558. data/src/admin_panel/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/timezone_definition.rb +56 -0
  1559. data/src/admin_panel/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/timezone_info.rb +40 -0
  1560. data/src/admin_panel/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/timezone_offset_info.rb +94 -0
  1561. data/src/admin_panel/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/timezone_period.rb +198 -0
  1562. data/src/admin_panel/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/timezone_transition_info.rb +129 -0
  1563. data/src/admin_panel/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo.rb +33 -0
  1564. data/src/admin_panel/vendor/rails/activesupport/lib/active_support/vendor.rb +29 -0
  1565. data/src/admin_panel/vendor/rails/activesupport/lib/active_support/version.rb +9 -0
  1566. data/src/admin_panel/vendor/rails/activesupport/lib/active_support/whiny_nil.rb +58 -0
  1567. data/src/admin_panel/vendor/rails/activesupport/lib/active_support/xml_mini/libxml.rb +133 -0
  1568. data/src/admin_panel/vendor/rails/activesupport/lib/active_support/xml_mini/nokogiri.rb +77 -0
  1569. data/src/admin_panel/vendor/rails/activesupport/lib/active_support/xml_mini/rexml.rb +108 -0
  1570. data/src/admin_panel/vendor/rails/activesupport/lib/active_support/xml_mini.rb +31 -0
  1571. data/src/admin_panel/vendor/rails/activesupport/lib/active_support.rb +59 -0
  1572. data/src/admin_panel/vendor/rails/activesupport/lib/activesupport.rb +1 -0
  1573. data/src/admin_panel/vendor/rails/railties/CHANGELOG +2156 -0
  1574. data/src/admin_panel/vendor/rails/railties/MIT-LICENSE +20 -0
  1575. data/src/admin_panel/vendor/rails/railties/README +243 -0
  1576. data/src/admin_panel/vendor/rails/railties/Rakefile +364 -0
  1577. data/src/admin_panel/vendor/rails/railties/bin/about +4 -0
  1578. data/src/admin_panel/vendor/rails/railties/bin/console +3 -0
  1579. data/src/admin_panel/vendor/rails/railties/bin/dbconsole +3 -0
  1580. data/src/admin_panel/vendor/rails/railties/bin/destroy +3 -0
  1581. data/src/admin_panel/vendor/rails/railties/bin/generate +3 -0
  1582. data/src/admin_panel/vendor/rails/railties/bin/performance/benchmarker +3 -0
  1583. data/src/admin_panel/vendor/rails/railties/bin/performance/profiler +3 -0
  1584. data/src/admin_panel/vendor/rails/railties/bin/plugin +3 -0
  1585. data/src/admin_panel/vendor/rails/railties/bin/rails +20 -0
  1586. data/src/admin_panel/vendor/rails/railties/bin/runner +3 -0
  1587. data/src/admin_panel/vendor/rails/railties/bin/server +3 -0
  1588. data/src/admin_panel/vendor/rails/railties/builtin/rails_info/rails/info.rb +129 -0
  1589. data/src/admin_panel/vendor/rails/railties/builtin/rails_info/rails/info_controller.rb +9 -0
  1590. data/src/admin_panel/vendor/rails/railties/builtin/rails_info/rails/info_helper.rb +2 -0
  1591. data/src/admin_panel/vendor/rails/railties/builtin/rails_info/rails_info_controller.rb +2 -0
  1592. data/src/admin_panel/vendor/rails/railties/configs/databases/frontbase.yml +28 -0
  1593. data/src/admin_panel/vendor/rails/railties/configs/databases/ibm_db.yml +62 -0
  1594. data/src/admin_panel/vendor/rails/railties/configs/databases/mysql.yml +60 -0
  1595. data/src/admin_panel/vendor/rails/railties/configs/databases/oracle.yml +39 -0
  1596. data/src/admin_panel/vendor/rails/railties/configs/databases/postgresql.yml +51 -0
  1597. data/src/admin_panel/vendor/rails/railties/configs/databases/sqlite2.yml +19 -0
  1598. data/src/admin_panel/vendor/rails/railties/configs/databases/sqlite3.yml +22 -0
  1599. data/src/admin_panel/vendor/rails/railties/configs/initializers/backtrace_silencers.rb +7 -0
  1600. data/src/admin_panel/vendor/rails/railties/configs/initializers/inflections.rb +10 -0
  1601. data/src/admin_panel/vendor/rails/railties/configs/initializers/mime_types.rb +5 -0
  1602. data/src/admin_panel/vendor/rails/railties/configs/initializers/new_rails_defaults.rb +19 -0
  1603. data/src/admin_panel/vendor/rails/railties/configs/initializers/session_store.rb +15 -0
  1604. data/src/admin_panel/vendor/rails/railties/configs/locales/en.yml +5 -0
  1605. data/src/admin_panel/vendor/rails/railties/configs/routes.rb +43 -0
  1606. data/src/admin_panel/vendor/rails/railties/dispatches/config.ru +7 -0
  1607. data/src/admin_panel/vendor/rails/railties/dispatches/dispatch.fcgi +24 -0
  1608. data/src/admin_panel/vendor/rails/railties/dispatches/dispatch.rb +10 -0
  1609. data/src/admin_panel/vendor/rails/railties/dispatches/gateway.cgi +97 -0
  1610. data/src/admin_panel/vendor/rails/railties/doc/README_FOR_APP +2 -0
  1611. data/src/admin_panel/vendor/rails/railties/environments/boot.rb +110 -0
  1612. data/src/admin_panel/vendor/rails/railties/environments/development.rb +17 -0
  1613. data/src/admin_panel/vendor/rails/railties/environments/environment.rb +41 -0
  1614. data/src/admin_panel/vendor/rails/railties/environments/production.rb +28 -0
  1615. data/src/admin_panel/vendor/rails/railties/environments/test.rb +28 -0
  1616. data/src/admin_panel/vendor/rails/railties/fresh_rakefile +10 -0
  1617. data/src/admin_panel/vendor/rails/railties/helpers/application_controller.rb +10 -0
  1618. data/src/admin_panel/vendor/rails/railties/helpers/application_helper.rb +3 -0
  1619. data/src/admin_panel/vendor/rails/railties/helpers/performance_test.rb +9 -0
  1620. data/src/admin_panel/vendor/rails/railties/helpers/test_helper.rb +38 -0
  1621. data/src/admin_panel/vendor/rails/railties/html/404.html +30 -0
  1622. data/src/admin_panel/vendor/rails/railties/html/422.html +30 -0
  1623. data/src/admin_panel/vendor/rails/railties/html/500.html +30 -0
  1624. data/src/admin_panel/vendor/rails/railties/html/favicon.ico +0 -0
  1625. data/src/admin_panel/vendor/rails/railties/html/images/rails.png +0 -0
  1626. data/src/admin_panel/vendor/rails/railties/html/index.html +275 -0
  1627. data/src/admin_panel/vendor/rails/railties/html/javascripts/application.js +2 -0
  1628. data/src/admin_panel/vendor/rails/railties/html/javascripts/controls.js +963 -0
  1629. data/src/admin_panel/vendor/rails/railties/html/javascripts/dragdrop.js +973 -0
  1630. data/src/admin_panel/vendor/rails/railties/html/javascripts/effects.js +1128 -0
  1631. data/src/admin_panel/vendor/rails/railties/html/javascripts/prototype.js +4320 -0
  1632. data/src/admin_panel/vendor/rails/railties/html/robots.txt +5 -0
  1633. data/src/admin_panel/vendor/rails/railties/lib/code_statistics.rb +107 -0
  1634. data/src/admin_panel/vendor/rails/railties/lib/commands/about.rb +3 -0
  1635. data/src/admin_panel/vendor/rails/railties/lib/commands/console.rb +45 -0
  1636. data/src/admin_panel/vendor/rails/railties/lib/commands/dbconsole.rb +83 -0
  1637. data/src/admin_panel/vendor/rails/railties/lib/commands/destroy.rb +6 -0
  1638. data/src/admin_panel/vendor/rails/railties/lib/commands/generate.rb +6 -0
  1639. data/src/admin_panel/vendor/rails/railties/lib/commands/ncgi/listener +86 -0
  1640. data/src/admin_panel/vendor/rails/railties/lib/commands/ncgi/tracker +69 -0
  1641. data/src/admin_panel/vendor/rails/railties/lib/commands/performance/benchmarker.rb +24 -0
  1642. data/src/admin_panel/vendor/rails/railties/lib/commands/performance/profiler.rb +50 -0
  1643. data/src/admin_panel/vendor/rails/railties/lib/commands/plugin.rb +968 -0
  1644. data/src/admin_panel/vendor/rails/railties/lib/commands/runner.rb +54 -0
  1645. data/src/admin_panel/vendor/rails/railties/lib/commands/server.rb +114 -0
  1646. data/src/admin_panel/vendor/rails/railties/lib/commands/update.rb +4 -0
  1647. data/src/admin_panel/vendor/rails/railties/lib/commands.rb +17 -0
  1648. data/src/admin_panel/vendor/rails/railties/lib/console_app.rb +30 -0
  1649. data/src/admin_panel/vendor/rails/railties/lib/console_sandbox.rb +6 -0
  1650. data/src/admin_panel/vendor/rails/railties/lib/console_with_helpers.rb +5 -0
  1651. data/src/admin_panel/vendor/rails/railties/lib/dispatcher.rb +24 -0
  1652. data/src/admin_panel/vendor/rails/railties/lib/fcgi_handler.rb +239 -0
  1653. data/src/admin_panel/vendor/rails/railties/lib/initializer.rb +1105 -0
  1654. data/src/admin_panel/vendor/rails/railties/lib/performance_test_help.rb +5 -0
  1655. data/src/admin_panel/vendor/rails/railties/lib/rails/backtrace_cleaner.rb +54 -0
  1656. data/src/admin_panel/vendor/rails/railties/lib/rails/gem_builder.rb +21 -0
  1657. data/src/admin_panel/vendor/rails/railties/lib/rails/gem_dependency.rb +282 -0
  1658. data/src/admin_panel/vendor/rails/railties/lib/rails/plugin/loader.rb +191 -0
  1659. data/src/admin_panel/vendor/rails/railties/lib/rails/plugin/locator.rb +100 -0
  1660. data/src/admin_panel/vendor/rails/railties/lib/rails/plugin.rb +167 -0
  1661. data/src/admin_panel/vendor/rails/railties/lib/rails/rack/debugger.rb +21 -0
  1662. data/src/admin_panel/vendor/rails/railties/lib/rails/rack/log_tailer.rb +35 -0
  1663. data/src/admin_panel/vendor/rails/railties/lib/rails/rack/metal.rb +51 -0
  1664. data/src/admin_panel/vendor/rails/railties/lib/rails/rack/static.rb +46 -0
  1665. data/src/admin_panel/vendor/rails/railties/lib/rails/rack.rb +8 -0
  1666. data/src/admin_panel/vendor/rails/railties/lib/rails/vendor_gem_source_index.rb +140 -0
  1667. data/src/admin_panel/vendor/rails/railties/lib/rails/version.rb +9 -0
  1668. data/src/admin_panel/vendor/rails/railties/lib/rails_generator/base.rb +266 -0
  1669. data/src/admin_panel/vendor/rails/railties/lib/rails_generator/commands.rb +621 -0
  1670. data/src/admin_panel/vendor/rails/railties/lib/rails_generator/generated_attribute.rb +46 -0
  1671. data/src/admin_panel/vendor/rails/railties/lib/rails_generator/generators/applications/app/USAGE +9 -0
  1672. data/src/admin_panel/vendor/rails/railties/lib/rails_generator/generators/applications/app/app_generator.rb +258 -0
  1673. data/src/admin_panel/vendor/rails/railties/lib/rails_generator/generators/applications/app/scm/git.rb +16 -0
  1674. data/src/admin_panel/vendor/rails/railties/lib/rails_generator/generators/applications/app/scm/scm.rb +8 -0
  1675. data/src/admin_panel/vendor/rails/railties/lib/rails_generator/generators/applications/app/scm/svn.rb +7 -0
  1676. data/src/admin_panel/vendor/rails/railties/lib/rails_generator/generators/applications/app/template_runner.rb +401 -0
  1677. data/src/admin_panel/vendor/rails/railties/lib/rails_generator/generators/components/controller/USAGE +30 -0
  1678. data/src/admin_panel/vendor/rails/railties/lib/rails_generator/generators/components/controller/controller_generator.rb +43 -0
  1679. data/src/admin_panel/vendor/rails/railties/lib/rails_generator/generators/components/controller/templates/controller.rb +7 -0
  1680. data/src/admin_panel/vendor/rails/railties/lib/rails_generator/generators/components/controller/templates/functional_test.rb +8 -0
  1681. data/src/admin_panel/vendor/rails/railties/lib/rails_generator/generators/components/controller/templates/helper.rb +2 -0
  1682. data/src/admin_panel/vendor/rails/railties/lib/rails_generator/generators/components/controller/templates/helper_test.rb +4 -0
  1683. data/src/admin_panel/vendor/rails/railties/lib/rails_generator/generators/components/controller/templates/view.html.erb +2 -0
  1684. data/src/admin_panel/vendor/rails/railties/lib/rails_generator/generators/components/helper/USAGE +24 -0
  1685. data/src/admin_panel/vendor/rails/railties/lib/rails_generator/generators/components/helper/helper_generator.rb +25 -0
  1686. data/src/admin_panel/vendor/rails/railties/lib/rails_generator/generators/components/helper/templates/helper.rb +2 -0
  1687. data/src/admin_panel/vendor/rails/railties/lib/rails_generator/generators/components/helper/templates/helper_test.rb +4 -0
  1688. data/src/admin_panel/vendor/rails/railties/lib/rails_generator/generators/components/integration_test/USAGE +8 -0
  1689. data/src/admin_panel/vendor/rails/railties/lib/rails_generator/generators/components/integration_test/integration_test_generator.rb +16 -0
  1690. data/src/admin_panel/vendor/rails/railties/lib/rails_generator/generators/components/integration_test/templates/integration_test.rb +10 -0
  1691. data/src/admin_panel/vendor/rails/railties/lib/rails_generator/generators/components/mailer/USAGE +16 -0
  1692. data/src/admin_panel/vendor/rails/railties/lib/rails_generator/generators/components/mailer/mailer_generator.rb +30 -0
  1693. data/src/admin_panel/vendor/rails/railties/lib/rails_generator/generators/components/mailer/templates/fixture.erb +3 -0
  1694. data/src/admin_panel/vendor/rails/railties/lib/rails_generator/generators/components/mailer/templates/fixture.rhtml +0 -0
  1695. data/src/admin_panel/vendor/rails/railties/lib/rails_generator/generators/components/mailer/templates/mailer.rb +15 -0
  1696. data/src/admin_panel/vendor/rails/railties/lib/rails_generator/generators/components/mailer/templates/unit_test.rb +20 -0
  1697. data/src/admin_panel/vendor/rails/railties/lib/rails_generator/generators/components/mailer/templates/view.erb +3 -0
  1698. data/src/admin_panel/vendor/rails/railties/lib/rails_generator/generators/components/mailer/templates/view.rhtml +0 -0
  1699. data/src/admin_panel/vendor/rails/railties/lib/rails_generator/generators/components/metal/USAGE +8 -0
  1700. data/src/admin_panel/vendor/rails/railties/lib/rails_generator/generators/components/metal/metal_generator.rb +8 -0
  1701. data/src/admin_panel/vendor/rails/railties/lib/rails_generator/generators/components/metal/templates/metal.rb +12 -0
  1702. data/src/admin_panel/vendor/rails/railties/lib/rails_generator/generators/components/migration/USAGE +29 -0
  1703. data/src/admin_panel/vendor/rails/railties/lib/rails_generator/generators/components/migration/migration_generator.rb +20 -0
  1704. data/src/admin_panel/vendor/rails/railties/lib/rails_generator/generators/components/migration/templates/migration.rb +11 -0
  1705. data/src/admin_panel/vendor/rails/railties/lib/rails_generator/generators/components/model/USAGE +27 -0
  1706. data/src/admin_panel/vendor/rails/railties/lib/rails_generator/generators/components/model/model_generator.rb +45 -0
  1707. data/src/admin_panel/vendor/rails/railties/lib/rails_generator/generators/components/model/templates/fixtures.yml +19 -0
  1708. data/src/admin_panel/vendor/rails/railties/lib/rails_generator/generators/components/model/templates/migration.rb +16 -0
  1709. data/src/admin_panel/vendor/rails/railties/lib/rails_generator/generators/components/model/templates/model.rb +5 -0
  1710. data/src/admin_panel/vendor/rails/railties/lib/rails_generator/generators/components/model/templates/unit_test.rb +8 -0
  1711. data/src/admin_panel/vendor/rails/railties/lib/rails_generator/generators/components/observer/USAGE +13 -0
  1712. data/src/admin_panel/vendor/rails/railties/lib/rails_generator/generators/components/observer/observer_generator.rb +16 -0
  1713. data/src/admin_panel/vendor/rails/railties/lib/rails_generator/generators/components/observer/templates/observer.rb +2 -0
  1714. data/src/admin_panel/vendor/rails/railties/lib/rails_generator/generators/components/observer/templates/unit_test.rb +8 -0
  1715. data/src/admin_panel/vendor/rails/railties/lib/rails_generator/generators/components/performance_test/USAGE +8 -0
  1716. data/src/admin_panel/vendor/rails/railties/lib/rails_generator/generators/components/performance_test/performance_test_generator.rb +16 -0
  1717. data/src/admin_panel/vendor/rails/railties/lib/rails_generator/generators/components/performance_test/templates/performance_test.rb +9 -0
  1718. data/src/admin_panel/vendor/rails/railties/lib/rails_generator/generators/components/plugin/USAGE +25 -0
  1719. data/src/admin_panel/vendor/rails/railties/lib/rails_generator/generators/components/plugin/plugin_generator.rb +39 -0
  1720. data/src/admin_panel/vendor/rails/railties/lib/rails_generator/generators/components/plugin/templates/MIT-LICENSE +20 -0
  1721. data/src/admin_panel/vendor/rails/railties/lib/rails_generator/generators/components/plugin/templates/README +13 -0
  1722. data/src/admin_panel/vendor/rails/railties/lib/rails_generator/generators/components/plugin/templates/Rakefile +23 -0
  1723. data/src/admin_panel/vendor/rails/railties/lib/rails_generator/generators/components/plugin/templates/USAGE +8 -0
  1724. data/src/admin_panel/vendor/rails/railties/lib/rails_generator/generators/components/plugin/templates/generator.rb +8 -0
  1725. data/src/admin_panel/vendor/rails/railties/lib/rails_generator/generators/components/plugin/templates/init.rb +1 -0
  1726. data/src/admin_panel/vendor/rails/railties/lib/rails_generator/generators/components/plugin/templates/install.rb +1 -0
  1727. data/src/admin_panel/vendor/rails/railties/lib/rails_generator/generators/components/plugin/templates/plugin.rb +1 -0
  1728. data/src/admin_panel/vendor/rails/railties/lib/rails_generator/generators/components/plugin/templates/tasks.rake +4 -0
  1729. data/src/admin_panel/vendor/rails/railties/lib/rails_generator/generators/components/plugin/templates/test_helper.rb +3 -0
  1730. data/src/admin_panel/vendor/rails/railties/lib/rails_generator/generators/components/plugin/templates/uninstall.rb +1 -0
  1731. data/src/admin_panel/vendor/rails/railties/lib/rails_generator/generators/components/plugin/templates/unit_test.rb +8 -0
  1732. data/src/admin_panel/vendor/rails/railties/lib/rails_generator/generators/components/resource/USAGE +23 -0
  1733. data/src/admin_panel/vendor/rails/railties/lib/rails_generator/generators/components/resource/resource_generator.rb +76 -0
  1734. data/src/admin_panel/vendor/rails/railties/lib/rails_generator/generators/components/resource/templates/controller.rb +2 -0
  1735. data/src/admin_panel/vendor/rails/railties/lib/rails_generator/generators/components/resource/templates/functional_test.rb +8 -0
  1736. data/src/admin_panel/vendor/rails/railties/lib/rails_generator/generators/components/resource/templates/helper.rb +2 -0
  1737. data/src/admin_panel/vendor/rails/railties/lib/rails_generator/generators/components/resource/templates/helper_test.rb +4 -0
  1738. data/src/admin_panel/vendor/rails/railties/lib/rails_generator/generators/components/scaffold/USAGE +29 -0
  1739. data/src/admin_panel/vendor/rails/railties/lib/rails_generator/generators/components/scaffold/scaffold_generator.rb +102 -0
  1740. data/src/admin_panel/vendor/rails/railties/lib/rails_generator/generators/components/scaffold/templates/controller.rb +85 -0
  1741. data/src/admin_panel/vendor/rails/railties/lib/rails_generator/generators/components/scaffold/templates/functional_test.rb +45 -0
  1742. data/src/admin_panel/vendor/rails/railties/lib/rails_generator/generators/components/scaffold/templates/helper.rb +2 -0
  1743. data/src/admin_panel/vendor/rails/railties/lib/rails_generator/generators/components/scaffold/templates/helper_test.rb +4 -0
  1744. data/src/admin_panel/vendor/rails/railties/lib/rails_generator/generators/components/scaffold/templates/layout.html.erb +17 -0
  1745. data/src/admin_panel/vendor/rails/railties/lib/rails_generator/generators/components/scaffold/templates/style.css +54 -0
  1746. data/src/admin_panel/vendor/rails/railties/lib/rails_generator/generators/components/scaffold/templates/view_edit.html.erb +18 -0
  1747. data/src/admin_panel/vendor/rails/railties/lib/rails_generator/generators/components/scaffold/templates/view_index.html.erb +24 -0
  1748. data/src/admin_panel/vendor/rails/railties/lib/rails_generator/generators/components/scaffold/templates/view_new.html.erb +17 -0
  1749. data/src/admin_panel/vendor/rails/railties/lib/rails_generator/generators/components/scaffold/templates/view_show.html.erb +10 -0
  1750. data/src/admin_panel/vendor/rails/railties/lib/rails_generator/generators/components/session_migration/USAGE +10 -0
  1751. data/src/admin_panel/vendor/rails/railties/lib/rails_generator/generators/components/session_migration/session_migration_generator.rb +18 -0
  1752. data/src/admin_panel/vendor/rails/railties/lib/rails_generator/generators/components/session_migration/templates/migration.rb +16 -0
  1753. data/src/admin_panel/vendor/rails/railties/lib/rails_generator/lookup.rb +249 -0
  1754. data/src/admin_panel/vendor/rails/railties/lib/rails_generator/manifest.rb +53 -0
  1755. data/src/admin_panel/vendor/rails/railties/lib/rails_generator/options.rb +150 -0
  1756. data/src/admin_panel/vendor/rails/railties/lib/rails_generator/scripts/destroy.rb +29 -0
  1757. data/src/admin_panel/vendor/rails/railties/lib/rails_generator/scripts/generate.rb +7 -0
  1758. data/src/admin_panel/vendor/rails/railties/lib/rails_generator/scripts/update.rb +12 -0
  1759. data/src/admin_panel/vendor/rails/railties/lib/rails_generator/scripts.rb +89 -0
  1760. data/src/admin_panel/vendor/rails/railties/lib/rails_generator/secret_key_generator.rb +24 -0
  1761. data/src/admin_panel/vendor/rails/railties/lib/rails_generator/simple_logger.rb +46 -0
  1762. data/src/admin_panel/vendor/rails/railties/lib/rails_generator/spec.rb +44 -0
  1763. data/src/admin_panel/vendor/rails/railties/lib/rails_generator.rb +43 -0
  1764. data/src/admin_panel/vendor/rails/railties/lib/railties_path.rb +1 -0
  1765. data/src/admin_panel/vendor/rails/railties/lib/ruby_version_check.rb +17 -0
  1766. data/src/admin_panel/vendor/rails/railties/lib/rubyprof_ext.rb +35 -0
  1767. data/src/admin_panel/vendor/rails/railties/lib/source_annotation_extractor.rb +102 -0
  1768. data/src/admin_panel/vendor/rails/railties/lib/tasks/annotations.rake +20 -0
  1769. data/src/admin_panel/vendor/rails/railties/lib/tasks/databases.rake +423 -0
  1770. data/src/admin_panel/vendor/rails/railties/lib/tasks/documentation.rake +88 -0
  1771. data/src/admin_panel/vendor/rails/railties/lib/tasks/framework.rake +143 -0
  1772. data/src/admin_panel/vendor/rails/railties/lib/tasks/gems.rake +65 -0
  1773. data/src/admin_panel/vendor/rails/railties/lib/tasks/log.rake +9 -0
  1774. data/src/admin_panel/vendor/rails/railties/lib/tasks/middleware.rake +7 -0
  1775. data/src/admin_panel/vendor/rails/railties/lib/tasks/misc.rake +63 -0
  1776. data/src/admin_panel/vendor/rails/railties/lib/tasks/rails.rb +8 -0
  1777. data/src/admin_panel/vendor/rails/railties/lib/tasks/routes.rake +17 -0
  1778. data/src/admin_panel/vendor/rails/railties/lib/tasks/statistics.rake +17 -0
  1779. data/src/admin_panel/vendor/rails/railties/lib/tasks/testing.rake +139 -0
  1780. data/src/admin_panel/vendor/rails/railties/lib/tasks/tmp.rake +37 -0
  1781. data/src/admin_panel/vendor/rails/railties/lib/test_help.rb +35 -0
  1782. data/src/admin_panel/vendor/rails/railties/lib/webrick_server.rb +156 -0
  1783. data/src/head/wr_access_log.c +68 -0
  1784. data/src/head/wr_access_log.h +31 -0
  1785. data/src/head/wr_application.c +514 -0
  1786. data/src/head/wr_application.h +82 -0
  1787. data/src/head/wr_config.h +128 -0
  1788. data/src/head/wr_configurator.c +1114 -0
  1789. data/src/head/wr_configurator.h +142 -0
  1790. data/src/head/wr_connection.c +325 -0
  1791. data/src/head/wr_connection.h +68 -0
  1792. data/src/head/wr_controller.c +764 -0
  1793. data/src/head/wr_controller.h +100 -0
  1794. data/src/head/wr_main.c +202 -0
  1795. data/src/head/wr_request.c +658 -0
  1796. data/src/head/wr_request.h +139 -0
  1797. data/src/head/wr_resolver.c +285 -0
  1798. data/src/head/wr_resolver.h +58 -0
  1799. data/src/head/wr_server.c +190 -0
  1800. data/src/head/wr_server.h +64 -0
  1801. data/src/head/wr_worker.c +865 -0
  1802. data/src/head/wr_worker.h +80 -0
  1803. data/src/helper/wr_helper.h +31 -0
  1804. data/src/helper/wr_logger.c +160 -0
  1805. data/src/helper/wr_logger.h +74 -0
  1806. data/src/helper/wr_macro.h +31 -0
  1807. data/src/helper/wr_queue.c +107 -0
  1808. data/src/helper/wr_queue.h +64 -0
  1809. data/src/helper/wr_scgi.c +394 -0
  1810. data/src/helper/wr_scgi.h +110 -0
  1811. data/src/helper/wr_string.c +78 -0
  1812. data/src/helper/wr_string.h +83 -0
  1813. data/src/helper/wr_util.c +84 -0
  1814. data/src/helper/wr_util.h +43 -0
  1815. data/src/helper/wr_yaml_parser.c +249 -0
  1816. data/src/helper/wr_yaml_parser.h +67 -0
  1817. data/src/ruby_lib/analyzer/db_connect.rb +64 -0
  1818. data/src/ruby_lib/analyzer/logger.rb +55 -0
  1819. data/src/ruby_lib/analyzer/message_analyzer.rb +295 -0
  1820. data/src/ruby_lib/analyzer/message_reader.rb +93 -0
  1821. data/src/ruby_lib/analyzer/process_helper.rb +140 -0
  1822. data/src/ruby_lib/analyzer/resources_analyzer.rb +225 -0
  1823. data/src/ruby_lib/analyzer/user_defined_exception.rb +25 -0
  1824. data/src/ruby_lib/analyzer/webroar_analyzer.rb +29 -0
  1825. data/src/ruby_lib/analyzer/webroar_analyzer_script_runner.rb +171 -0
  1826. data/src/ruby_lib/exception_tracker/instrumentation/action_controller.rb +24 -0
  1827. data/src/ruby_lib/exception_tracker/instrumentation/instrumentation.rb +27 -0
  1828. data/src/ruby_lib/exception_tracker/instrumentation/rails.rb +25 -0
  1829. data/src/ruby_lib/exception_tracker/webroar_exception.rb +59 -0
  1830. data/src/ruby_lib/mailer/smtpmail.rb +64 -0
  1831. data/src/ruby_lib/profiler/instrumentation/action_controller.rb +25 -0
  1832. data/src/ruby_lib/profiler/instrumentation/active_record.rb +48 -0
  1833. data/src/ruby_lib/profiler/instrumentation/instrumentation.rb +27 -0
  1834. data/src/ruby_lib/profiler/instrumentation/rails.rb +26 -0
  1835. data/src/ruby_lib/profiler/message_dispatcher.rb +94 -0
  1836. data/src/ruby_lib/profiler/webroar_profiling.rb +202 -0
  1837. data/src/ruby_lib/rack/adapter/rack.rb +62 -0
  1838. data/src/ruby_lib/rack/adapter/rails.rb +185 -0
  1839. data/src/ruby_lib/ruby_interface/adapter.rb +50 -0
  1840. data/src/ruby_lib/ruby_interface/client.rb +111 -0
  1841. data/src/ruby_lib/ruby_interface/constants.rb +126 -0
  1842. data/src/ruby_lib/ruby_interface/deflater.rb +100 -0
  1843. data/src/ruby_lib/ruby_interface/logger.rb +34 -0
  1844. data/src/ruby_lib/ruby_interface/request_body.rb +60 -0
  1845. data/src/ruby_lib/ruby_interface/request_handler.rb +76 -0
  1846. data/src/ruby_lib/ruby_interface/ruby_interface.rb +29 -0
  1847. data/src/ruby_lib/ruby_interface/utils.rb +37 -0
  1848. data/src/ruby_lib/ruby_interface/version.rb +32 -0
  1849. data/src/ruby_lib/webroar_app_loader.rb +80 -0
  1850. data/src/vendor/libebb/LICENSE +21 -0
  1851. data/src/vendor/libebb/README +7 -0
  1852. data/src/vendor/libebb/doc/icon.png +0 -0
  1853. data/src/vendor/libebb/doc/index.html +240 -0
  1854. data/src/vendor/libebb/ebb.c +813 -0
  1855. data/src/vendor/libebb/ebb.h +123 -0
  1856. data/src/vendor/libebb/ebb_request_parser.c +3799 -0
  1857. data/src/vendor/libebb/ebb_request_parser.h +117 -0
  1858. data/src/vendor/libebb/ebb_request_parser.rl +421 -0
  1859. data/src/vendor/libebb/examples/ca-cert.pem +12 -0
  1860. data/src/vendor/libebb/examples/ca-key.pem +15 -0
  1861. data/src/vendor/libebb/examples/hello_world.c +101 -0
  1862. data/src/vendor/libebb/rbtree.c +412 -0
  1863. data/src/vendor/libebb/rbtree.h +54 -0
  1864. data/src/vendor/libebb/test/test_examples.rb +60 -0
  1865. data/src/vendor/libebb/test/test_rbtree.c +108 -0
  1866. data/src/vendor/libebb/test/test_request_parser.c +746 -0
  1867. data/src/vendor/libev/Changes +221 -0
  1868. data/src/vendor/libev/LICENSE +36 -0
  1869. data/src/vendor/libev/README +58 -0
  1870. data/src/vendor/libev/config.h.in +115 -0
  1871. data/src/vendor/libev/ev++.h +786 -0
  1872. data/src/vendor/libev/ev.3 +4021 -0
  1873. data/src/vendor/libev/ev.c +3158 -0
  1874. data/src/vendor/libev/ev.h +648 -0
  1875. data/src/vendor/libev/ev.pod +3943 -0
  1876. data/src/vendor/libev/ev_epoll.c +215 -0
  1877. data/src/vendor/libev/ev_kqueue.c +194 -0
  1878. data/src/vendor/libev/ev_poll.c +140 -0
  1879. data/src/vendor/libev/ev_port.c +163 -0
  1880. data/src/vendor/libev/ev_select.c +300 -0
  1881. data/src/vendor/libev/ev_vars.h +164 -0
  1882. data/src/vendor/libev/ev_win32.c +154 -0
  1883. data/src/vendor/libev/ev_wrap.h +150 -0
  1884. data/src/vendor/libev/event.c +401 -0
  1885. data/src/vendor/libev/event.h +158 -0
  1886. data/src/vendor/libyaml/LICENSE +19 -0
  1887. data/src/vendor/libyaml/README +29 -0
  1888. data/src/vendor/libyaml/api.c +1388 -0
  1889. data/src/vendor/libyaml/config.h +78 -0
  1890. data/src/vendor/libyaml/dumper.c +394 -0
  1891. data/src/vendor/libyaml/emitter.c +2297 -0
  1892. data/src/vendor/libyaml/loader.c +430 -0
  1893. data/src/vendor/libyaml/parser.c +1374 -0
  1894. data/src/vendor/libyaml/reader.c +460 -0
  1895. data/src/vendor/libyaml/scanner.c +3568 -0
  1896. data/src/vendor/libyaml/writer.c +141 -0
  1897. data/src/vendor/libyaml/yaml.h +1971 -0
  1898. data/src/vendor/libyaml/yaml_private.h +635 -0
  1899. data/src/worker/wkr_controller.c +288 -0
  1900. data/src/worker/wkr_http.c +470 -0
  1901. data/src/worker/wkr_http.h +43 -0
  1902. data/src/worker/wkr_http_request.c +322 -0
  1903. data/src/worker/wkr_http_request.h +47 -0
  1904. data/src/worker/wkr_http_response.c +247 -0
  1905. data/src/worker/wkr_http_response.h +43 -0
  1906. data/src/worker/wkr_main.c +248 -0
  1907. data/src/worker/worker.c +336 -0
  1908. data/src/worker/worker.h +97 -0
  1909. data/tasks/compile.rake +297 -0
  1910. data/tasks/gem.rake +123 -0
  1911. data/tasks/test.rake +696 -0
  1912. data/test/load_test.rb +115 -0
  1913. data/test/spec/access_log_spec.rb +45 -0
  1914. data/test/spec/analytics_spec.rb +114 -0
  1915. data/test/spec/conditional_spec.rb +106 -0
  1916. data/test/spec/connection_keep_alive_spec.rb +76 -0
  1917. data/test/spec/content_encoding_spec.rb +52 -0
  1918. data/test/spec/heart_beat_spec.rb +41 -0
  1919. data/test/spec/host_name_spec.rb +215 -0
  1920. data/test/spec/http_request_parser_spec.rb +380 -0
  1921. data/test/spec/http_spec.rb +76 -0
  1922. data/test/spec/spec_helper.rb +254 -0
  1923. data/test/spec/test_app/Rakefile +10 -0
  1924. data/test/spec/test_app/app/controllers/application_controller.rb +28 -0
  1925. data/test/spec/test_app/app/controllers/test_controller.rb +91 -0
  1926. data/test/spec/test_app/app/controllers/users_controller.rb +103 -0
  1927. data/test/spec/test_app/app/helpers/application_helper.rb +21 -0
  1928. data/test/spec/test_app/app/helpers/test_helper.rb +20 -0
  1929. data/test/spec/test_app/app/helpers/users_helper.rb +20 -0
  1930. data/test/spec/test_app/app/models/user.rb +20 -0
  1931. data/test/spec/test_app/app/views/layouts/users.html.erb +37 -0
  1932. data/test/spec/test_app/app/views/test/post_data.html.erb +24 -0
  1933. data/test/spec/test_app/app/views/test/upload_file.html.erb +34 -0
  1934. data/test/spec/test_app/app/views/users/edit.html.erb +36 -0
  1935. data/test/spec/test_app/app/views/users/index.html.erb +40 -0
  1936. data/test/spec/test_app/app/views/users/new.html.erb +35 -0
  1937. data/test/spec/test_app/app/views/users/show.html.erb +28 -0
  1938. data/test/spec/test_app/config/boot.rb +110 -0
  1939. data/test/spec/test_app/config/database.yml +22 -0
  1940. data/test/spec/test_app/config/environment.rb +42 -0
  1941. data/test/spec/test_app/config/environments/development.rb +17 -0
  1942. data/test/spec/test_app/config/environments/production.rb +28 -0
  1943. data/test/spec/test_app/config/environments/test.rb +28 -0
  1944. data/test/spec/test_app/config/initializers/backtrace_silencers.rb +7 -0
  1945. data/test/spec/test_app/config/initializers/inflections.rb +10 -0
  1946. data/test/spec/test_app/config/initializers/mime_types.rb +5 -0
  1947. data/test/spec/test_app/config/initializers/new_rails_defaults.rb +19 -0
  1948. data/test/spec/test_app/config/initializers/session_store.rb +15 -0
  1949. data/test/spec/test_app/config/routes.rb +45 -0
  1950. data/test/spec/test_app/db/migrate/20090602102438_create_users.rb +31 -0
  1951. data/test/spec/test_app/public/404.html +30 -0
  1952. data/test/spec/test_app/public/422.html +30 -0
  1953. data/test/spec/test_app/public/500.html +30 -0
  1954. data/test/spec/test_app/public/index.html +275 -0
  1955. data/test/spec/test_app/public/javascripts/application.js +2 -0
  1956. data/test/spec/test_app/public/javascripts/controls.js +963 -0
  1957. data/test/spec/test_app/public/javascripts/dragdrop.js +973 -0
  1958. data/test/spec/test_app/public/javascripts/effects.js +1128 -0
  1959. data/test/spec/test_app/public/javascripts/prototype.js +4320 -0
  1960. data/test/spec/test_app/public/robots.txt +5 -0
  1961. data/test/spec/test_app/public/stylesheets/scaffold.css +54 -0
  1962. data/test/spec/test_app/script/about +4 -0
  1963. data/test/spec/test_app/script/console +3 -0
  1964. data/test/spec/test_app/script/dbconsole +3 -0
  1965. data/test/spec/test_app/script/destroy +3 -0
  1966. data/test/spec/test_app/script/generate +3 -0
  1967. data/test/spec/test_app/script/performance/benchmarker +3 -0
  1968. data/test/spec/test_app/script/performance/profiler +3 -0
  1969. data/test/spec/test_app/script/plugin +3 -0
  1970. data/test/spec/test_app/script/runner +3 -0
  1971. data/test/spec/test_app/script/server +3 -0
  1972. data/test/spec/test_app/vendor/.placeholder +0 -0
  1973. data/test/spec/upload_helper.rb +163 -0
  1974. data/test/spec/webroar_command_spec.rb +66 -0
  1975. data/test/unit/config/config1.yml +3 -0
  1976. data/test/unit/config/config2.yml +8 -0
  1977. data/test/unit/config/config3.yml +18 -0
  1978. data/test/unit/config/config4.yml +1 -0
  1979. data/test/unit/config/config5.yml +3 -0
  1980. data/test/unit/queue_test.c +89 -0
  1981. data/test/unit/scgi_test.c +194 -0
  1982. data/test/unit/test.c +42 -0
  1983. data/test/unit/test.h +38 -0
  1984. data/test/unit/ut_test.c +77 -0
  1985. data/test/unit/ut_test.h +62 -0
  1986. data/test/unit/util_test.c +57 -0
  1987. data/test/unit/yaml_test.c +144 -0
  1988. metadata +2114 -0
@@ -0,0 +1,2469 @@
1
+ require 'abstract_unit'
2
+
3
+ class DateHelperTest < ActionView::TestCase
4
+ tests ActionView::Helpers::DateHelper
5
+
6
+ silence_warnings do
7
+ Post = Struct.new("Post", :id, :written_on, :updated_at)
8
+ Post.class_eval do
9
+ def id
10
+ 123
11
+ end
12
+ def id_before_type_cast
13
+ 123
14
+ end
15
+ def to_param
16
+ '123'
17
+ end
18
+ end
19
+ end
20
+
21
+ def assert_distance_of_time_in_words(from, to=nil)
22
+ to ||= from
23
+
24
+ # 0..1 with include_seconds
25
+ assert_equal "less than 5 seconds", distance_of_time_in_words(from, to + 0.seconds, true)
26
+ assert_equal "less than 5 seconds", distance_of_time_in_words(from, to + 4.seconds, true)
27
+ assert_equal "less than 10 seconds", distance_of_time_in_words(from, to + 5.seconds, true)
28
+ assert_equal "less than 10 seconds", distance_of_time_in_words(from, to + 9.seconds, true)
29
+ assert_equal "less than 20 seconds", distance_of_time_in_words(from, to + 10.seconds, true)
30
+ assert_equal "less than 20 seconds", distance_of_time_in_words(from, to + 19.seconds, true)
31
+ assert_equal "half a minute", distance_of_time_in_words(from, to + 20.seconds, true)
32
+ assert_equal "half a minute", distance_of_time_in_words(from, to + 39.seconds, true)
33
+ assert_equal "less than a minute", distance_of_time_in_words(from, to + 40.seconds, true)
34
+ assert_equal "less than a minute", distance_of_time_in_words(from, to + 59.seconds, true)
35
+ assert_equal "1 minute", distance_of_time_in_words(from, to + 60.seconds, true)
36
+ assert_equal "1 minute", distance_of_time_in_words(from, to + 89.seconds, true)
37
+
38
+ # First case 0..1
39
+ assert_equal "less than a minute", distance_of_time_in_words(from, to + 0.seconds)
40
+ assert_equal "less than a minute", distance_of_time_in_words(from, to + 29.seconds)
41
+ assert_equal "1 minute", distance_of_time_in_words(from, to + 30.seconds)
42
+ assert_equal "1 minute", distance_of_time_in_words(from, to + 1.minutes + 29.seconds)
43
+
44
+ # 2..44
45
+ assert_equal "2 minutes", distance_of_time_in_words(from, to + 1.minutes + 30.seconds)
46
+ assert_equal "44 minutes", distance_of_time_in_words(from, to + 44.minutes + 29.seconds)
47
+
48
+ # 45..89
49
+ assert_equal "about 1 hour", distance_of_time_in_words(from, to + 44.minutes + 30.seconds)
50
+ assert_equal "about 1 hour", distance_of_time_in_words(from, to + 89.minutes + 29.seconds)
51
+
52
+ # 90..1439
53
+ assert_equal "about 2 hours", distance_of_time_in_words(from, to + 89.minutes + 30.seconds)
54
+ assert_equal "about 24 hours", distance_of_time_in_words(from, to + 23.hours + 59.minutes + 29.seconds)
55
+
56
+ # 1440..2879
57
+ assert_equal "1 day", distance_of_time_in_words(from, to + 23.hours + 59.minutes + 30.seconds)
58
+ assert_equal "1 day", distance_of_time_in_words(from, to + 47.hours + 59.minutes + 29.seconds)
59
+
60
+ # 2880..43199
61
+ assert_equal "2 days", distance_of_time_in_words(from, to + 47.hours + 59.minutes + 30.seconds)
62
+ assert_equal "29 days", distance_of_time_in_words(from, to + 29.days + 23.hours + 59.minutes + 29.seconds)
63
+
64
+ # 43200..86399
65
+ assert_equal "about 1 month", distance_of_time_in_words(from, to + 29.days + 23.hours + 59.minutes + 30.seconds)
66
+ assert_equal "about 1 month", distance_of_time_in_words(from, to + 59.days + 23.hours + 59.minutes + 29.seconds)
67
+
68
+ # 86400..525599
69
+ assert_equal "2 months", distance_of_time_in_words(from, to + 59.days + 23.hours + 59.minutes + 30.seconds)
70
+ assert_equal "12 months", distance_of_time_in_words(from, to + 1.years - 31.seconds)
71
+
72
+ # 525600..1051199
73
+ assert_equal "about 1 year", distance_of_time_in_words(from, to + 1.years - 30.seconds)
74
+ assert_equal "about 1 year", distance_of_time_in_words(from, to + 2.years - 31.seconds)
75
+
76
+ # > 1051199
77
+ assert_equal "over 2 years", distance_of_time_in_words(from, to + 2.years + 30.seconds)
78
+ assert_equal "over 10 years", distance_of_time_in_words(from, to + 10.years)
79
+
80
+ # test to < from
81
+ assert_equal "about 4 hours", distance_of_time_in_words(from + 4.hours, to)
82
+ assert_equal "less than 20 seconds", distance_of_time_in_words(from + 19.seconds, to, true)
83
+ end
84
+
85
+ def test_distance_in_words
86
+ from = Time.mktime(2004, 6, 6, 21, 45, 0)
87
+ assert_distance_of_time_in_words(from)
88
+ end
89
+
90
+ def test_distance_in_words_with_time_zones
91
+ from = Time.mktime(2004, 6, 6, 21, 45, 0)
92
+ assert_distance_of_time_in_words(from.in_time_zone('Alaska'))
93
+ assert_distance_of_time_in_words(from.in_time_zone('Hawaii'))
94
+ end
95
+
96
+ def test_distance_in_words_with_different_time_zones
97
+ from = Time.mktime(2004, 6, 6, 21, 45, 0)
98
+ assert_distance_of_time_in_words(
99
+ from.in_time_zone('Alaska'),
100
+ from.in_time_zone('Hawaii')
101
+ )
102
+ end
103
+
104
+ def test_distance_in_words_with_dates
105
+ start_date = Date.new 1975, 1, 31
106
+ end_date = Date.new 1977, 1, 31
107
+ assert_equal("over 2 years", distance_of_time_in_words(start_date, end_date))
108
+ end
109
+
110
+ def test_distance_in_words_with_integers
111
+ assert_equal "less than a minute", distance_of_time_in_words(59)
112
+ assert_equal "about 1 hour", distance_of_time_in_words(60*60)
113
+ assert_equal "less than a minute", distance_of_time_in_words(0, 59)
114
+ assert_equal "about 1 hour", distance_of_time_in_words(60*60, 0)
115
+ end
116
+
117
+ def test_time_ago_in_words
118
+ assert_equal "about 1 year", time_ago_in_words(1.year.ago - 1.day)
119
+ end
120
+
121
+ def test_select_day
122
+ expected = %(<select id="date_day" name="date[day]">\n)
123
+ expected << %(<option value="1">1</option>\n<option value="2">2</option>\n<option value="3">3</option>\n<option value="4">4</option>\n<option value="5">5</option>\n<option value="6">6</option>\n<option value="7">7</option>\n<option value="8">8</option>\n<option value="9">9</option>\n<option value="10">10</option>\n<option value="11">11</option>\n<option value="12">12</option>\n<option value="13">13</option>\n<option value="14">14</option>\n<option value="15">15</option>\n<option value="16" selected="selected">16</option>\n<option value="17">17</option>\n<option value="18">18</option>\n<option value="19">19</option>\n<option value="20">20</option>\n<option value="21">21</option>\n<option value="22">22</option>\n<option value="23">23</option>\n<option value="24">24</option>\n<option value="25">25</option>\n<option value="26">26</option>\n<option value="27">27</option>\n<option value="28">28</option>\n<option value="29">29</option>\n<option value="30">30</option>\n<option value="31">31</option>\n)
124
+ expected << "</select>\n"
125
+
126
+ assert_dom_equal expected, select_day(Time.mktime(2003, 8, 16))
127
+ assert_dom_equal expected, select_day(16)
128
+ end
129
+
130
+ def test_select_day_with_blank
131
+ expected = %(<select id="date_day" name="date[day]">\n)
132
+ expected << %(<option value=""></option>\n<option value="1">1</option>\n<option value="2">2</option>\n<option value="3">3</option>\n<option value="4">4</option>\n<option value="5">5</option>\n<option value="6">6</option>\n<option value="7">7</option>\n<option value="8">8</option>\n<option value="9">9</option>\n<option value="10">10</option>\n<option value="11">11</option>\n<option value="12">12</option>\n<option value="13">13</option>\n<option value="14">14</option>\n<option value="15">15</option>\n<option value="16" selected="selected">16</option>\n<option value="17">17</option>\n<option value="18">18</option>\n<option value="19">19</option>\n<option value="20">20</option>\n<option value="21">21</option>\n<option value="22">22</option>\n<option value="23">23</option>\n<option value="24">24</option>\n<option value="25">25</option>\n<option value="26">26</option>\n<option value="27">27</option>\n<option value="28">28</option>\n<option value="29">29</option>\n<option value="30">30</option>\n<option value="31">31</option>\n)
133
+ expected << "</select>\n"
134
+
135
+ assert_dom_equal expected, select_day(Time.mktime(2003, 8, 16), :include_blank => true)
136
+ assert_dom_equal expected, select_day(16, :include_blank => true)
137
+ end
138
+
139
+ def test_select_day_nil_with_blank
140
+ expected = %(<select id="date_day" name="date[day]">\n)
141
+ expected << %(<option value=""></option>\n<option value="1">1</option>\n<option value="2">2</option>\n<option value="3">3</option>\n<option value="4">4</option>\n<option value="5">5</option>\n<option value="6">6</option>\n<option value="7">7</option>\n<option value="8">8</option>\n<option value="9">9</option>\n<option value="10">10</option>\n<option value="11">11</option>\n<option value="12">12</option>\n<option value="13">13</option>\n<option value="14">14</option>\n<option value="15">15</option>\n<option value="16">16</option>\n<option value="17">17</option>\n<option value="18">18</option>\n<option value="19">19</option>\n<option value="20">20</option>\n<option value="21">21</option>\n<option value="22">22</option>\n<option value="23">23</option>\n<option value="24">24</option>\n<option value="25">25</option>\n<option value="26">26</option>\n<option value="27">27</option>\n<option value="28">28</option>\n<option value="29">29</option>\n<option value="30">30</option>\n<option value="31">31</option>\n)
142
+ expected << "</select>\n"
143
+
144
+ assert_dom_equal expected, select_day(nil, :include_blank => true)
145
+ end
146
+
147
+ def test_select_day_with_html_options
148
+ expected = %(<select id="date_day" name="date[day]" class="selector">\n)
149
+ expected << %(<option value="1">1</option>\n<option value="2">2</option>\n<option value="3">3</option>\n<option value="4">4</option>\n<option value="5">5</option>\n<option value="6">6</option>\n<option value="7">7</option>\n<option value="8">8</option>\n<option value="9">9</option>\n<option value="10">10</option>\n<option value="11">11</option>\n<option value="12">12</option>\n<option value="13">13</option>\n<option value="14">14</option>\n<option value="15">15</option>\n<option value="16" selected="selected">16</option>\n<option value="17">17</option>\n<option value="18">18</option>\n<option value="19">19</option>\n<option value="20">20</option>\n<option value="21">21</option>\n<option value="22">22</option>\n<option value="23">23</option>\n<option value="24">24</option>\n<option value="25">25</option>\n<option value="26">26</option>\n<option value="27">27</option>\n<option value="28">28</option>\n<option value="29">29</option>\n<option value="30">30</option>\n<option value="31">31</option>\n)
150
+ expected << "</select>\n"
151
+
152
+ assert_dom_equal expected, select_day(Time.mktime(2003, 8, 16), {}, :class => 'selector')
153
+ assert_dom_equal expected, select_day(16, {}, :class => 'selector')
154
+ end
155
+
156
+ def test_select_day_with_default_prompt
157
+ expected = %(<select id="date_day" name="date[day]">\n)
158
+ expected << %(<option value="">Day</option>\n<option value="1">1</option>\n<option value="2">2</option>\n<option value="3">3</option>\n<option value="4">4</option>\n<option value="5">5</option>\n<option value="6">6</option>\n<option value="7">7</option>\n<option value="8">8</option>\n<option value="9">9</option>\n<option value="10">10</option>\n<option value="11">11</option>\n<option value="12">12</option>\n<option value="13">13</option>\n<option value="14">14</option>\n<option value="15">15</option>\n<option value="16" selected="selected">16</option>\n<option value="17">17</option>\n<option value="18">18</option>\n<option value="19">19</option>\n<option value="20">20</option>\n<option value="21">21</option>\n<option value="22">22</option>\n<option value="23">23</option>\n<option value="24">24</option>\n<option value="25">25</option>\n<option value="26">26</option>\n<option value="27">27</option>\n<option value="28">28</option>\n<option value="29">29</option>\n<option value="30">30</option>\n<option value="31">31</option>\n)
159
+ expected << "</select>\n"
160
+
161
+ assert_dom_equal expected, select_day(16, :prompt => true)
162
+ end
163
+
164
+ def test_select_day_with_custom_prompt
165
+ expected = %(<select id="date_day" name="date[day]">\n)
166
+ expected << %(<option value="">Choose day</option>\n<option value="1">1</option>\n<option value="2">2</option>\n<option value="3">3</option>\n<option value="4">4</option>\n<option value="5">5</option>\n<option value="6">6</option>\n<option value="7">7</option>\n<option value="8">8</option>\n<option value="9">9</option>\n<option value="10">10</option>\n<option value="11">11</option>\n<option value="12">12</option>\n<option value="13">13</option>\n<option value="14">14</option>\n<option value="15">15</option>\n<option value="16" selected="selected">16</option>\n<option value="17">17</option>\n<option value="18">18</option>\n<option value="19">19</option>\n<option value="20">20</option>\n<option value="21">21</option>\n<option value="22">22</option>\n<option value="23">23</option>\n<option value="24">24</option>\n<option value="25">25</option>\n<option value="26">26</option>\n<option value="27">27</option>\n<option value="28">28</option>\n<option value="29">29</option>\n<option value="30">30</option>\n<option value="31">31</option>\n)
167
+ expected << "</select>\n"
168
+
169
+ assert_dom_equal expected, select_day(16, :prompt => 'Choose day')
170
+ end
171
+
172
+ def test_select_month
173
+ expected = %(<select id="date_month" name="date[month]">\n)
174
+ expected << %(<option value="1">January</option>\n<option value="2">February</option>\n<option value="3">March</option>\n<option value="4">April</option>\n<option value="5">May</option>\n<option value="6">June</option>\n<option value="7">July</option>\n<option value="8" selected="selected">August</option>\n<option value="9">September</option>\n<option value="10">October</option>\n<option value="11">November</option>\n<option value="12">December</option>\n)
175
+ expected << "</select>\n"
176
+
177
+ assert_dom_equal expected, select_month(Time.mktime(2003, 8, 16))
178
+ assert_dom_equal expected, select_month(8)
179
+ end
180
+
181
+ def test_select_month_with_disabled
182
+ expected = %(<select id="date_month" name="date[month]" disabled="disabled">\n)
183
+ expected << %(<option value="1">January</option>\n<option value="2">February</option>\n<option value="3">March</option>\n<option value="4">April</option>\n<option value="5">May</option>\n<option value="6">June</option>\n<option value="7">July</option>\n<option value="8" selected="selected">August</option>\n<option value="9">September</option>\n<option value="10">October</option>\n<option value="11">November</option>\n<option value="12">December</option>\n)
184
+ expected << "</select>\n"
185
+
186
+ assert_dom_equal expected, select_month(Time.mktime(2003, 8, 16), :disabled => true)
187
+ assert_dom_equal expected, select_month(8, :disabled => true)
188
+ end
189
+
190
+ def test_select_month_with_field_name_override
191
+ expected = %(<select id="date_mois" name="date[mois]">\n)
192
+ expected << %(<option value="1">January</option>\n<option value="2">February</option>\n<option value="3">March</option>\n<option value="4">April</option>\n<option value="5">May</option>\n<option value="6">June</option>\n<option value="7">July</option>\n<option value="8" selected="selected">August</option>\n<option value="9">September</option>\n<option value="10">October</option>\n<option value="11">November</option>\n<option value="12">December</option>\n)
193
+ expected << "</select>\n"
194
+
195
+ assert_dom_equal expected, select_month(Time.mktime(2003, 8, 16), :field_name => 'mois')
196
+ assert_dom_equal expected, select_month(8, :field_name => 'mois')
197
+ end
198
+
199
+ def test_select_month_with_blank
200
+ expected = %(<select id="date_month" name="date[month]">\n)
201
+ expected << %(<option value=""></option>\n<option value="1">January</option>\n<option value="2">February</option>\n<option value="3">March</option>\n<option value="4">April</option>\n<option value="5">May</option>\n<option value="6">June</option>\n<option value="7">July</option>\n<option value="8" selected="selected">August</option>\n<option value="9">September</option>\n<option value="10">October</option>\n<option value="11">November</option>\n<option value="12">December</option>\n)
202
+ expected << "</select>\n"
203
+
204
+ assert_dom_equal expected, select_month(Time.mktime(2003, 8, 16), :include_blank => true)
205
+ assert_dom_equal expected, select_month(8, :include_blank => true)
206
+ end
207
+
208
+ def test_select_month_nil_with_blank
209
+ expected = %(<select id="date_month" name="date[month]">\n)
210
+ expected << %(<option value=""></option>\n<option value="1">January</option>\n<option value="2">February</option>\n<option value="3">March</option>\n<option value="4">April</option>\n<option value="5">May</option>\n<option value="6">June</option>\n<option value="7">July</option>\n<option value="8">August</option>\n<option value="9">September</option>\n<option value="10">October</option>\n<option value="11">November</option>\n<option value="12">December</option>\n)
211
+ expected << "</select>\n"
212
+
213
+ assert_dom_equal expected, select_month(nil, :include_blank => true)
214
+ end
215
+
216
+ def test_select_month_with_numbers
217
+ expected = %(<select id="date_month" name="date[month]">\n)
218
+ expected << %(<option value="1">1</option>\n<option value="2">2</option>\n<option value="3">3</option>\n<option value="4">4</option>\n<option value="5">5</option>\n<option value="6">6</option>\n<option value="7">7</option>\n<option value="8" selected="selected">8</option>\n<option value="9">9</option>\n<option value="10">10</option>\n<option value="11">11</option>\n<option value="12">12</option>\n)
219
+ expected << "</select>\n"
220
+
221
+ assert_dom_equal expected, select_month(Time.mktime(2003, 8, 16), :use_month_numbers => true)
222
+ assert_dom_equal expected, select_month(8, :use_month_numbers => true)
223
+ end
224
+
225
+ def test_select_month_with_numbers_and_names
226
+ expected = %(<select id="date_month" name="date[month]">\n)
227
+ expected << %(<option value="1">1 - January</option>\n<option value="2">2 - February</option>\n<option value="3">3 - March</option>\n<option value="4">4 - April</option>\n<option value="5">5 - May</option>\n<option value="6">6 - June</option>\n<option value="7">7 - July</option>\n<option value="8" selected="selected">8 - August</option>\n<option value="9">9 - September</option>\n<option value="10">10 - October</option>\n<option value="11">11 - November</option>\n<option value="12">12 - December</option>\n)
228
+ expected << "</select>\n"
229
+
230
+ assert_dom_equal expected, select_month(Time.mktime(2003, 8, 16), :add_month_numbers => true)
231
+ assert_dom_equal expected, select_month(8, :add_month_numbers => true)
232
+ end
233
+
234
+ def test_select_month_with_numbers_and_names_with_abbv
235
+ expected = %(<select id="date_month" name="date[month]">\n)
236
+ expected << %(<option value="1">1 - Jan</option>\n<option value="2">2 - Feb</option>\n<option value="3">3 - Mar</option>\n<option value="4">4 - Apr</option>\n<option value="5">5 - May</option>\n<option value="6">6 - Jun</option>\n<option value="7">7 - Jul</option>\n<option value="8" selected="selected">8 - Aug</option>\n<option value="9">9 - Sep</option>\n<option value="10">10 - Oct</option>\n<option value="11">11 - Nov</option>\n<option value="12">12 - Dec</option>\n)
237
+ expected << "</select>\n"
238
+
239
+ assert_dom_equal expected, select_month(Time.mktime(2003, 8, 16), :add_month_numbers => true, :use_short_month => true)
240
+ assert_dom_equal expected, select_month(8, :add_month_numbers => true, :use_short_month => true)
241
+ end
242
+
243
+ def test_select_month_with_abbv
244
+ expected = %(<select id="date_month" name="date[month]">\n)
245
+ expected << %(<option value="1">Jan</option>\n<option value="2">Feb</option>\n<option value="3">Mar</option>\n<option value="4">Apr</option>\n<option value="5">May</option>\n<option value="6">Jun</option>\n<option value="7">Jul</option>\n<option value="8" selected="selected">Aug</option>\n<option value="9">Sep</option>\n<option value="10">Oct</option>\n<option value="11">Nov</option>\n<option value="12">Dec</option>\n)
246
+ expected << "</select>\n"
247
+
248
+ assert_dom_equal expected, select_month(Time.mktime(2003, 8, 16), :use_short_month => true)
249
+ assert_dom_equal expected, select_month(8, :use_short_month => true)
250
+ end
251
+
252
+ def test_select_month_with_custom_names
253
+ month_names = %w(nil Januar Februar Marts April Maj Juni Juli August September Oktober November December)
254
+
255
+ expected = %(<select id="date_month" name="date[month]">\n)
256
+ 1.upto(12) { |month| expected << %(<option value="#{month}"#{' selected="selected"' if month == 8}>#{month_names[month]}</option>\n) }
257
+ expected << "</select>\n"
258
+
259
+ assert_dom_equal expected, select_month(Time.mktime(2003, 8, 16), :use_month_names => month_names)
260
+ assert_dom_equal expected, select_month(8, :use_month_names => month_names)
261
+ end
262
+
263
+ def test_select_month_with_zero_indexed_custom_names
264
+ month_names = %w(Januar Februar Marts April Maj Juni Juli August September Oktober November December)
265
+
266
+ expected = %(<select id="date_month" name="date[month]">\n)
267
+ 1.upto(12) { |month| expected << %(<option value="#{month}"#{' selected="selected"' if month == 8}>#{month_names[month-1]}</option>\n) }
268
+ expected << "</select>\n"
269
+
270
+ assert_dom_equal expected, select_month(Time.mktime(2003, 8, 16), :use_month_names => month_names)
271
+ assert_dom_equal expected, select_month(8, :use_month_names => month_names)
272
+ end
273
+
274
+ def test_select_month_with_hidden
275
+ assert_dom_equal "<input type=\"hidden\" id=\"date_month\" name=\"date[month]\" value=\"8\" />\n", select_month(8, :use_hidden => true)
276
+ end
277
+
278
+ def test_select_month_with_hidden_and_field_name
279
+ assert_dom_equal "<input type=\"hidden\" id=\"date_mois\" name=\"date[mois]\" value=\"8\" />\n", select_month(8, :use_hidden => true, :field_name => 'mois')
280
+ end
281
+
282
+ def test_select_month_with_html_options
283
+ expected = %(<select id="date_month" name="date[month]" class="selector" accesskey="M">\n)
284
+ expected << %(<option value="1">January</option>\n<option value="2">February</option>\n<option value="3">March</option>\n<option value="4">April</option>\n<option value="5">May</option>\n<option value="6">June</option>\n<option value="7">July</option>\n<option value="8" selected="selected">August</option>\n<option value="9">September</option>\n<option value="10">October</option>\n<option value="11">November</option>\n<option value="12">December</option>\n)
285
+ expected << "</select>\n"
286
+
287
+ assert_dom_equal expected, select_month(Time.mktime(2003, 8, 16), {}, :class => 'selector', :accesskey => 'M')
288
+ #result = select_month(Time.mktime(2003, 8, 16), {}, :class => 'selector', :accesskey => 'M')
289
+ #assert result.include?('<select id="date_month" name="date[month]"')
290
+ #assert result.include?('class="selector"')
291
+ #assert result.include?('accesskey="M"')
292
+ #assert result.include?('<option value="1">January')
293
+ end
294
+
295
+ def test_select_month_with_default_prompt
296
+ expected = %(<select id="date_month" name="date[month]">\n)
297
+ expected << %(<option value="">Month</option>\n<option value="1">January</option>\n<option value="2">February</option>\n<option value="3">March</option>\n<option value="4">April</option>\n<option value="5">May</option>\n<option value="6">June</option>\n<option value="7">July</option>\n<option value="8" selected="selected">August</option>\n<option value="9">September</option>\n<option value="10">October</option>\n<option value="11">November</option>\n<option value="12">December</option>\n)
298
+ expected << "</select>\n"
299
+
300
+ assert_dom_equal expected, select_month(8, :prompt => true)
301
+ end
302
+
303
+ def test_select_month_with_custom_prompt
304
+ expected = %(<select id="date_month" name="date[month]">\n)
305
+ expected << %(<option value="">Choose month</option>\n<option value="1">January</option>\n<option value="2">February</option>\n<option value="3">March</option>\n<option value="4">April</option>\n<option value="5">May</option>\n<option value="6">June</option>\n<option value="7">July</option>\n<option value="8" selected="selected">August</option>\n<option value="9">September</option>\n<option value="10">October</option>\n<option value="11">November</option>\n<option value="12">December</option>\n)
306
+ expected << "</select>\n"
307
+
308
+ assert_dom_equal expected, select_month(8, :prompt => 'Choose month')
309
+ end
310
+
311
+ def test_select_year
312
+ expected = %(<select id="date_year" name="date[year]">\n)
313
+ expected << %(<option value="2003" selected="selected">2003</option>\n<option value="2004">2004</option>\n<option value="2005">2005</option>\n)
314
+ expected << "</select>\n"
315
+
316
+ assert_dom_equal expected, select_year(Time.mktime(2003, 8, 16), :start_year => 2003, :end_year => 2005)
317
+ assert_dom_equal expected, select_year(2003, :start_year => 2003, :end_year => 2005)
318
+ end
319
+
320
+ def test_select_year_with_disabled
321
+ expected = %(<select id="date_year" name="date[year]" disabled="disabled">\n)
322
+ expected << %(<option value="2003" selected="selected">2003</option>\n<option value="2004">2004</option>\n<option value="2005">2005</option>\n)
323
+ expected << "</select>\n"
324
+
325
+ assert_dom_equal expected, select_year(Time.mktime(2003, 8, 16), :disabled => true, :start_year => 2003, :end_year => 2005)
326
+ assert_dom_equal expected, select_year(2003, :disabled => true, :start_year => 2003, :end_year => 2005)
327
+ end
328
+
329
+ def test_select_year_with_field_name_override
330
+ expected = %(<select id="date_annee" name="date[annee]">\n)
331
+ expected << %(<option value="2003" selected="selected">2003</option>\n<option value="2004">2004</option>\n<option value="2005">2005</option>\n)
332
+ expected << "</select>\n"
333
+
334
+ assert_dom_equal expected, select_year(Time.mktime(2003, 8, 16), :start_year => 2003, :end_year => 2005, :field_name => 'annee')
335
+ assert_dom_equal expected, select_year(2003, :start_year => 2003, :end_year => 2005, :field_name => 'annee')
336
+ end
337
+
338
+ def test_select_year_with_type_discarding
339
+ expected = %(<select id="date_year" name="date_year">\n)
340
+ expected << %(<option value="2003" selected="selected">2003</option>\n<option value="2004">2004</option>\n<option value="2005">2005</option>\n)
341
+ expected << "</select>\n"
342
+
343
+ assert_dom_equal expected, select_year(
344
+ Time.mktime(2003, 8, 16), :prefix => "date_year", :discard_type => true, :start_year => 2003, :end_year => 2005)
345
+ assert_dom_equal expected, select_year(
346
+ 2003, :prefix => "date_year", :discard_type => true, :start_year => 2003, :end_year => 2005)
347
+ end
348
+
349
+ def test_select_year_descending
350
+ expected = %(<select id="date_year" name="date[year]">\n)
351
+ expected << %(<option value="2005" selected="selected">2005</option>\n<option value="2004">2004</option>\n<option value="2003">2003</option>\n)
352
+ expected << "</select>\n"
353
+
354
+ assert_dom_equal expected, select_year(Time.mktime(2005, 8, 16), :start_year => 2005, :end_year => 2003)
355
+ assert_dom_equal expected, select_year(2005, :start_year => 2005, :end_year => 2003)
356
+ end
357
+
358
+ def test_select_year_with_hidden
359
+ assert_dom_equal "<input type=\"hidden\" id=\"date_year\" name=\"date[year]\" value=\"2007\" />\n", select_year(2007, :use_hidden => true)
360
+ end
361
+
362
+ def test_select_year_with_hidden_and_field_name
363
+ assert_dom_equal "<input type=\"hidden\" id=\"date_anno\" name=\"date[anno]\" value=\"2007\" />\n", select_year(2007, :use_hidden => true, :field_name => 'anno')
364
+ end
365
+
366
+ def test_select_year_with_html_options
367
+ expected = %(<select id="date_year" name="date[year]" class="selector" accesskey="M">\n)
368
+ expected << %(<option value="2003" selected="selected">2003</option>\n<option value="2004">2004</option>\n<option value="2005">2005</option>\n)
369
+ expected << "</select>\n"
370
+
371
+ assert_dom_equal expected, select_year(Time.mktime(2003, 8, 16), {:start_year => 2003, :end_year => 2005}, :class => 'selector', :accesskey => 'M')
372
+ #result = select_year(Time.mktime(2003, 8, 16), {:start_year => 2003, :end_year => 2005}, :class => 'selector', :accesskey => 'M')
373
+ #assert result.include?('<select id="date_year" name="date[year]"')
374
+ #assert result.include?('class="selector"')
375
+ #assert result.include?('accesskey="M"')
376
+ #assert result.include?('<option value="2003"')
377
+ end
378
+
379
+ def test_select_year_with_default_prompt
380
+ expected = %(<select id="date_year" name="date[year]">\n)
381
+ expected << %(<option value="">Year</option>\n<option value="2003">2003</option>\n<option value="2004">2004</option>\n<option value="2005">2005</option>\n)
382
+ expected << "</select>\n"
383
+
384
+ assert_dom_equal expected, select_year(nil, :start_year => 2003, :end_year => 2005, :prompt => true)
385
+ end
386
+
387
+ def test_select_year_with_custom_prompt
388
+ expected = %(<select id="date_year" name="date[year]">\n)
389
+ expected << %(<option value="">Choose year</option>\n<option value="2003">2003</option>\n<option value="2004">2004</option>\n<option value="2005">2005</option>\n)
390
+ expected << "</select>\n"
391
+
392
+ assert_dom_equal expected, select_year(nil, :start_year => 2003, :end_year => 2005, :prompt => 'Choose year')
393
+ end
394
+
395
+ def test_select_hour
396
+ expected = %(<select id="date_hour" name="date[hour]">\n)
397
+ expected << %(<option value="00">00</option>\n<option value="01">01</option>\n<option value="02">02</option>\n<option value="03">03</option>\n<option value="04">04</option>\n<option value="05">05</option>\n<option value="06">06</option>\n<option value="07">07</option>\n<option value="08" selected="selected">08</option>\n<option value="09">09</option>\n<option value="10">10</option>\n<option value="11">11</option>\n<option value="12">12</option>\n<option value="13">13</option>\n<option value="14">14</option>\n<option value="15">15</option>\n<option value="16">16</option>\n<option value="17">17</option>\n<option value="18">18</option>\n<option value="19">19</option>\n<option value="20">20</option>\n<option value="21">21</option>\n<option value="22">22</option>\n<option value="23">23</option>\n)
398
+ expected << "</select>\n"
399
+
400
+ assert_dom_equal expected, select_hour(Time.mktime(2003, 8, 16, 8, 4, 18))
401
+ end
402
+
403
+ def test_select_hour_with_disabled
404
+ expected = %(<select id="date_hour" name="date[hour]" disabled="disabled">\n)
405
+ expected << %(<option value="00">00</option>\n<option value="01">01</option>\n<option value="02">02</option>\n<option value="03">03</option>\n<option value="04">04</option>\n<option value="05">05</option>\n<option value="06">06</option>\n<option value="07">07</option>\n<option value="08" selected="selected">08</option>\n<option value="09">09</option>\n<option value="10">10</option>\n<option value="11">11</option>\n<option value="12">12</option>\n<option value="13">13</option>\n<option value="14">14</option>\n<option value="15">15</option>\n<option value="16">16</option>\n<option value="17">17</option>\n<option value="18">18</option>\n<option value="19">19</option>\n<option value="20">20</option>\n<option value="21">21</option>\n<option value="22">22</option>\n<option value="23">23</option>\n)
406
+ expected << "</select>\n"
407
+
408
+ assert_dom_equal expected, select_hour(Time.mktime(2003, 8, 16, 8, 4, 18), :disabled => true)
409
+ end
410
+
411
+ def test_select_hour_with_field_name_override
412
+ expected = %(<select id="date_heure" name="date[heure]">\n)
413
+ expected << %(<option value="00">00</option>\n<option value="01">01</option>\n<option value="02">02</option>\n<option value="03">03</option>\n<option value="04">04</option>\n<option value="05">05</option>\n<option value="06">06</option>\n<option value="07">07</option>\n<option value="08" selected="selected">08</option>\n<option value="09">09</option>\n<option value="10">10</option>\n<option value="11">11</option>\n<option value="12">12</option>\n<option value="13">13</option>\n<option value="14">14</option>\n<option value="15">15</option>\n<option value="16">16</option>\n<option value="17">17</option>\n<option value="18">18</option>\n<option value="19">19</option>\n<option value="20">20</option>\n<option value="21">21</option>\n<option value="22">22</option>\n<option value="23">23</option>\n)
414
+ expected << "</select>\n"
415
+
416
+ assert_dom_equal expected, select_hour(Time.mktime(2003, 8, 16, 8, 4, 18), :field_name => 'heure')
417
+ end
418
+
419
+ def test_select_hour_with_blank
420
+ expected = %(<select id="date_hour" name="date[hour]">\n)
421
+ expected << %(<option value=""></option>\n<option value="00">00</option>\n<option value="01">01</option>\n<option value="02">02</option>\n<option value="03">03</option>\n<option value="04">04</option>\n<option value="05">05</option>\n<option value="06">06</option>\n<option value="07">07</option>\n<option value="08" selected="selected">08</option>\n<option value="09">09</option>\n<option value="10">10</option>\n<option value="11">11</option>\n<option value="12">12</option>\n<option value="13">13</option>\n<option value="14">14</option>\n<option value="15">15</option>\n<option value="16">16</option>\n<option value="17">17</option>\n<option value="18">18</option>\n<option value="19">19</option>\n<option value="20">20</option>\n<option value="21">21</option>\n<option value="22">22</option>\n<option value="23">23</option>\n)
422
+ expected << "</select>\n"
423
+
424
+ assert_dom_equal expected, select_hour(Time.mktime(2003, 8, 16, 8, 4, 18), :include_blank => true)
425
+ end
426
+
427
+ def test_select_hour_nil_with_blank
428
+ expected = %(<select id="date_hour" name="date[hour]">\n)
429
+ expected << %(<option value=""></option>\n<option value="00">00</option>\n<option value="01">01</option>\n<option value="02">02</option>\n<option value="03">03</option>\n<option value="04">04</option>\n<option value="05">05</option>\n<option value="06">06</option>\n<option value="07">07</option>\n<option value="08">08</option>\n<option value="09">09</option>\n<option value="10">10</option>\n<option value="11">11</option>\n<option value="12">12</option>\n<option value="13">13</option>\n<option value="14">14</option>\n<option value="15">15</option>\n<option value="16">16</option>\n<option value="17">17</option>\n<option value="18">18</option>\n<option value="19">19</option>\n<option value="20">20</option>\n<option value="21">21</option>\n<option value="22">22</option>\n<option value="23">23</option>\n)
430
+ expected << "</select>\n"
431
+
432
+ assert_dom_equal expected, select_hour(nil, :include_blank => true)
433
+ end
434
+
435
+ def test_select_hour_with_html_options
436
+ expected = %(<select id="date_hour" name="date[hour]" class="selector" accesskey="M">\n)
437
+ expected << %(<option value="00">00</option>\n<option value="01">01</option>\n<option value="02">02</option>\n<option value="03">03</option>\n<option value="04">04</option>\n<option value="05">05</option>\n<option value="06">06</option>\n<option value="07">07</option>\n<option value="08" selected="selected">08</option>\n<option value="09">09</option>\n<option value="10">10</option>\n<option value="11">11</option>\n<option value="12">12</option>\n<option value="13">13</option>\n<option value="14">14</option>\n<option value="15">15</option>\n<option value="16">16</option>\n<option value="17">17</option>\n<option value="18">18</option>\n<option value="19">19</option>\n<option value="20">20</option>\n<option value="21">21</option>\n<option value="22">22</option>\n<option value="23">23</option>\n)
438
+ expected << "</select>\n"
439
+
440
+ assert_dom_equal expected, select_hour(Time.mktime(2003, 8, 16, 8, 4, 18), {}, :class => 'selector', :accesskey => 'M')
441
+ end
442
+
443
+ def test_select_hour_with_default_prompt
444
+ expected = %(<select id="date_hour" name="date[hour]">\n)
445
+ expected << %(<option value="">Hour</option>\n<option value="00">00</option>\n<option value="01">01</option>\n<option value="02">02</option>\n<option value="03">03</option>\n<option value="04">04</option>\n<option value="05">05</option>\n<option value="06">06</option>\n<option value="07">07</option>\n<option value="08" selected="selected">08</option>\n<option value="09">09</option>\n<option value="10">10</option>\n<option value="11">11</option>\n<option value="12">12</option>\n<option value="13">13</option>\n<option value="14">14</option>\n<option value="15">15</option>\n<option value="16">16</option>\n<option value="17">17</option>\n<option value="18">18</option>\n<option value="19">19</option>\n<option value="20">20</option>\n<option value="21">21</option>\n<option value="22">22</option>\n<option value="23">23</option>\n)
446
+ expected << "</select>\n"
447
+
448
+ assert_dom_equal expected, select_hour(Time.mktime(2003, 8, 16, 8, 4, 18), :prompt => true)
449
+ end
450
+
451
+ def test_select_hour_with_custom_prompt
452
+ expected = %(<select id="date_hour" name="date[hour]">\n)
453
+ expected << %(<option value="">Choose hour</option>\n<option value="00">00</option>\n<option value="01">01</option>\n<option value="02">02</option>\n<option value="03">03</option>\n<option value="04">04</option>\n<option value="05">05</option>\n<option value="06">06</option>\n<option value="07">07</option>\n<option value="08" selected="selected">08</option>\n<option value="09">09</option>\n<option value="10">10</option>\n<option value="11">11</option>\n<option value="12">12</option>\n<option value="13">13</option>\n<option value="14">14</option>\n<option value="15">15</option>\n<option value="16">16</option>\n<option value="17">17</option>\n<option value="18">18</option>\n<option value="19">19</option>\n<option value="20">20</option>\n<option value="21">21</option>\n<option value="22">22</option>\n<option value="23">23</option>\n)
454
+ expected << "</select>\n"
455
+
456
+ assert_dom_equal expected, select_hour(Time.mktime(2003, 8, 16, 8, 4, 18), :prompt => 'Choose hour')
457
+ end
458
+
459
+ def test_select_minute
460
+ expected = %(<select id="date_minute" name="date[minute]">\n)
461
+ expected << %(<option value="00">00</option>\n<option value="01">01</option>\n<option value="02">02</option>\n<option value="03">03</option>\n<option value="04" selected="selected">04</option>\n<option value="05">05</option>\n<option value="06">06</option>\n<option value="07">07</option>\n<option value="08">08</option>\n<option value="09">09</option>\n<option value="10">10</option>\n<option value="11">11</option>\n<option value="12">12</option>\n<option value="13">13</option>\n<option value="14">14</option>\n<option value="15">15</option>\n<option value="16">16</option>\n<option value="17">17</option>\n<option value="18">18</option>\n<option value="19">19</option>\n<option value="20">20</option>\n<option value="21">21</option>\n<option value="22">22</option>\n<option value="23">23</option>\n<option value="24">24</option>\n<option value="25">25</option>\n<option value="26">26</option>\n<option value="27">27</option>\n<option value="28">28</option>\n<option value="29">29</option>\n<option value="30">30</option>\n<option value="31">31</option>\n<option value="32">32</option>\n<option value="33">33</option>\n<option value="34">34</option>\n<option value="35">35</option>\n<option value="36">36</option>\n<option value="37">37</option>\n<option value="38">38</option>\n<option value="39">39</option>\n<option value="40">40</option>\n<option value="41">41</option>\n<option value="42">42</option>\n<option value="43">43</option>\n<option value="44">44</option>\n<option value="45">45</option>\n<option value="46">46</option>\n<option value="47">47</option>\n<option value="48">48</option>\n<option value="49">49</option>\n<option value="50">50</option>\n<option value="51">51</option>\n<option value="52">52</option>\n<option value="53">53</option>\n<option value="54">54</option>\n<option value="55">55</option>\n<option value="56">56</option>\n<option value="57">57</option>\n<option value="58">58</option>\n<option value="59">59</option>\n)
462
+ expected << "</select>\n"
463
+
464
+ assert_dom_equal expected, select_minute(Time.mktime(2003, 8, 16, 8, 4, 18))
465
+ end
466
+
467
+ def test_select_minute_with_disabled
468
+ expected = %(<select id="date_minute" name="date[minute]" disabled="disabled">\n)
469
+ expected << %(<option value="00">00</option>\n<option value="01">01</option>\n<option value="02">02</option>\n<option value="03">03</option>\n<option value="04" selected="selected">04</option>\n<option value="05">05</option>\n<option value="06">06</option>\n<option value="07">07</option>\n<option value="08">08</option>\n<option value="09">09</option>\n<option value="10">10</option>\n<option value="11">11</option>\n<option value="12">12</option>\n<option value="13">13</option>\n<option value="14">14</option>\n<option value="15">15</option>\n<option value="16">16</option>\n<option value="17">17</option>\n<option value="18">18</option>\n<option value="19">19</option>\n<option value="20">20</option>\n<option value="21">21</option>\n<option value="22">22</option>\n<option value="23">23</option>\n<option value="24">24</option>\n<option value="25">25</option>\n<option value="26">26</option>\n<option value="27">27</option>\n<option value="28">28</option>\n<option value="29">29</option>\n<option value="30">30</option>\n<option value="31">31</option>\n<option value="32">32</option>\n<option value="33">33</option>\n<option value="34">34</option>\n<option value="35">35</option>\n<option value="36">36</option>\n<option value="37">37</option>\n<option value="38">38</option>\n<option value="39">39</option>\n<option value="40">40</option>\n<option value="41">41</option>\n<option value="42">42</option>\n<option value="43">43</option>\n<option value="44">44</option>\n<option value="45">45</option>\n<option value="46">46</option>\n<option value="47">47</option>\n<option value="48">48</option>\n<option value="49">49</option>\n<option value="50">50</option>\n<option value="51">51</option>\n<option value="52">52</option>\n<option value="53">53</option>\n<option value="54">54</option>\n<option value="55">55</option>\n<option value="56">56</option>\n<option value="57">57</option>\n<option value="58">58</option>\n<option value="59">59</option>\n)
470
+ expected << "</select>\n"
471
+
472
+ assert_dom_equal expected, select_minute(Time.mktime(2003, 8, 16, 8, 4, 18), :disabled => true)
473
+ end
474
+
475
+ def test_select_minute_with_field_name_override
476
+ expected = %(<select id="date_minuto" name="date[minuto]">\n)
477
+ expected << %(<option value="00">00</option>\n<option value="01">01</option>\n<option value="02">02</option>\n<option value="03">03</option>\n<option value="04" selected="selected">04</option>\n<option value="05">05</option>\n<option value="06">06</option>\n<option value="07">07</option>\n<option value="08">08</option>\n<option value="09">09</option>\n<option value="10">10</option>\n<option value="11">11</option>\n<option value="12">12</option>\n<option value="13">13</option>\n<option value="14">14</option>\n<option value="15">15</option>\n<option value="16">16</option>\n<option value="17">17</option>\n<option value="18">18</option>\n<option value="19">19</option>\n<option value="20">20</option>\n<option value="21">21</option>\n<option value="22">22</option>\n<option value="23">23</option>\n<option value="24">24</option>\n<option value="25">25</option>\n<option value="26">26</option>\n<option value="27">27</option>\n<option value="28">28</option>\n<option value="29">29</option>\n<option value="30">30</option>\n<option value="31">31</option>\n<option value="32">32</option>\n<option value="33">33</option>\n<option value="34">34</option>\n<option value="35">35</option>\n<option value="36">36</option>\n<option value="37">37</option>\n<option value="38">38</option>\n<option value="39">39</option>\n<option value="40">40</option>\n<option value="41">41</option>\n<option value="42">42</option>\n<option value="43">43</option>\n<option value="44">44</option>\n<option value="45">45</option>\n<option value="46">46</option>\n<option value="47">47</option>\n<option value="48">48</option>\n<option value="49">49</option>\n<option value="50">50</option>\n<option value="51">51</option>\n<option value="52">52</option>\n<option value="53">53</option>\n<option value="54">54</option>\n<option value="55">55</option>\n<option value="56">56</option>\n<option value="57">57</option>\n<option value="58">58</option>\n<option value="59">59</option>\n)
478
+ expected << "</select>\n"
479
+
480
+ assert_dom_equal expected, select_minute(Time.mktime(2003, 8, 16, 8, 4, 18), :field_name => 'minuto')
481
+ end
482
+
483
+ def test_select_minute_with_blank
484
+ expected = %(<select id="date_minute" name="date[minute]">\n)
485
+ expected << %(<option value=""></option>\n<option value="00">00</option>\n<option value="01">01</option>\n<option value="02">02</option>\n<option value="03">03</option>\n<option value="04" selected="selected">04</option>\n<option value="05">05</option>\n<option value="06">06</option>\n<option value="07">07</option>\n<option value="08">08</option>\n<option value="09">09</option>\n<option value="10">10</option>\n<option value="11">11</option>\n<option value="12">12</option>\n<option value="13">13</option>\n<option value="14">14</option>\n<option value="15">15</option>\n<option value="16">16</option>\n<option value="17">17</option>\n<option value="18">18</option>\n<option value="19">19</option>\n<option value="20">20</option>\n<option value="21">21</option>\n<option value="22">22</option>\n<option value="23">23</option>\n<option value="24">24</option>\n<option value="25">25</option>\n<option value="26">26</option>\n<option value="27">27</option>\n<option value="28">28</option>\n<option value="29">29</option>\n<option value="30">30</option>\n<option value="31">31</option>\n<option value="32">32</option>\n<option value="33">33</option>\n<option value="34">34</option>\n<option value="35">35</option>\n<option value="36">36</option>\n<option value="37">37</option>\n<option value="38">38</option>\n<option value="39">39</option>\n<option value="40">40</option>\n<option value="41">41</option>\n<option value="42">42</option>\n<option value="43">43</option>\n<option value="44">44</option>\n<option value="45">45</option>\n<option value="46">46</option>\n<option value="47">47</option>\n<option value="48">48</option>\n<option value="49">49</option>\n<option value="50">50</option>\n<option value="51">51</option>\n<option value="52">52</option>\n<option value="53">53</option>\n<option value="54">54</option>\n<option value="55">55</option>\n<option value="56">56</option>\n<option value="57">57</option>\n<option value="58">58</option>\n<option value="59">59</option>\n)
486
+ expected << "</select>\n"
487
+
488
+ assert_dom_equal expected, select_minute(Time.mktime(2003, 8, 16, 8, 4, 18), :include_blank => true)
489
+ end
490
+
491
+ def test_select_minute_with_blank_and_step
492
+ expected = %(<select id="date_minute" name="date[minute]">\n)
493
+ expected << %(<option value=""></option>\n<option value="00">00</option>\n<option value="15">15</option>\n<option value="30">30</option>\n<option value="45">45</option>\n)
494
+ expected << "</select>\n"
495
+
496
+ assert_dom_equal expected, select_minute(Time.mktime(2003, 8, 16, 8, 4, 18), { :include_blank => true , :minute_step => 15 })
497
+ end
498
+
499
+ def test_select_minute_nil_with_blank
500
+ expected = %(<select id="date_minute" name="date[minute]">\n)
501
+ expected << %(<option value=""></option>\n<option value="00">00</option>\n<option value="01">01</option>\n<option value="02">02</option>\n<option value="03">03</option>\n<option value="04">04</option>\n<option value="05">05</option>\n<option value="06">06</option>\n<option value="07">07</option>\n<option value="08">08</option>\n<option value="09">09</option>\n<option value="10">10</option>\n<option value="11">11</option>\n<option value="12">12</option>\n<option value="13">13</option>\n<option value="14">14</option>\n<option value="15">15</option>\n<option value="16">16</option>\n<option value="17">17</option>\n<option value="18">18</option>\n<option value="19">19</option>\n<option value="20">20</option>\n<option value="21">21</option>\n<option value="22">22</option>\n<option value="23">23</option>\n<option value="24">24</option>\n<option value="25">25</option>\n<option value="26">26</option>\n<option value="27">27</option>\n<option value="28">28</option>\n<option value="29">29</option>\n<option value="30">30</option>\n<option value="31">31</option>\n<option value="32">32</option>\n<option value="33">33</option>\n<option value="34">34</option>\n<option value="35">35</option>\n<option value="36">36</option>\n<option value="37">37</option>\n<option value="38">38</option>\n<option value="39">39</option>\n<option value="40">40</option>\n<option value="41">41</option>\n<option value="42">42</option>\n<option value="43">43</option>\n<option value="44">44</option>\n<option value="45">45</option>\n<option value="46">46</option>\n<option value="47">47</option>\n<option value="48">48</option>\n<option value="49">49</option>\n<option value="50">50</option>\n<option value="51">51</option>\n<option value="52">52</option>\n<option value="53">53</option>\n<option value="54">54</option>\n<option value="55">55</option>\n<option value="56">56</option>\n<option value="57">57</option>\n<option value="58">58</option>\n<option value="59">59</option>\n)
502
+ expected << "</select>\n"
503
+
504
+ assert_dom_equal expected, select_minute(nil, :include_blank => true)
505
+ end
506
+
507
+ def test_select_minute_nil_with_blank_and_step
508
+ expected = %(<select id="date_minute" name="date[minute]">\n)
509
+ expected << %(<option value=""></option>\n<option value="00">00</option>\n<option value="15">15</option>\n<option value="30">30</option>\n<option value="45">45</option>\n)
510
+ expected << "</select>\n"
511
+
512
+ assert_dom_equal expected, select_minute(nil, { :include_blank => true , :minute_step => 15 })
513
+ end
514
+
515
+ def test_select_minute_with_hidden
516
+ assert_dom_equal "<input type=\"hidden\" id=\"date_minute\" name=\"date[minute]\" value=\"8\" />\n", select_minute(8, :use_hidden => true)
517
+ end
518
+
519
+ def test_select_minute_with_hidden_and_field_name
520
+ assert_dom_equal "<input type=\"hidden\" id=\"date_minuto\" name=\"date[minuto]\" value=\"8\" />\n", select_minute(8, :use_hidden => true, :field_name => 'minuto')
521
+ end
522
+
523
+ def test_select_minute_with_html_options
524
+ expected = expected = %(<select id="date_minute" name="date[minute]" class="selector" accesskey="M">\n)
525
+ expected << %(<option value="00">00</option>\n<option value="01">01</option>\n<option value="02">02</option>\n<option value="03">03</option>\n<option value="04" selected="selected">04</option>\n<option value="05">05</option>\n<option value="06">06</option>\n<option value="07">07</option>\n<option value="08">08</option>\n<option value="09">09</option>\n<option value="10">10</option>\n<option value="11">11</option>\n<option value="12">12</option>\n<option value="13">13</option>\n<option value="14">14</option>\n<option value="15">15</option>\n<option value="16">16</option>\n<option value="17">17</option>\n<option value="18">18</option>\n<option value="19">19</option>\n<option value="20">20</option>\n<option value="21">21</option>\n<option value="22">22</option>\n<option value="23">23</option>\n<option value="24">24</option>\n<option value="25">25</option>\n<option value="26">26</option>\n<option value="27">27</option>\n<option value="28">28</option>\n<option value="29">29</option>\n<option value="30">30</option>\n<option value="31">31</option>\n<option value="32">32</option>\n<option value="33">33</option>\n<option value="34">34</option>\n<option value="35">35</option>\n<option value="36">36</option>\n<option value="37">37</option>\n<option value="38">38</option>\n<option value="39">39</option>\n<option value="40">40</option>\n<option value="41">41</option>\n<option value="42">42</option>\n<option value="43">43</option>\n<option value="44">44</option>\n<option value="45">45</option>\n<option value="46">46</option>\n<option value="47">47</option>\n<option value="48">48</option>\n<option value="49">49</option>\n<option value="50">50</option>\n<option value="51">51</option>\n<option value="52">52</option>\n<option value="53">53</option>\n<option value="54">54</option>\n<option value="55">55</option>\n<option value="56">56</option>\n<option value="57">57</option>\n<option value="58">58</option>\n<option value="59">59</option>\n)
526
+ expected << "</select>\n"
527
+
528
+ assert_dom_equal expected, select_minute(Time.mktime(2003, 8, 16, 8, 4, 18), {}, :class => 'selector', :accesskey => 'M')
529
+
530
+ #result = select_minute(Time.mktime(2003, 8, 16, 8, 4, 18), {}, :class => 'selector', :accesskey => 'M')
531
+ #assert result.include?('<select id="date_minute" name="date[minute]"')
532
+ #assert result.include?('class="selector"')
533
+ #assert result.include?('accesskey="M"')
534
+ #assert result.include?('<option value="00">00')
535
+ end
536
+
537
+ def test_select_minute_with_default_prompt
538
+ expected = %(<select id="date_minute" name="date[minute]">\n)
539
+ expected << %(<option value="">Minute</option>\n<option value="00">00</option>\n<option value="01">01</option>\n<option value="02">02</option>\n<option value="03">03</option>\n<option value="04" selected="selected">04</option>\n<option value="05">05</option>\n<option value="06">06</option>\n<option value="07">07</option>\n<option value="08">08</option>\n<option value="09">09</option>\n<option value="10">10</option>\n<option value="11">11</option>\n<option value="12">12</option>\n<option value="13">13</option>\n<option value="14">14</option>\n<option value="15">15</option>\n<option value="16">16</option>\n<option value="17">17</option>\n<option value="18">18</option>\n<option value="19">19</option>\n<option value="20">20</option>\n<option value="21">21</option>\n<option value="22">22</option>\n<option value="23">23</option>\n<option value="24">24</option>\n<option value="25">25</option>\n<option value="26">26</option>\n<option value="27">27</option>\n<option value="28">28</option>\n<option value="29">29</option>\n<option value="30">30</option>\n<option value="31">31</option>\n<option value="32">32</option>\n<option value="33">33</option>\n<option value="34">34</option>\n<option value="35">35</option>\n<option value="36">36</option>\n<option value="37">37</option>\n<option value="38">38</option>\n<option value="39">39</option>\n<option value="40">40</option>\n<option value="41">41</option>\n<option value="42">42</option>\n<option value="43">43</option>\n<option value="44">44</option>\n<option value="45">45</option>\n<option value="46">46</option>\n<option value="47">47</option>\n<option value="48">48</option>\n<option value="49">49</option>\n<option value="50">50</option>\n<option value="51">51</option>\n<option value="52">52</option>\n<option value="53">53</option>\n<option value="54">54</option>\n<option value="55">55</option>\n<option value="56">56</option>\n<option value="57">57</option>\n<option value="58">58</option>\n<option value="59">59</option>\n)
540
+ expected << "</select>\n"
541
+
542
+ assert_dom_equal expected, select_minute(Time.mktime(2003, 8, 16, 8, 4, 18), :prompt => true)
543
+ end
544
+
545
+ def test_select_minute_with_custom_prompt
546
+ expected = %(<select id="date_minute" name="date[minute]">\n)
547
+ expected << %(<option value="">Choose minute</option>\n<option value="00">00</option>\n<option value="01">01</option>\n<option value="02">02</option>\n<option value="03">03</option>\n<option value="04" selected="selected">04</option>\n<option value="05">05</option>\n<option value="06">06</option>\n<option value="07">07</option>\n<option value="08">08</option>\n<option value="09">09</option>\n<option value="10">10</option>\n<option value="11">11</option>\n<option value="12">12</option>\n<option value="13">13</option>\n<option value="14">14</option>\n<option value="15">15</option>\n<option value="16">16</option>\n<option value="17">17</option>\n<option value="18">18</option>\n<option value="19">19</option>\n<option value="20">20</option>\n<option value="21">21</option>\n<option value="22">22</option>\n<option value="23">23</option>\n<option value="24">24</option>\n<option value="25">25</option>\n<option value="26">26</option>\n<option value="27">27</option>\n<option value="28">28</option>\n<option value="29">29</option>\n<option value="30">30</option>\n<option value="31">31</option>\n<option value="32">32</option>\n<option value="33">33</option>\n<option value="34">34</option>\n<option value="35">35</option>\n<option value="36">36</option>\n<option value="37">37</option>\n<option value="38">38</option>\n<option value="39">39</option>\n<option value="40">40</option>\n<option value="41">41</option>\n<option value="42">42</option>\n<option value="43">43</option>\n<option value="44">44</option>\n<option value="45">45</option>\n<option value="46">46</option>\n<option value="47">47</option>\n<option value="48">48</option>\n<option value="49">49</option>\n<option value="50">50</option>\n<option value="51">51</option>\n<option value="52">52</option>\n<option value="53">53</option>\n<option value="54">54</option>\n<option value="55">55</option>\n<option value="56">56</option>\n<option value="57">57</option>\n<option value="58">58</option>\n<option value="59">59</option>\n)
548
+ expected << "</select>\n"
549
+
550
+ assert_dom_equal expected, select_minute(Time.mktime(2003, 8, 16, 8, 4, 18), :prompt => 'Choose minute')
551
+ end
552
+
553
+ def test_select_second
554
+ expected = %(<select id="date_second" name="date[second]">\n)
555
+ expected << %(<option value="00">00</option>\n<option value="01">01</option>\n<option value="02">02</option>\n<option value="03">03</option>\n<option value="04">04</option>\n<option value="05">05</option>\n<option value="06">06</option>\n<option value="07">07</option>\n<option value="08">08</option>\n<option value="09">09</option>\n<option value="10">10</option>\n<option value="11">11</option>\n<option value="12">12</option>\n<option value="13">13</option>\n<option value="14">14</option>\n<option value="15">15</option>\n<option value="16">16</option>\n<option value="17">17</option>\n<option value="18" selected="selected">18</option>\n<option value="19">19</option>\n<option value="20">20</option>\n<option value="21">21</option>\n<option value="22">22</option>\n<option value="23">23</option>\n<option value="24">24</option>\n<option value="25">25</option>\n<option value="26">26</option>\n<option value="27">27</option>\n<option value="28">28</option>\n<option value="29">29</option>\n<option value="30">30</option>\n<option value="31">31</option>\n<option value="32">32</option>\n<option value="33">33</option>\n<option value="34">34</option>\n<option value="35">35</option>\n<option value="36">36</option>\n<option value="37">37</option>\n<option value="38">38</option>\n<option value="39">39</option>\n<option value="40">40</option>\n<option value="41">41</option>\n<option value="42">42</option>\n<option value="43">43</option>\n<option value="44">44</option>\n<option value="45">45</option>\n<option value="46">46</option>\n<option value="47">47</option>\n<option value="48">48</option>\n<option value="49">49</option>\n<option value="50">50</option>\n<option value="51">51</option>\n<option value="52">52</option>\n<option value="53">53</option>\n<option value="54">54</option>\n<option value="55">55</option>\n<option value="56">56</option>\n<option value="57">57</option>\n<option value="58">58</option>\n<option value="59">59</option>\n)
556
+ expected << "</select>\n"
557
+
558
+ assert_dom_equal expected, select_second(Time.mktime(2003, 8, 16, 8, 4, 18))
559
+ end
560
+
561
+ def test_select_second_with_disabled
562
+ expected = %(<select id="date_second" name="date[second]" disabled="disabled">\n)
563
+ expected << %(<option value="00">00</option>\n<option value="01">01</option>\n<option value="02">02</option>\n<option value="03">03</option>\n<option value="04">04</option>\n<option value="05">05</option>\n<option value="06">06</option>\n<option value="07">07</option>\n<option value="08">08</option>\n<option value="09">09</option>\n<option value="10">10</option>\n<option value="11">11</option>\n<option value="12">12</option>\n<option value="13">13</option>\n<option value="14">14</option>\n<option value="15">15</option>\n<option value="16">16</option>\n<option value="17">17</option>\n<option value="18" selected="selected">18</option>\n<option value="19">19</option>\n<option value="20">20</option>\n<option value="21">21</option>\n<option value="22">22</option>\n<option value="23">23</option>\n<option value="24">24</option>\n<option value="25">25</option>\n<option value="26">26</option>\n<option value="27">27</option>\n<option value="28">28</option>\n<option value="29">29</option>\n<option value="30">30</option>\n<option value="31">31</option>\n<option value="32">32</option>\n<option value="33">33</option>\n<option value="34">34</option>\n<option value="35">35</option>\n<option value="36">36</option>\n<option value="37">37</option>\n<option value="38">38</option>\n<option value="39">39</option>\n<option value="40">40</option>\n<option value="41">41</option>\n<option value="42">42</option>\n<option value="43">43</option>\n<option value="44">44</option>\n<option value="45">45</option>\n<option value="46">46</option>\n<option value="47">47</option>\n<option value="48">48</option>\n<option value="49">49</option>\n<option value="50">50</option>\n<option value="51">51</option>\n<option value="52">52</option>\n<option value="53">53</option>\n<option value="54">54</option>\n<option value="55">55</option>\n<option value="56">56</option>\n<option value="57">57</option>\n<option value="58">58</option>\n<option value="59">59</option>\n)
564
+ expected << "</select>\n"
565
+
566
+ assert_dom_equal expected, select_second(Time.mktime(2003, 8, 16, 8, 4, 18), :disabled => true)
567
+ end
568
+
569
+ def test_select_second_with_field_name_override
570
+ expected = %(<select id="date_segundo" name="date[segundo]">\n)
571
+ expected << %(<option value="00">00</option>\n<option value="01">01</option>\n<option value="02">02</option>\n<option value="03">03</option>\n<option value="04">04</option>\n<option value="05">05</option>\n<option value="06">06</option>\n<option value="07">07</option>\n<option value="08">08</option>\n<option value="09">09</option>\n<option value="10">10</option>\n<option value="11">11</option>\n<option value="12">12</option>\n<option value="13">13</option>\n<option value="14">14</option>\n<option value="15">15</option>\n<option value="16">16</option>\n<option value="17">17</option>\n<option value="18" selected="selected">18</option>\n<option value="19">19</option>\n<option value="20">20</option>\n<option value="21">21</option>\n<option value="22">22</option>\n<option value="23">23</option>\n<option value="24">24</option>\n<option value="25">25</option>\n<option value="26">26</option>\n<option value="27">27</option>\n<option value="28">28</option>\n<option value="29">29</option>\n<option value="30">30</option>\n<option value="31">31</option>\n<option value="32">32</option>\n<option value="33">33</option>\n<option value="34">34</option>\n<option value="35">35</option>\n<option value="36">36</option>\n<option value="37">37</option>\n<option value="38">38</option>\n<option value="39">39</option>\n<option value="40">40</option>\n<option value="41">41</option>\n<option value="42">42</option>\n<option value="43">43</option>\n<option value="44">44</option>\n<option value="45">45</option>\n<option value="46">46</option>\n<option value="47">47</option>\n<option value="48">48</option>\n<option value="49">49</option>\n<option value="50">50</option>\n<option value="51">51</option>\n<option value="52">52</option>\n<option value="53">53</option>\n<option value="54">54</option>\n<option value="55">55</option>\n<option value="56">56</option>\n<option value="57">57</option>\n<option value="58">58</option>\n<option value="59">59</option>\n)
572
+ expected << "</select>\n"
573
+
574
+ assert_dom_equal expected, select_second(Time.mktime(2003, 8, 16, 8, 4, 18), :field_name => 'segundo')
575
+ end
576
+
577
+ def test_select_second_with_blank
578
+ expected = %(<select id="date_second" name="date[second]">\n)
579
+ expected << %(<option value=""></option>\n<option value="00">00</option>\n<option value="01">01</option>\n<option value="02">02</option>\n<option value="03">03</option>\n<option value="04">04</option>\n<option value="05">05</option>\n<option value="06">06</option>\n<option value="07">07</option>\n<option value="08">08</option>\n<option value="09">09</option>\n<option value="10">10</option>\n<option value="11">11</option>\n<option value="12">12</option>\n<option value="13">13</option>\n<option value="14">14</option>\n<option value="15">15</option>\n<option value="16">16</option>\n<option value="17">17</option>\n<option value="18" selected="selected">18</option>\n<option value="19">19</option>\n<option value="20">20</option>\n<option value="21">21</option>\n<option value="22">22</option>\n<option value="23">23</option>\n<option value="24">24</option>\n<option value="25">25</option>\n<option value="26">26</option>\n<option value="27">27</option>\n<option value="28">28</option>\n<option value="29">29</option>\n<option value="30">30</option>\n<option value="31">31</option>\n<option value="32">32</option>\n<option value="33">33</option>\n<option value="34">34</option>\n<option value="35">35</option>\n<option value="36">36</option>\n<option value="37">37</option>\n<option value="38">38</option>\n<option value="39">39</option>\n<option value="40">40</option>\n<option value="41">41</option>\n<option value="42">42</option>\n<option value="43">43</option>\n<option value="44">44</option>\n<option value="45">45</option>\n<option value="46">46</option>\n<option value="47">47</option>\n<option value="48">48</option>\n<option value="49">49</option>\n<option value="50">50</option>\n<option value="51">51</option>\n<option value="52">52</option>\n<option value="53">53</option>\n<option value="54">54</option>\n<option value="55">55</option>\n<option value="56">56</option>\n<option value="57">57</option>\n<option value="58">58</option>\n<option value="59">59</option>\n)
580
+ expected << "</select>\n"
581
+
582
+ assert_dom_equal expected, select_second(Time.mktime(2003, 8, 16, 8, 4, 18), :include_blank => true)
583
+ end
584
+
585
+ def test_select_second_nil_with_blank
586
+ expected = %(<select id="date_second" name="date[second]">\n)
587
+ expected << %(<option value=""></option>\n<option value="00">00</option>\n<option value="01">01</option>\n<option value="02">02</option>\n<option value="03">03</option>\n<option value="04">04</option>\n<option value="05">05</option>\n<option value="06">06</option>\n<option value="07">07</option>\n<option value="08">08</option>\n<option value="09">09</option>\n<option value="10">10</option>\n<option value="11">11</option>\n<option value="12">12</option>\n<option value="13">13</option>\n<option value="14">14</option>\n<option value="15">15</option>\n<option value="16">16</option>\n<option value="17">17</option>\n<option value="18">18</option>\n<option value="19">19</option>\n<option value="20">20</option>\n<option value="21">21</option>\n<option value="22">22</option>\n<option value="23">23</option>\n<option value="24">24</option>\n<option value="25">25</option>\n<option value="26">26</option>\n<option value="27">27</option>\n<option value="28">28</option>\n<option value="29">29</option>\n<option value="30">30</option>\n<option value="31">31</option>\n<option value="32">32</option>\n<option value="33">33</option>\n<option value="34">34</option>\n<option value="35">35</option>\n<option value="36">36</option>\n<option value="37">37</option>\n<option value="38">38</option>\n<option value="39">39</option>\n<option value="40">40</option>\n<option value="41">41</option>\n<option value="42">42</option>\n<option value="43">43</option>\n<option value="44">44</option>\n<option value="45">45</option>\n<option value="46">46</option>\n<option value="47">47</option>\n<option value="48">48</option>\n<option value="49">49</option>\n<option value="50">50</option>\n<option value="51">51</option>\n<option value="52">52</option>\n<option value="53">53</option>\n<option value="54">54</option>\n<option value="55">55</option>\n<option value="56">56</option>\n<option value="57">57</option>\n<option value="58">58</option>\n<option value="59">59</option>\n)
588
+ expected << "</select>\n"
589
+
590
+ assert_dom_equal expected, select_second(nil, :include_blank => true)
591
+ end
592
+
593
+ def test_select_second_with_html_options
594
+ expected = %(<select id="date_second" name="date[second]" class="selector" accesskey="M">\n)
595
+ expected << %(<option value="00">00</option>\n<option value="01">01</option>\n<option value="02">02</option>\n<option value="03">03</option>\n<option value="04">04</option>\n<option value="05">05</option>\n<option value="06">06</option>\n<option value="07">07</option>\n<option value="08">08</option>\n<option value="09">09</option>\n<option value="10">10</option>\n<option value="11">11</option>\n<option value="12">12</option>\n<option value="13">13</option>\n<option value="14">14</option>\n<option value="15">15</option>\n<option value="16">16</option>\n<option value="17">17</option>\n<option value="18" selected="selected">18</option>\n<option value="19">19</option>\n<option value="20">20</option>\n<option value="21">21</option>\n<option value="22">22</option>\n<option value="23">23</option>\n<option value="24">24</option>\n<option value="25">25</option>\n<option value="26">26</option>\n<option value="27">27</option>\n<option value="28">28</option>\n<option value="29">29</option>\n<option value="30">30</option>\n<option value="31">31</option>\n<option value="32">32</option>\n<option value="33">33</option>\n<option value="34">34</option>\n<option value="35">35</option>\n<option value="36">36</option>\n<option value="37">37</option>\n<option value="38">38</option>\n<option value="39">39</option>\n<option value="40">40</option>\n<option value="41">41</option>\n<option value="42">42</option>\n<option value="43">43</option>\n<option value="44">44</option>\n<option value="45">45</option>\n<option value="46">46</option>\n<option value="47">47</option>\n<option value="48">48</option>\n<option value="49">49</option>\n<option value="50">50</option>\n<option value="51">51</option>\n<option value="52">52</option>\n<option value="53">53</option>\n<option value="54">54</option>\n<option value="55">55</option>\n<option value="56">56</option>\n<option value="57">57</option>\n<option value="58">58</option>\n<option value="59">59</option>\n)
596
+ expected << "</select>\n"
597
+
598
+ assert_dom_equal expected, select_second(Time.mktime(2003, 8, 16, 8, 4, 18), {}, :class => 'selector', :accesskey => 'M')
599
+
600
+ #result = select_second(Time.mktime(2003, 8, 16, 8, 4, 18), {}, :class => 'selector', :accesskey => 'M')
601
+ #assert result.include?('<select id="date_second" name="date[second]"')
602
+ #assert result.include?('class="selector"')
603
+ #assert result.include?('accesskey="M"')
604
+ #assert result.include?('<option value="00">00')
605
+ end
606
+
607
+ def test_select_second_with_default_prompt
608
+ expected = %(<select id="date_second" name="date[second]">\n)
609
+ expected << %(<option value="">Seconds</option>\n<option value="00">00</option>\n<option value="01">01</option>\n<option value="02">02</option>\n<option value="03">03</option>\n<option value="04">04</option>\n<option value="05">05</option>\n<option value="06">06</option>\n<option value="07">07</option>\n<option value="08">08</option>\n<option value="09">09</option>\n<option value="10">10</option>\n<option value="11">11</option>\n<option value="12">12</option>\n<option value="13">13</option>\n<option value="14">14</option>\n<option value="15">15</option>\n<option value="16">16</option>\n<option value="17">17</option>\n<option value="18" selected="selected">18</option>\n<option value="19">19</option>\n<option value="20">20</option>\n<option value="21">21</option>\n<option value="22">22</option>\n<option value="23">23</option>\n<option value="24">24</option>\n<option value="25">25</option>\n<option value="26">26</option>\n<option value="27">27</option>\n<option value="28">28</option>\n<option value="29">29</option>\n<option value="30">30</option>\n<option value="31">31</option>\n<option value="32">32</option>\n<option value="33">33</option>\n<option value="34">34</option>\n<option value="35">35</option>\n<option value="36">36</option>\n<option value="37">37</option>\n<option value="38">38</option>\n<option value="39">39</option>\n<option value="40">40</option>\n<option value="41">41</option>\n<option value="42">42</option>\n<option value="43">43</option>\n<option value="44">44</option>\n<option value="45">45</option>\n<option value="46">46</option>\n<option value="47">47</option>\n<option value="48">48</option>\n<option value="49">49</option>\n<option value="50">50</option>\n<option value="51">51</option>\n<option value="52">52</option>\n<option value="53">53</option>\n<option value="54">54</option>\n<option value="55">55</option>\n<option value="56">56</option>\n<option value="57">57</option>\n<option value="58">58</option>\n<option value="59">59</option>\n)
610
+ expected << "</select>\n"
611
+
612
+ assert_dom_equal expected, select_second(Time.mktime(2003, 8, 16, 8, 4, 18), :prompt => true)
613
+ end
614
+
615
+ def test_select_second_with_custom_prompt
616
+ expected = %(<select id="date_second" name="date[second]">\n)
617
+ expected << %(<option value="">Choose seconds</option>\n<option value="00">00</option>\n<option value="01">01</option>\n<option value="02">02</option>\n<option value="03">03</option>\n<option value="04">04</option>\n<option value="05">05</option>\n<option value="06">06</option>\n<option value="07">07</option>\n<option value="08">08</option>\n<option value="09">09</option>\n<option value="10">10</option>\n<option value="11">11</option>\n<option value="12">12</option>\n<option value="13">13</option>\n<option value="14">14</option>\n<option value="15">15</option>\n<option value="16">16</option>\n<option value="17">17</option>\n<option value="18" selected="selected">18</option>\n<option value="19">19</option>\n<option value="20">20</option>\n<option value="21">21</option>\n<option value="22">22</option>\n<option value="23">23</option>\n<option value="24">24</option>\n<option value="25">25</option>\n<option value="26">26</option>\n<option value="27">27</option>\n<option value="28">28</option>\n<option value="29">29</option>\n<option value="30">30</option>\n<option value="31">31</option>\n<option value="32">32</option>\n<option value="33">33</option>\n<option value="34">34</option>\n<option value="35">35</option>\n<option value="36">36</option>\n<option value="37">37</option>\n<option value="38">38</option>\n<option value="39">39</option>\n<option value="40">40</option>\n<option value="41">41</option>\n<option value="42">42</option>\n<option value="43">43</option>\n<option value="44">44</option>\n<option value="45">45</option>\n<option value="46">46</option>\n<option value="47">47</option>\n<option value="48">48</option>\n<option value="49">49</option>\n<option value="50">50</option>\n<option value="51">51</option>\n<option value="52">52</option>\n<option value="53">53</option>\n<option value="54">54</option>\n<option value="55">55</option>\n<option value="56">56</option>\n<option value="57">57</option>\n<option value="58">58</option>\n<option value="59">59</option>\n)
618
+ expected << "</select>\n"
619
+
620
+ assert_dom_equal expected, select_second(Time.mktime(2003, 8, 16, 8, 4, 18), :prompt => 'Choose seconds')
621
+ end
622
+
623
+ def test_select_date
624
+ expected = %(<select id="date_first_year" name="date[first][year]">\n)
625
+ expected << %(<option value="2003" selected="selected">2003</option>\n<option value="2004">2004</option>\n<option value="2005">2005</option>\n)
626
+ expected << "</select>\n"
627
+
628
+ expected << %(<select id="date_first_month" name="date[first][month]">\n)
629
+ expected << %(<option value="1">January</option>\n<option value="2">February</option>\n<option value="3">March</option>\n<option value="4">April</option>\n<option value="5">May</option>\n<option value="6">June</option>\n<option value="7">July</option>\n<option value="8" selected="selected">August</option>\n<option value="9">September</option>\n<option value="10">October</option>\n<option value="11">November</option>\n<option value="12">December</option>\n)
630
+ expected << "</select>\n"
631
+
632
+ expected << %(<select id="date_first_day" name="date[first][day]">\n)
633
+ expected << %(<option value="1">1</option>\n<option value="2">2</option>\n<option value="3">3</option>\n<option value="4">4</option>\n<option value="5">5</option>\n<option value="6">6</option>\n<option value="7">7</option>\n<option value="8">8</option>\n<option value="9">9</option>\n<option value="10">10</option>\n<option value="11">11</option>\n<option value="12">12</option>\n<option value="13">13</option>\n<option value="14">14</option>\n<option value="15">15</option>\n<option value="16" selected="selected">16</option>\n<option value="17">17</option>\n<option value="18">18</option>\n<option value="19">19</option>\n<option value="20">20</option>\n<option value="21">21</option>\n<option value="22">22</option>\n<option value="23">23</option>\n<option value="24">24</option>\n<option value="25">25</option>\n<option value="26">26</option>\n<option value="27">27</option>\n<option value="28">28</option>\n<option value="29">29</option>\n<option value="30">30</option>\n<option value="31">31</option>\n)
634
+ expected << "</select>\n"
635
+
636
+ assert_dom_equal expected, select_date(Time.mktime(2003, 8, 16), :start_year => 2003, :end_year => 2005, :prefix => "date[first]")
637
+ end
638
+
639
+ def test_select_date_with_order
640
+ expected = %(<select id="date_first_month" name="date[first][month]">\n)
641
+ expected << %(<option value="1">January</option>\n<option value="2">February</option>\n<option value="3">March</option>\n<option value="4">April</option>\n<option value="5">May</option>\n<option value="6">June</option>\n<option value="7">July</option>\n<option value="8" selected="selected">August</option>\n<option value="9">September</option>\n<option value="10">October</option>\n<option value="11">November</option>\n<option value="12">December</option>\n)
642
+ expected << "</select>\n"
643
+
644
+ expected << %(<select id="date_first_day" name="date[first][day]">\n)
645
+ expected << %(<option value="1">1</option>\n<option value="2">2</option>\n<option value="3">3</option>\n<option value="4">4</option>\n<option value="5">5</option>\n<option value="6">6</option>\n<option value="7">7</option>\n<option value="8">8</option>\n<option value="9">9</option>\n<option value="10">10</option>\n<option value="11">11</option>\n<option value="12">12</option>\n<option value="13">13</option>\n<option value="14">14</option>\n<option value="15">15</option>\n<option value="16" selected="selected">16</option>\n<option value="17">17</option>\n<option value="18">18</option>\n<option value="19">19</option>\n<option value="20">20</option>\n<option value="21">21</option>\n<option value="22">22</option>\n<option value="23">23</option>\n<option value="24">24</option>\n<option value="25">25</option>\n<option value="26">26</option>\n<option value="27">27</option>\n<option value="28">28</option>\n<option value="29">29</option>\n<option value="30">30</option>\n<option value="31">31</option>\n)
646
+ expected << "</select>\n"
647
+
648
+ expected << %(<select id="date_first_year" name="date[first][year]">\n)
649
+ expected << %(<option value="2003" selected="selected">2003</option>\n<option value="2004">2004</option>\n<option value="2005">2005</option>\n)
650
+ expected << "</select>\n"
651
+
652
+ assert_dom_equal expected, select_date(Time.mktime(2003, 8, 16), :start_year => 2003, :end_year => 2005, :prefix => "date[first]", :order => [:month, :day, :year])
653
+ end
654
+
655
+ def test_select_date_with_incomplete_order
656
+ # NOTE: modified this test because of minimal API change
657
+ expected = %(<select id="date_first_year" name="date[first][year]">\n)
658
+ expected << %(<option value="2003" selected="selected">2003</option>\n<option value="2004">2004</option>\n<option value="2005">2005</option>\n)
659
+ expected << "</select>\n"
660
+
661
+ expected << %(<select id="date_first_month" name="date[first][month]">\n)
662
+ expected << %(<option value="1">January</option>\n<option value="2">February</option>\n<option value="3">March</option>\n<option value="4">April</option>\n<option value="5">May</option>\n<option value="6">June</option>\n<option value="7">July</option>\n<option value="8" selected="selected">August</option>\n<option value="9">September</option>\n<option value="10">October</option>\n<option value="11">November</option>\n<option value="12">December</option>\n)
663
+ expected << "</select>\n"
664
+
665
+ expected << %(<select id="date_first_day" name="date[first][day]">\n)
666
+ expected << %(<option value="1">1</option>\n<option value="2">2</option>\n<option value="3">3</option>\n<option value="4">4</option>\n<option value="5">5</option>\n<option value="6">6</option>\n<option value="7">7</option>\n<option value="8">8</option>\n<option value="9">9</option>\n<option value="10">10</option>\n<option value="11">11</option>\n<option value="12">12</option>\n<option value="13">13</option>\n<option value="14">14</option>\n<option value="15">15</option>\n<option value="16" selected="selected">16</option>\n<option value="17">17</option>\n<option value="18">18</option>\n<option value="19">19</option>\n<option value="20">20</option>\n<option value="21">21</option>\n<option value="22">22</option>\n<option value="23">23</option>\n<option value="24">24</option>\n<option value="25">25</option>\n<option value="26">26</option>\n<option value="27">27</option>\n<option value="28">28</option>\n<option value="29">29</option>\n<option value="30">30</option>\n<option value="31">31</option>\n)
667
+ expected << "</select>\n"
668
+
669
+ assert_dom_equal expected, select_date(Time.mktime(2003, 8, 16), :start_year => 2003, :end_year => 2005, :prefix => "date[first]", :order => [:day])
670
+ end
671
+
672
+ def test_select_date_with_disabled
673
+ expected = %(<select id="date_first_year" name="date[first][year]" disabled="disabled">\n)
674
+ expected << %(<option value="2003" selected="selected">2003</option>\n<option value="2004">2004</option>\n<option value="2005">2005</option>\n)
675
+ expected << "</select>\n"
676
+
677
+ expected << %(<select id="date_first_month" name="date[first][month]" disabled="disabled">\n)
678
+ expected << %(<option value="1">January</option>\n<option value="2">February</option>\n<option value="3">March</option>\n<option value="4">April</option>\n<option value="5">May</option>\n<option value="6">June</option>\n<option value="7">July</option>\n<option value="8" selected="selected">August</option>\n<option value="9">September</option>\n<option value="10">October</option>\n<option value="11">November</option>\n<option value="12">December</option>\n)
679
+ expected << "</select>\n"
680
+
681
+ expected << %(<select id="date_first_day" name="date[first][day]" disabled="disabled">\n)
682
+ expected << %(<option value="1">1</option>\n<option value="2">2</option>\n<option value="3">3</option>\n<option value="4">4</option>\n<option value="5">5</option>\n<option value="6">6</option>\n<option value="7">7</option>\n<option value="8">8</option>\n<option value="9">9</option>\n<option value="10">10</option>\n<option value="11">11</option>\n<option value="12">12</option>\n<option value="13">13</option>\n<option value="14">14</option>\n<option value="15">15</option>\n<option value="16" selected="selected">16</option>\n<option value="17">17</option>\n<option value="18">18</option>\n<option value="19">19</option>\n<option value="20">20</option>\n<option value="21">21</option>\n<option value="22">22</option>\n<option value="23">23</option>\n<option value="24">24</option>\n<option value="25">25</option>\n<option value="26">26</option>\n<option value="27">27</option>\n<option value="28">28</option>\n<option value="29">29</option>\n<option value="30">30</option>\n<option value="31">31</option>\n)
683
+ expected << "</select>\n"
684
+
685
+ assert_dom_equal expected, select_date(Time.mktime(2003, 8, 16), :start_year => 2003, :end_year => 2005, :prefix => "date[first]", :disabled => true)
686
+ end
687
+
688
+ def test_select_date_with_no_start_year
689
+ expected = %(<select id="date_first_year" name="date[first][year]">\n)
690
+ (Date.today.year-5).upto(Date.today.year+1) do |y|
691
+ if y == Date.today.year
692
+ expected << %(<option value="#{y}" selected="selected">#{y}</option>\n)
693
+ else
694
+ expected << %(<option value="#{y}">#{y}</option>\n)
695
+ end
696
+ end
697
+ expected << "</select>\n"
698
+
699
+ expected << %(<select id="date_first_month" name="date[first][month]">\n)
700
+ expected << %(<option value="1">January</option>\n<option value="2">February</option>\n<option value="3">March</option>\n<option value="4">April</option>\n<option value="5">May</option>\n<option value="6">June</option>\n<option value="7">July</option>\n<option value="8" selected="selected">August</option>\n<option value="9">September</option>\n<option value="10">October</option>\n<option value="11">November</option>\n<option value="12">December</option>\n)
701
+ expected << "</select>\n"
702
+
703
+ expected << %(<select id="date_first_day" name="date[first][day]">\n)
704
+ expected << %(<option value="1">1</option>\n<option value="2">2</option>\n<option value="3">3</option>\n<option value="4">4</option>\n<option value="5">5</option>\n<option value="6">6</option>\n<option value="7">7</option>\n<option value="8">8</option>\n<option value="9">9</option>\n<option value="10">10</option>\n<option value="11">11</option>\n<option value="12">12</option>\n<option value="13">13</option>\n<option value="14">14</option>\n<option value="15">15</option>\n<option value="16" selected="selected">16</option>\n<option value="17">17</option>\n<option value="18">18</option>\n<option value="19">19</option>\n<option value="20">20</option>\n<option value="21">21</option>\n<option value="22">22</option>\n<option value="23">23</option>\n<option value="24">24</option>\n<option value="25">25</option>\n<option value="26">26</option>\n<option value="27">27</option>\n<option value="28">28</option>\n<option value="29">29</option>\n<option value="30">30</option>\n<option value="31">31</option>\n)
705
+ expected << "</select>\n"
706
+
707
+ assert_dom_equal expected, select_date(
708
+ Time.mktime(Date.today.year, 8, 16), :end_year => Date.today.year+1, :prefix => "date[first]"
709
+ )
710
+ end
711
+
712
+ def test_select_date_with_no_end_year
713
+ expected = %(<select id="date_first_year" name="date[first][year]">\n)
714
+ 2003.upto(2008) do |y|
715
+ if y == 2003
716
+ expected << %(<option value="#{y}" selected="selected">#{y}</option>\n)
717
+ else
718
+ expected << %(<option value="#{y}">#{y}</option>\n)
719
+ end
720
+ end
721
+ expected << "</select>\n"
722
+
723
+ expected << %(<select id="date_first_month" name="date[first][month]">\n)
724
+ expected << %(<option value="1">January</option>\n<option value="2">February</option>\n<option value="3">March</option>\n<option value="4">April</option>\n<option value="5">May</option>\n<option value="6">June</option>\n<option value="7">July</option>\n<option value="8" selected="selected">August</option>\n<option value="9">September</option>\n<option value="10">October</option>\n<option value="11">November</option>\n<option value="12">December</option>\n)
725
+ expected << "</select>\n"
726
+
727
+ expected << %(<select id="date_first_day" name="date[first][day]">\n)
728
+ expected << %(<option value="1">1</option>\n<option value="2">2</option>\n<option value="3">3</option>\n<option value="4">4</option>\n<option value="5">5</option>\n<option value="6">6</option>\n<option value="7">7</option>\n<option value="8">8</option>\n<option value="9">9</option>\n<option value="10">10</option>\n<option value="11">11</option>\n<option value="12">12</option>\n<option value="13">13</option>\n<option value="14">14</option>\n<option value="15">15</option>\n<option value="16" selected="selected">16</option>\n<option value="17">17</option>\n<option value="18">18</option>\n<option value="19">19</option>\n<option value="20">20</option>\n<option value="21">21</option>\n<option value="22">22</option>\n<option value="23">23</option>\n<option value="24">24</option>\n<option value="25">25</option>\n<option value="26">26</option>\n<option value="27">27</option>\n<option value="28">28</option>\n<option value="29">29</option>\n<option value="30">30</option>\n<option value="31">31</option>\n)
729
+ expected << "</select>\n"
730
+
731
+ assert_dom_equal expected, select_date(
732
+ Time.mktime(2003, 8, 16), :start_year => 2003, :prefix => "date[first]"
733
+ )
734
+ end
735
+
736
+ def test_select_date_with_no_start_or_end_year
737
+ expected = %(<select id="date_first_year" name="date[first][year]">\n)
738
+ (Date.today.year-5).upto(Date.today.year+5) do |y|
739
+ if y == Date.today.year
740
+ expected << %(<option value="#{y}" selected="selected">#{y}</option>\n)
741
+ else
742
+ expected << %(<option value="#{y}">#{y}</option>\n)
743
+ end
744
+ end
745
+ expected << "</select>\n"
746
+
747
+ expected << %(<select id="date_first_month" name="date[first][month]">\n)
748
+ expected << %(<option value="1">January</option>\n<option value="2">February</option>\n<option value="3">March</option>\n<option value="4">April</option>\n<option value="5">May</option>\n<option value="6">June</option>\n<option value="7">July</option>\n<option value="8" selected="selected">August</option>\n<option value="9">September</option>\n<option value="10">October</option>\n<option value="11">November</option>\n<option value="12">December</option>\n)
749
+ expected << "</select>\n"
750
+
751
+ expected << %(<select id="date_first_day" name="date[first][day]">\n)
752
+ expected << %(<option value="1">1</option>\n<option value="2">2</option>\n<option value="3">3</option>\n<option value="4">4</option>\n<option value="5">5</option>\n<option value="6">6</option>\n<option value="7">7</option>\n<option value="8">8</option>\n<option value="9">9</option>\n<option value="10">10</option>\n<option value="11">11</option>\n<option value="12">12</option>\n<option value="13">13</option>\n<option value="14">14</option>\n<option value="15">15</option>\n<option value="16" selected="selected">16</option>\n<option value="17">17</option>\n<option value="18">18</option>\n<option value="19">19</option>\n<option value="20">20</option>\n<option value="21">21</option>\n<option value="22">22</option>\n<option value="23">23</option>\n<option value="24">24</option>\n<option value="25">25</option>\n<option value="26">26</option>\n<option value="27">27</option>\n<option value="28">28</option>\n<option value="29">29</option>\n<option value="30">30</option>\n<option value="31">31</option>\n)
753
+ expected << "</select>\n"
754
+
755
+ assert_dom_equal expected, select_date(
756
+ Time.mktime(Date.today.year, 8, 16), :prefix => "date[first]"
757
+ )
758
+ end
759
+
760
+ def test_select_date_with_zero_value
761
+ expected = %(<select id="date_first_year" name="date[first][year]">\n)
762
+ expected << %(<option value="2003">2003</option>\n<option value="2004">2004</option>\n<option value="2005">2005</option>\n)
763
+ expected << "</select>\n"
764
+
765
+ expected << %(<select id="date_first_month" name="date[first][month]">\n)
766
+ expected << %(<option value="1">January</option>\n<option value="2">February</option>\n<option value="3">March</option>\n<option value="4">April</option>\n<option value="5">May</option>\n<option value="6">June</option>\n<option value="7">July</option>\n<option value="8">August</option>\n<option value="9">September</option>\n<option value="10">October</option>\n<option value="11">November</option>\n<option value="12">December</option>\n)
767
+ expected << "</select>\n"
768
+
769
+ expected << %(<select id="date_first_day" name="date[first][day]">\n)
770
+ expected << %(<option value="1">1</option>\n<option value="2">2</option>\n<option value="3">3</option>\n<option value="4">4</option>\n<option value="5">5</option>\n<option value="6">6</option>\n<option value="7">7</option>\n<option value="8">8</option>\n<option value="9">9</option>\n<option value="10">10</option>\n<option value="11">11</option>\n<option value="12">12</option>\n<option value="13">13</option>\n<option value="14">14</option>\n<option value="15">15</option>\n<option value="16">16</option>\n<option value="17">17</option>\n<option value="18">18</option>\n<option value="19">19</option>\n<option value="20">20</option>\n<option value="21">21</option>\n<option value="22">22</option>\n<option value="23">23</option>\n<option value="24">24</option>\n<option value="25">25</option>\n<option value="26">26</option>\n<option value="27">27</option>\n<option value="28">28</option>\n<option value="29">29</option>\n<option value="30">30</option>\n<option value="31">31</option>\n)
771
+ expected << "</select>\n"
772
+
773
+ assert_dom_equal expected, select_date(0, :start_year => 2003, :end_year => 2005, :prefix => "date[first]")
774
+ end
775
+
776
+ def test_select_date_with_zero_value_and_no_start_year
777
+ expected = %(<select id="date_first_year" name="date[first][year]">\n)
778
+ (Date.today.year-5).upto(Date.today.year+1) { |y| expected << %(<option value="#{y}">#{y}</option>\n) }
779
+ expected << "</select>\n"
780
+
781
+ expected << %(<select id="date_first_month" name="date[first][month]">\n)
782
+ expected << %(<option value="1">January</option>\n<option value="2">February</option>\n<option value="3">March</option>\n<option value="4">April</option>\n<option value="5">May</option>\n<option value="6">June</option>\n<option value="7">July</option>\n<option value="8">August</option>\n<option value="9">September</option>\n<option value="10">October</option>\n<option value="11">November</option>\n<option value="12">December</option>\n)
783
+ expected << "</select>\n"
784
+
785
+ expected << %(<select id="date_first_day" name="date[first][day]">\n)
786
+ expected << %(<option value="1">1</option>\n<option value="2">2</option>\n<option value="3">3</option>\n<option value="4">4</option>\n<option value="5">5</option>\n<option value="6">6</option>\n<option value="7">7</option>\n<option value="8">8</option>\n<option value="9">9</option>\n<option value="10">10</option>\n<option value="11">11</option>\n<option value="12">12</option>\n<option value="13">13</option>\n<option value="14">14</option>\n<option value="15">15</option>\n<option value="16">16</option>\n<option value="17">17</option>\n<option value="18">18</option>\n<option value="19">19</option>\n<option value="20">20</option>\n<option value="21">21</option>\n<option value="22">22</option>\n<option value="23">23</option>\n<option value="24">24</option>\n<option value="25">25</option>\n<option value="26">26</option>\n<option value="27">27</option>\n<option value="28">28</option>\n<option value="29">29</option>\n<option value="30">30</option>\n<option value="31">31</option>\n)
787
+ expected << "</select>\n"
788
+
789
+ assert_dom_equal expected, select_date(0, :end_year => Date.today.year+1, :prefix => "date[first]")
790
+ end
791
+
792
+ def test_select_date_with_zero_value_and_no_end_year
793
+ expected = %(<select id="date_first_year" name="date[first][year]">\n)
794
+ last_year = Time.now.year + 5
795
+ 2003.upto(last_year) { |y| expected << %(<option value="#{y}">#{y}</option>\n) }
796
+ expected << "</select>\n"
797
+
798
+ expected << %(<select id="date_first_month" name="date[first][month]">\n)
799
+ expected << %(<option value="1">January</option>\n<option value="2">February</option>\n<option value="3">March</option>\n<option value="4">April</option>\n<option value="5">May</option>\n<option value="6">June</option>\n<option value="7">July</option>\n<option value="8">August</option>\n<option value="9">September</option>\n<option value="10">October</option>\n<option value="11">November</option>\n<option value="12">December</option>\n)
800
+ expected << "</select>\n"
801
+
802
+ expected << %(<select id="date_first_day" name="date[first][day]">\n)
803
+ expected << %(<option value="1">1</option>\n<option value="2">2</option>\n<option value="3">3</option>\n<option value="4">4</option>\n<option value="5">5</option>\n<option value="6">6</option>\n<option value="7">7</option>\n<option value="8">8</option>\n<option value="9">9</option>\n<option value="10">10</option>\n<option value="11">11</option>\n<option value="12">12</option>\n<option value="13">13</option>\n<option value="14">14</option>\n<option value="15">15</option>\n<option value="16">16</option>\n<option value="17">17</option>\n<option value="18">18</option>\n<option value="19">19</option>\n<option value="20">20</option>\n<option value="21">21</option>\n<option value="22">22</option>\n<option value="23">23</option>\n<option value="24">24</option>\n<option value="25">25</option>\n<option value="26">26</option>\n<option value="27">27</option>\n<option value="28">28</option>\n<option value="29">29</option>\n<option value="30">30</option>\n<option value="31">31</option>\n)
804
+ expected << "</select>\n"
805
+
806
+ assert_dom_equal expected, select_date(0, :start_year => 2003, :prefix => "date[first]")
807
+ end
808
+
809
+ def test_select_date_with_zero_value_and_no_start_and_end_year
810
+ expected = %(<select id="date_first_year" name="date[first][year]">\n)
811
+ (Date.today.year-5).upto(Date.today.year+5) { |y| expected << %(<option value="#{y}">#{y}</option>\n) }
812
+ expected << "</select>\n"
813
+
814
+ expected << %(<select id="date_first_month" name="date[first][month]">\n)
815
+ expected << %(<option value="1">January</option>\n<option value="2">February</option>\n<option value="3">March</option>\n<option value="4">April</option>\n<option value="5">May</option>\n<option value="6">June</option>\n<option value="7">July</option>\n<option value="8">August</option>\n<option value="9">September</option>\n<option value="10">October</option>\n<option value="11">November</option>\n<option value="12">December</option>\n)
816
+ expected << "</select>\n"
817
+
818
+ expected << %(<select id="date_first_day" name="date[first][day]">\n)
819
+ expected << %(<option value="1">1</option>\n<option value="2">2</option>\n<option value="3">3</option>\n<option value="4">4</option>\n<option value="5">5</option>\n<option value="6">6</option>\n<option value="7">7</option>\n<option value="8">8</option>\n<option value="9">9</option>\n<option value="10">10</option>\n<option value="11">11</option>\n<option value="12">12</option>\n<option value="13">13</option>\n<option value="14">14</option>\n<option value="15">15</option>\n<option value="16">16</option>\n<option value="17">17</option>\n<option value="18">18</option>\n<option value="19">19</option>\n<option value="20">20</option>\n<option value="21">21</option>\n<option value="22">22</option>\n<option value="23">23</option>\n<option value="24">24</option>\n<option value="25">25</option>\n<option value="26">26</option>\n<option value="27">27</option>\n<option value="28">28</option>\n<option value="29">29</option>\n<option value="30">30</option>\n<option value="31">31</option>\n)
820
+ expected << "</select>\n"
821
+
822
+ assert_dom_equal expected, select_date(0, :prefix => "date[first]")
823
+ end
824
+
825
+ def test_select_date_with_nil_value_and_no_start_and_end_year
826
+ expected = %(<select id="date_first_year" name="date[first][year]">\n)
827
+ (Date.today.year-5).upto(Date.today.year+5) { |y| expected << %(<option value="#{y}">#{y}</option>\n) }
828
+ expected << "</select>\n"
829
+
830
+ expected << %(<select id="date_first_month" name="date[first][month]">\n)
831
+ expected << %(<option value="1">January</option>\n<option value="2">February</option>\n<option value="3">March</option>\n<option value="4">April</option>\n<option value="5">May</option>\n<option value="6">June</option>\n<option value="7">July</option>\n<option value="8">August</option>\n<option value="9">September</option>\n<option value="10">October</option>\n<option value="11">November</option>\n<option value="12">December</option>\n)
832
+ expected << "</select>\n"
833
+
834
+ expected << %(<select id="date_first_day" name="date[first][day]">\n)
835
+ expected << %(<option value="1">1</option>\n<option value="2">2</option>\n<option value="3">3</option>\n<option value="4">4</option>\n<option value="5">5</option>\n<option value="6">6</option>\n<option value="7">7</option>\n<option value="8">8</option>\n<option value="9">9</option>\n<option value="10">10</option>\n<option value="11">11</option>\n<option value="12">12</option>\n<option value="13">13</option>\n<option value="14">14</option>\n<option value="15">15</option>\n<option value="16">16</option>\n<option value="17">17</option>\n<option value="18">18</option>\n<option value="19">19</option>\n<option value="20">20</option>\n<option value="21">21</option>\n<option value="22">22</option>\n<option value="23">23</option>\n<option value="24">24</option>\n<option value="25">25</option>\n<option value="26">26</option>\n<option value="27">27</option>\n<option value="28">28</option>\n<option value="29">29</option>\n<option value="30">30</option>\n<option value="31">31</option>\n)
836
+ expected << "</select>\n"
837
+
838
+ assert_dom_equal expected, select_date(nil, :prefix => "date[first]")
839
+ end
840
+
841
+ def test_select_date_with_html_options
842
+ expected = %(<select id="date_first_year" name="date[first][year]" class="selector">\n)
843
+ expected << %(<option value="2003" selected="selected">2003</option>\n<option value="2004">2004</option>\n<option value="2005">2005</option>\n)
844
+ expected << "</select>\n"
845
+
846
+ expected << %(<select id="date_first_month" name="date[first][month]" class="selector">\n)
847
+ expected << %(<option value="1">January</option>\n<option value="2">February</option>\n<option value="3">March</option>\n<option value="4">April</option>\n<option value="5">May</option>\n<option value="6">June</option>\n<option value="7">July</option>\n<option value="8" selected="selected">August</option>\n<option value="9">September</option>\n<option value="10">October</option>\n<option value="11">November</option>\n<option value="12">December</option>\n)
848
+ expected << "</select>\n"
849
+
850
+ expected << %(<select id="date_first_day" name="date[first][day]" class="selector">\n)
851
+ expected << %(<option value="1">1</option>\n<option value="2">2</option>\n<option value="3">3</option>\n<option value="4">4</option>\n<option value="5">5</option>\n<option value="6">6</option>\n<option value="7">7</option>\n<option value="8">8</option>\n<option value="9">9</option>\n<option value="10">10</option>\n<option value="11">11</option>\n<option value="12">12</option>\n<option value="13">13</option>\n<option value="14">14</option>\n<option value="15">15</option>\n<option value="16" selected="selected">16</option>\n<option value="17">17</option>\n<option value="18">18</option>\n<option value="19">19</option>\n<option value="20">20</option>\n<option value="21">21</option>\n<option value="22">22</option>\n<option value="23">23</option>\n<option value="24">24</option>\n<option value="25">25</option>\n<option value="26">26</option>\n<option value="27">27</option>\n<option value="28">28</option>\n<option value="29">29</option>\n<option value="30">30</option>\n<option value="31">31</option>\n)
852
+ expected << "</select>\n"
853
+
854
+ assert_dom_equal expected, select_date(Time.mktime(2003, 8, 16), {:start_year => 2003, :end_year => 2005, :prefix => "date[first]"}, :class => "selector")
855
+ end
856
+
857
+ def test_select_date_with_separator
858
+ expected = %(<select id="date_first_year" name="date[first][year]">\n)
859
+ expected << %(<option value="2003" selected="selected">2003</option>\n<option value="2004">2004</option>\n<option value="2005">2005</option>\n)
860
+ expected << "</select>\n"
861
+
862
+ expected << " / "
863
+
864
+ expected << %(<select id="date_first_month" name="date[first][month]">\n)
865
+ expected << %(<option value="1">January</option>\n<option value="2">February</option>\n<option value="3">March</option>\n<option value="4">April</option>\n<option value="5">May</option>\n<option value="6">June</option>\n<option value="7">July</option>\n<option value="8" selected="selected">August</option>\n<option value="9">September</option>\n<option value="10">October</option>\n<option value="11">November</option>\n<option value="12">December</option>\n)
866
+ expected << "</select>\n"
867
+
868
+ expected << " / "
869
+
870
+ expected << %(<select id="date_first_day" name="date[first][day]">\n)
871
+ expected << %(<option value="1">1</option>\n<option value="2">2</option>\n<option value="3">3</option>\n<option value="4">4</option>\n<option value="5">5</option>\n<option value="6">6</option>\n<option value="7">7</option>\n<option value="8">8</option>\n<option value="9">9</option>\n<option value="10">10</option>\n<option value="11">11</option>\n<option value="12">12</option>\n<option value="13">13</option>\n<option value="14">14</option>\n<option value="15">15</option>\n<option value="16" selected="selected">16</option>\n<option value="17">17</option>\n<option value="18">18</option>\n<option value="19">19</option>\n<option value="20">20</option>\n<option value="21">21</option>\n<option value="22">22</option>\n<option value="23">23</option>\n<option value="24">24</option>\n<option value="25">25</option>\n<option value="26">26</option>\n<option value="27">27</option>\n<option value="28">28</option>\n<option value="29">29</option>\n<option value="30">30</option>\n<option value="31">31</option>\n)
872
+ expected << "</select>\n"
873
+
874
+ assert_dom_equal expected, select_date(Time.mktime(2003, 8, 16), { :date_separator => " / ", :start_year => 2003, :end_year => 2005, :prefix => "date[first]"})
875
+ end
876
+
877
+ def test_select_datetime
878
+ expected = %(<select id="date_first_year" name="date[first][year]">\n)
879
+ expected << %(<option value="2003" selected="selected">2003</option>\n<option value="2004">2004</option>\n<option value="2005">2005</option>\n)
880
+ expected << "</select>\n"
881
+
882
+ expected << %(<select id="date_first_month" name="date[first][month]">\n)
883
+ expected << %(<option value="1">January</option>\n<option value="2">February</option>\n<option value="3">March</option>\n<option value="4">April</option>\n<option value="5">May</option>\n<option value="6">June</option>\n<option value="7">July</option>\n<option value="8" selected="selected">August</option>\n<option value="9">September</option>\n<option value="10">October</option>\n<option value="11">November</option>\n<option value="12">December</option>\n)
884
+ expected << "</select>\n"
885
+
886
+ expected << %(<select id="date_first_day" name="date[first][day]">\n)
887
+ expected << %(<option value="1">1</option>\n<option value="2">2</option>\n<option value="3">3</option>\n<option value="4">4</option>\n<option value="5">5</option>\n<option value="6">6</option>\n<option value="7">7</option>\n<option value="8">8</option>\n<option value="9">9</option>\n<option value="10">10</option>\n<option value="11">11</option>\n<option value="12">12</option>\n<option value="13">13</option>\n<option value="14">14</option>\n<option value="15">15</option>\n<option value="16" selected="selected">16</option>\n<option value="17">17</option>\n<option value="18">18</option>\n<option value="19">19</option>\n<option value="20">20</option>\n<option value="21">21</option>\n<option value="22">22</option>\n<option value="23">23</option>\n<option value="24">24</option>\n<option value="25">25</option>\n<option value="26">26</option>\n<option value="27">27</option>\n<option value="28">28</option>\n<option value="29">29</option>\n<option value="30">30</option>\n<option value="31">31</option>\n)
888
+ expected << "</select>\n"
889
+
890
+ expected << %(<select id="date_first_hour" name="date[first][hour]">\n)
891
+ expected << %(<option value="00">00</option>\n<option value="01">01</option>\n<option value="02">02</option>\n<option value="03">03</option>\n<option value="04">04</option>\n<option value="05">05</option>\n<option value="06">06</option>\n<option value="07">07</option>\n<option value="08" selected="selected">08</option>\n<option value="09">09</option>\n<option value="10">10</option>\n<option value="11">11</option>\n<option value="12">12</option>\n<option value="13">13</option>\n<option value="14">14</option>\n<option value="15">15</option>\n<option value="16">16</option>\n<option value="17">17</option>\n<option value="18">18</option>\n<option value="19">19</option>\n<option value="20">20</option>\n<option value="21">21</option>\n<option value="22">22</option>\n<option value="23">23</option>\n)
892
+ expected << "</select>\n"
893
+
894
+ expected << %(<select id="date_first_minute" name="date[first][minute]">\n)
895
+ expected << %(<option value="00">00</option>\n<option value="01">01</option>\n<option value="02">02</option>\n<option value="03">03</option>\n<option value="04" selected="selected">04</option>\n<option value="05">05</option>\n<option value="06">06</option>\n<option value="07">07</option>\n<option value="08">08</option>\n<option value="09">09</option>\n<option value="10">10</option>\n<option value="11">11</option>\n<option value="12">12</option>\n<option value="13">13</option>\n<option value="14">14</option>\n<option value="15">15</option>\n<option value="16">16</option>\n<option value="17">17</option>\n<option value="18">18</option>\n<option value="19">19</option>\n<option value="20">20</option>\n<option value="21">21</option>\n<option value="22">22</option>\n<option value="23">23</option>\n<option value="24">24</option>\n<option value="25">25</option>\n<option value="26">26</option>\n<option value="27">27</option>\n<option value="28">28</option>\n<option value="29">29</option>\n<option value="30">30</option>\n<option value="31">31</option>\n<option value="32">32</option>\n<option value="33">33</option>\n<option value="34">34</option>\n<option value="35">35</option>\n<option value="36">36</option>\n<option value="37">37</option>\n<option value="38">38</option>\n<option value="39">39</option>\n<option value="40">40</option>\n<option value="41">41</option>\n<option value="42">42</option>\n<option value="43">43</option>\n<option value="44">44</option>\n<option value="45">45</option>\n<option value="46">46</option>\n<option value="47">47</option>\n<option value="48">48</option>\n<option value="49">49</option>\n<option value="50">50</option>\n<option value="51">51</option>\n<option value="52">52</option>\n<option value="53">53</option>\n<option value="54">54</option>\n<option value="55">55</option>\n<option value="56">56</option>\n<option value="57">57</option>\n<option value="58">58</option>\n<option value="59">59</option>\n)
896
+ expected << "</select>\n"
897
+
898
+ assert_dom_equal expected, select_datetime(Time.mktime(2003, 8, 16, 8, 4, 18), :start_year => 2003, :end_year => 2005, :prefix => "date[first]")
899
+ end
900
+
901
+ def test_select_datetime_with_separators
902
+ expected = %(<select id="date_first_year" name="date[first][year]">\n)
903
+ expected << %(<option value="2003" selected="selected">2003</option>\n<option value="2004">2004</option>\n<option value="2005">2005</option>\n)
904
+ expected << "</select>\n"
905
+
906
+ expected << %(<select id="date_first_month" name="date[first][month]">\n)
907
+ expected << %(<option value="1">January</option>\n<option value="2">February</option>\n<option value="3">March</option>\n<option value="4">April</option>\n<option value="5">May</option>\n<option value="6">June</option>\n<option value="7">July</option>\n<option value="8" selected="selected">August</option>\n<option value="9">September</option>\n<option value="10">October</option>\n<option value="11">November</option>\n<option value="12">December</option>\n)
908
+ expected << "</select>\n"
909
+
910
+ expected << %(<select id="date_first_day" name="date[first][day]">\n)
911
+ expected << %(<option value="1">1</option>\n<option value="2">2</option>\n<option value="3">3</option>\n<option value="4">4</option>\n<option value="5">5</option>\n<option value="6">6</option>\n<option value="7">7</option>\n<option value="8">8</option>\n<option value="9">9</option>\n<option value="10">10</option>\n<option value="11">11</option>\n<option value="12">12</option>\n<option value="13">13</option>\n<option value="14">14</option>\n<option value="15">15</option>\n<option value="16" selected="selected">16</option>\n<option value="17">17</option>\n<option value="18">18</option>\n<option value="19">19</option>\n<option value="20">20</option>\n<option value="21">21</option>\n<option value="22">22</option>\n<option value="23">23</option>\n<option value="24">24</option>\n<option value="25">25</option>\n<option value="26">26</option>\n<option value="27">27</option>\n<option value="28">28</option>\n<option value="29">29</option>\n<option value="30">30</option>\n<option value="31">31</option>\n)
912
+ expected << "</select>\n"
913
+
914
+ expected << " &mdash; "
915
+
916
+ expected << %(<select id="date_first_hour" name="date[first][hour]">\n)
917
+ expected << %(<option value="00">00</option>\n<option value="01">01</option>\n<option value="02">02</option>\n<option value="03">03</option>\n<option value="04">04</option>\n<option value="05">05</option>\n<option value="06">06</option>\n<option value="07">07</option>\n<option value="08" selected="selected">08</option>\n<option value="09">09</option>\n<option value="10">10</option>\n<option value="11">11</option>\n<option value="12">12</option>\n<option value="13">13</option>\n<option value="14">14</option>\n<option value="15">15</option>\n<option value="16">16</option>\n<option value="17">17</option>\n<option value="18">18</option>\n<option value="19">19</option>\n<option value="20">20</option>\n<option value="21">21</option>\n<option value="22">22</option>\n<option value="23">23</option>\n)
918
+ expected << "</select>\n"
919
+
920
+ expected << " : "
921
+
922
+ expected << %(<select id="date_first_minute" name="date[first][minute]">\n)
923
+ expected << %(<option value="00">00</option>\n<option value="01">01</option>\n<option value="02">02</option>\n<option value="03">03</option>\n<option value="04" selected="selected">04</option>\n<option value="05">05</option>\n<option value="06">06</option>\n<option value="07">07</option>\n<option value="08">08</option>\n<option value="09">09</option>\n<option value="10">10</option>\n<option value="11">11</option>\n<option value="12">12</option>\n<option value="13">13</option>\n<option value="14">14</option>\n<option value="15">15</option>\n<option value="16">16</option>\n<option value="17">17</option>\n<option value="18">18</option>\n<option value="19">19</option>\n<option value="20">20</option>\n<option value="21">21</option>\n<option value="22">22</option>\n<option value="23">23</option>\n<option value="24">24</option>\n<option value="25">25</option>\n<option value="26">26</option>\n<option value="27">27</option>\n<option value="28">28</option>\n<option value="29">29</option>\n<option value="30">30</option>\n<option value="31">31</option>\n<option value="32">32</option>\n<option value="33">33</option>\n<option value="34">34</option>\n<option value="35">35</option>\n<option value="36">36</option>\n<option value="37">37</option>\n<option value="38">38</option>\n<option value="39">39</option>\n<option value="40">40</option>\n<option value="41">41</option>\n<option value="42">42</option>\n<option value="43">43</option>\n<option value="44">44</option>\n<option value="45">45</option>\n<option value="46">46</option>\n<option value="47">47</option>\n<option value="48">48</option>\n<option value="49">49</option>\n<option value="50">50</option>\n<option value="51">51</option>\n<option value="52">52</option>\n<option value="53">53</option>\n<option value="54">54</option>\n<option value="55">55</option>\n<option value="56">56</option>\n<option value="57">57</option>\n<option value="58">58</option>\n<option value="59">59</option>\n)
924
+ expected << "</select>\n"
925
+
926
+ assert_dom_equal expected, select_datetime(Time.mktime(2003, 8, 16, 8, 4, 18), :start_year => 2003, :end_year => 2005, :prefix => "date[first]", :datetime_separator => ' &mdash; ', :time_separator => ' : ')
927
+ end
928
+
929
+ def test_select_datetime_with_nil_value_and_no_start_and_end_year
930
+ expected = %(<select id="date_first_year" name="date[first][year]">\n)
931
+ (Date.today.year-5).upto(Date.today.year+5) { |y| expected << %(<option value="#{y}">#{y}</option>\n) }
932
+ expected << "</select>\n"
933
+
934
+ expected << %(<select id="date_first_month" name="date[first][month]">\n)
935
+ expected << %(<option value="1">January</option>\n<option value="2">February</option>\n<option value="3">March</option>\n<option value="4">April</option>\n<option value="5">May</option>\n<option value="6">June</option>\n<option value="7">July</option>\n<option value="8">August</option>\n<option value="9">September</option>\n<option value="10">October</option>\n<option value="11">November</option>\n<option value="12">December</option>\n)
936
+ expected << "</select>\n"
937
+
938
+ expected << %(<select id="date_first_day" name="date[first][day]">\n)
939
+ expected << %(<option value="1">1</option>\n<option value="2">2</option>\n<option value="3">3</option>\n<option value="4">4</option>\n<option value="5">5</option>\n<option value="6">6</option>\n<option value="7">7</option>\n<option value="8">8</option>\n<option value="9">9</option>\n<option value="10">10</option>\n<option value="11">11</option>\n<option value="12">12</option>\n<option value="13">13</option>\n<option value="14">14</option>\n<option value="15">15</option>\n<option value="16">16</option>\n<option value="17">17</option>\n<option value="18">18</option>\n<option value="19">19</option>\n<option value="20">20</option>\n<option value="21">21</option>\n<option value="22">22</option>\n<option value="23">23</option>\n<option value="24">24</option>\n<option value="25">25</option>\n<option value="26">26</option>\n<option value="27">27</option>\n<option value="28">28</option>\n<option value="29">29</option>\n<option value="30">30</option>\n<option value="31">31</option>\n)
940
+ expected << "</select>\n"
941
+
942
+ expected << %(<select id="date_first_hour" name="date[first][hour]">\n)
943
+ expected << %(<option value="00">00</option>\n<option value="01">01</option>\n<option value="02">02</option>\n<option value="03">03</option>\n<option value="04">04</option>\n<option value="05">05</option>\n<option value="06">06</option>\n<option value="07">07</option>\n<option value="08">08</option>\n<option value="09">09</option>\n<option value="10">10</option>\n<option value="11">11</option>\n<option value="12">12</option>\n<option value="13">13</option>\n<option value="14">14</option>\n<option value="15">15</option>\n<option value="16">16</option>\n<option value="17">17</option>\n<option value="18">18</option>\n<option value="19">19</option>\n<option value="20">20</option>\n<option value="21">21</option>\n<option value="22">22</option>\n<option value="23">23</option>\n)
944
+ expected << "</select>\n"
945
+
946
+ expected << %(<select id="date_first_minute" name="date[first][minute]">\n)
947
+ expected << %(<option value="00">00</option>\n<option value="01">01</option>\n<option value="02">02</option>\n<option value="03">03</option>\n<option value="04">04</option>\n<option value="05">05</option>\n<option value="06">06</option>\n<option value="07">07</option>\n<option value="08">08</option>\n<option value="09">09</option>\n<option value="10">10</option>\n<option value="11">11</option>\n<option value="12">12</option>\n<option value="13">13</option>\n<option value="14">14</option>\n<option value="15">15</option>\n<option value="16">16</option>\n<option value="17">17</option>\n<option value="18">18</option>\n<option value="19">19</option>\n<option value="20">20</option>\n<option value="21">21</option>\n<option value="22">22</option>\n<option value="23">23</option>\n<option value="24">24</option>\n<option value="25">25</option>\n<option value="26">26</option>\n<option value="27">27</option>\n<option value="28">28</option>\n<option value="29">29</option>\n<option value="30">30</option>\n<option value="31">31</option>\n<option value="32">32</option>\n<option value="33">33</option>\n<option value="34">34</option>\n<option value="35">35</option>\n<option value="36">36</option>\n<option value="37">37</option>\n<option value="38">38</option>\n<option value="39">39</option>\n<option value="40">40</option>\n<option value="41">41</option>\n<option value="42">42</option>\n<option value="43">43</option>\n<option value="44">44</option>\n<option value="45">45</option>\n<option value="46">46</option>\n<option value="47">47</option>\n<option value="48">48</option>\n<option value="49">49</option>\n<option value="50">50</option>\n<option value="51">51</option>\n<option value="52">52</option>\n<option value="53">53</option>\n<option value="54">54</option>\n<option value="55">55</option>\n<option value="56">56</option>\n<option value="57">57</option>\n<option value="58">58</option>\n<option value="59">59</option>\n)
948
+ expected << "</select>\n"
949
+
950
+ assert_dom_equal expected, select_datetime(nil, :prefix => "date[first]")
951
+ end
952
+
953
+ def test_select_datetime_with_html_options
954
+ expected = %(<select id="date_first_year" name="date[first][year]" class="selector">\n)
955
+ expected << %(<option value="2003" selected="selected">2003</option>\n<option value="2004">2004</option>\n<option value="2005">2005</option>\n)
956
+ expected << "</select>\n"
957
+
958
+ expected << %(<select id="date_first_month" name="date[first][month]" class="selector">\n)
959
+ expected << %(<option value="1">January</option>\n<option value="2">February</option>\n<option value="3">March</option>\n<option value="4">April</option>\n<option value="5">May</option>\n<option value="6">June</option>\n<option value="7">July</option>\n<option value="8" selected="selected">August</option>\n<option value="9">September</option>\n<option value="10">October</option>\n<option value="11">November</option>\n<option value="12">December</option>\n)
960
+ expected << "</select>\n"
961
+
962
+ expected << %(<select id="date_first_day" name="date[first][day]" class="selector">\n)
963
+ expected << %(<option value="1">1</option>\n<option value="2">2</option>\n<option value="3">3</option>\n<option value="4">4</option>\n<option value="5">5</option>\n<option value="6">6</option>\n<option value="7">7</option>\n<option value="8">8</option>\n<option value="9">9</option>\n<option value="10">10</option>\n<option value="11">11</option>\n<option value="12">12</option>\n<option value="13">13</option>\n<option value="14">14</option>\n<option value="15">15</option>\n<option value="16" selected="selected">16</option>\n<option value="17">17</option>\n<option value="18">18</option>\n<option value="19">19</option>\n<option value="20">20</option>\n<option value="21">21</option>\n<option value="22">22</option>\n<option value="23">23</option>\n<option value="24">24</option>\n<option value="25">25</option>\n<option value="26">26</option>\n<option value="27">27</option>\n<option value="28">28</option>\n<option value="29">29</option>\n<option value="30">30</option>\n<option value="31">31</option>\n)
964
+ expected << "</select>\n"
965
+
966
+ expected << %(<select id="date_first_hour" name="date[first][hour]" class="selector">\n)
967
+ expected << %(<option value="00">00</option>\n<option value="01">01</option>\n<option value="02">02</option>\n<option value="03">03</option>\n<option value="04">04</option>\n<option value="05">05</option>\n<option value="06">06</option>\n<option value="07">07</option>\n<option value="08" selected="selected">08</option>\n<option value="09">09</option>\n<option value="10">10</option>\n<option value="11">11</option>\n<option value="12">12</option>\n<option value="13">13</option>\n<option value="14">14</option>\n<option value="15">15</option>\n<option value="16">16</option>\n<option value="17">17</option>\n<option value="18">18</option>\n<option value="19">19</option>\n<option value="20">20</option>\n<option value="21">21</option>\n<option value="22">22</option>\n<option value="23">23</option>\n)
968
+ expected << "</select>\n"
969
+
970
+ expected << %(<select id="date_first_minute" name="date[first][minute]" class="selector">\n)
971
+ expected << %(<option value="00">00</option>\n<option value="01">01</option>\n<option value="02">02</option>\n<option value="03">03</option>\n<option value="04" selected="selected">04</option>\n<option value="05">05</option>\n<option value="06">06</option>\n<option value="07">07</option>\n<option value="08">08</option>\n<option value="09">09</option>\n<option value="10">10</option>\n<option value="11">11</option>\n<option value="12">12</option>\n<option value="13">13</option>\n<option value="14">14</option>\n<option value="15">15</option>\n<option value="16">16</option>\n<option value="17">17</option>\n<option value="18">18</option>\n<option value="19">19</option>\n<option value="20">20</option>\n<option value="21">21</option>\n<option value="22">22</option>\n<option value="23">23</option>\n<option value="24">24</option>\n<option value="25">25</option>\n<option value="26">26</option>\n<option value="27">27</option>\n<option value="28">28</option>\n<option value="29">29</option>\n<option value="30">30</option>\n<option value="31">31</option>\n<option value="32">32</option>\n<option value="33">33</option>\n<option value="34">34</option>\n<option value="35">35</option>\n<option value="36">36</option>\n<option value="37">37</option>\n<option value="38">38</option>\n<option value="39">39</option>\n<option value="40">40</option>\n<option value="41">41</option>\n<option value="42">42</option>\n<option value="43">43</option>\n<option value="44">44</option>\n<option value="45">45</option>\n<option value="46">46</option>\n<option value="47">47</option>\n<option value="48">48</option>\n<option value="49">49</option>\n<option value="50">50</option>\n<option value="51">51</option>\n<option value="52">52</option>\n<option value="53">53</option>\n<option value="54">54</option>\n<option value="55">55</option>\n<option value="56">56</option>\n<option value="57">57</option>\n<option value="58">58</option>\n<option value="59">59</option>\n)
972
+ expected << "</select>\n"
973
+
974
+ assert_dom_equal expected, select_datetime(Time.mktime(2003, 8, 16, 8, 4, 18), {:start_year => 2003, :end_year => 2005, :prefix => "date[first]"}, :class => 'selector')
975
+ end
976
+
977
+ def test_select_datetime_with_all_separators
978
+ expected = %(<select id="date_first_year" name="date[first][year]" class="selector">\n)
979
+ expected << %(<option value="2003" selected="selected">2003</option>\n<option value="2004">2004</option>\n<option value="2005">2005</option>\n)
980
+ expected << "</select>\n"
981
+
982
+ expected << "/"
983
+
984
+ expected << %(<select id="date_first_month" name="date[first][month]" class="selector">\n)
985
+ expected << %(<option value="1">January</option>\n<option value="2">February</option>\n<option value="3">March</option>\n<option value="4">April</option>\n<option value="5">May</option>\n<option value="6">June</option>\n<option value="7">July</option>\n<option value="8" selected="selected">August</option>\n<option value="9">September</option>\n<option value="10">October</option>\n<option value="11">November</option>\n<option value="12">December</option>\n)
986
+ expected << "</select>\n"
987
+
988
+ expected << "/"
989
+
990
+ expected << %(<select id="date_first_day" name="date[first][day]" class="selector">\n)
991
+ expected << %(<option value="1">1</option>\n<option value="2">2</option>\n<option value="3">3</option>\n<option value="4">4</option>\n<option value="5">5</option>\n<option value="6">6</option>\n<option value="7">7</option>\n<option value="8">8</option>\n<option value="9">9</option>\n<option value="10">10</option>\n<option value="11">11</option>\n<option value="12">12</option>\n<option value="13">13</option>\n<option value="14">14</option>\n<option value="15">15</option>\n<option value="16" selected="selected">16</option>\n<option value="17">17</option>\n<option value="18">18</option>\n<option value="19">19</option>\n<option value="20">20</option>\n<option value="21">21</option>\n<option value="22">22</option>\n<option value="23">23</option>\n<option value="24">24</option>\n<option value="25">25</option>\n<option value="26">26</option>\n<option value="27">27</option>\n<option value="28">28</option>\n<option value="29">29</option>\n<option value="30">30</option>\n<option value="31">31</option>\n)
992
+ expected << "</select>\n"
993
+
994
+ expected << "&mdash;"
995
+
996
+ expected << %(<select id="date_first_hour" name="date[first][hour]" class="selector">\n)
997
+ expected << %(<option value="00">00</option>\n<option value="01">01</option>\n<option value="02">02</option>\n<option value="03">03</option>\n<option value="04">04</option>\n<option value="05">05</option>\n<option value="06">06</option>\n<option value="07">07</option>\n<option value="08" selected="selected">08</option>\n<option value="09">09</option>\n<option value="10">10</option>\n<option value="11">11</option>\n<option value="12">12</option>\n<option value="13">13</option>\n<option value="14">14</option>\n<option value="15">15</option>\n<option value="16">16</option>\n<option value="17">17</option>\n<option value="18">18</option>\n<option value="19">19</option>\n<option value="20">20</option>\n<option value="21">21</option>\n<option value="22">22</option>\n<option value="23">23</option>\n)
998
+ expected << "</select>\n"
999
+
1000
+ expected << ":"
1001
+
1002
+ expected << %(<select id="date_first_minute" name="date[first][minute]" class="selector">\n)
1003
+ expected << %(<option value="00">00</option>\n<option value="01">01</option>\n<option value="02">02</option>\n<option value="03">03</option>\n<option value="04" selected="selected">04</option>\n<option value="05">05</option>\n<option value="06">06</option>\n<option value="07">07</option>\n<option value="08">08</option>\n<option value="09">09</option>\n<option value="10">10</option>\n<option value="11">11</option>\n<option value="12">12</option>\n<option value="13">13</option>\n<option value="14">14</option>\n<option value="15">15</option>\n<option value="16">16</option>\n<option value="17">17</option>\n<option value="18">18</option>\n<option value="19">19</option>\n<option value="20">20</option>\n<option value="21">21</option>\n<option value="22">22</option>\n<option value="23">23</option>\n<option value="24">24</option>\n<option value="25">25</option>\n<option value="26">26</option>\n<option value="27">27</option>\n<option value="28">28</option>\n<option value="29">29</option>\n<option value="30">30</option>\n<option value="31">31</option>\n<option value="32">32</option>\n<option value="33">33</option>\n<option value="34">34</option>\n<option value="35">35</option>\n<option value="36">36</option>\n<option value="37">37</option>\n<option value="38">38</option>\n<option value="39">39</option>\n<option value="40">40</option>\n<option value="41">41</option>\n<option value="42">42</option>\n<option value="43">43</option>\n<option value="44">44</option>\n<option value="45">45</option>\n<option value="46">46</option>\n<option value="47">47</option>\n<option value="48">48</option>\n<option value="49">49</option>\n<option value="50">50</option>\n<option value="51">51</option>\n<option value="52">52</option>\n<option value="53">53</option>\n<option value="54">54</option>\n<option value="55">55</option>\n<option value="56">56</option>\n<option value="57">57</option>\n<option value="58">58</option>\n<option value="59">59</option>\n)
1004
+ expected << "</select>\n"
1005
+
1006
+ assert_dom_equal expected, select_datetime(Time.mktime(2003, 8, 16, 8, 4, 18), { :datetime_separator => "&mdash;", :date_separator => "/", :time_separator => ":", :start_year => 2003, :end_year => 2005, :prefix => "date[first]"}, :class => 'selector')
1007
+ end
1008
+
1009
+ def test_select_datetime_should_work_with_date
1010
+ assert_nothing_raised { select_datetime(Date.today) }
1011
+ end
1012
+
1013
+ def test_select_datetime_with_default_prompt
1014
+ expected = %(<select id="date_first_year" name="date[first][year]">\n)
1015
+ expected << %(<option value="">Year</option>\n<option value="2003" selected="selected">2003</option>\n<option value="2004">2004</option>\n<option value="2005">2005</option>\n)
1016
+ expected << "</select>\n"
1017
+
1018
+ expected << %(<select id="date_first_month" name="date[first][month]">\n)
1019
+ expected << %(<option value="">Month</option>\n<option value="1">January</option>\n<option value="2">February</option>\n<option value="3">March</option>\n<option value="4">April</option>\n<option value="5">May</option>\n<option value="6">June</option>\n<option value="7">July</option>\n<option value="8" selected="selected">August</option>\n<option value="9">September</option>\n<option value="10">October</option>\n<option value="11">November</option>\n<option value="12">December</option>\n)
1020
+ expected << "</select>\n"
1021
+
1022
+ expected << %(<select id="date_first_day" name="date[first][day]">\n)
1023
+ expected << %(<option value="">Day</option>\n<option value="1">1</option>\n<option value="2">2</option>\n<option value="3">3</option>\n<option value="4">4</option>\n<option value="5">5</option>\n<option value="6">6</option>\n<option value="7">7</option>\n<option value="8">8</option>\n<option value="9">9</option>\n<option value="10">10</option>\n<option value="11">11</option>\n<option value="12">12</option>\n<option value="13">13</option>\n<option value="14">14</option>\n<option value="15">15</option>\n<option value="16" selected="selected">16</option>\n<option value="17">17</option>\n<option value="18">18</option>\n<option value="19">19</option>\n<option value="20">20</option>\n<option value="21">21</option>\n<option value="22">22</option>\n<option value="23">23</option>\n<option value="24">24</option>\n<option value="25">25</option>\n<option value="26">26</option>\n<option value="27">27</option>\n<option value="28">28</option>\n<option value="29">29</option>\n<option value="30">30</option>\n<option value="31">31</option>\n)
1024
+ expected << "</select>\n"
1025
+
1026
+ expected << %(<select id="date_first_hour" name="date[first][hour]">\n)
1027
+ expected << %(<option value="">Hour</option>\n<option value="00">00</option>\n<option value="01">01</option>\n<option value="02">02</option>\n<option value="03">03</option>\n<option value="04">04</option>\n<option value="05">05</option>\n<option value="06">06</option>\n<option value="07">07</option>\n<option value="08" selected="selected">08</option>\n<option value="09">09</option>\n<option value="10">10</option>\n<option value="11">11</option>\n<option value="12">12</option>\n<option value="13">13</option>\n<option value="14">14</option>\n<option value="15">15</option>\n<option value="16">16</option>\n<option value="17">17</option>\n<option value="18">18</option>\n<option value="19">19</option>\n<option value="20">20</option>\n<option value="21">21</option>\n<option value="22">22</option>\n<option value="23">23</option>\n)
1028
+ expected << "</select>\n"
1029
+
1030
+ expected << %(<select id="date_first_minute" name="date[first][minute]">\n)
1031
+ expected << %(<option value="">Minute</option>\n<option value="00">00</option>\n<option value="01">01</option>\n<option value="02">02</option>\n<option value="03">03</option>\n<option value="04" selected="selected">04</option>\n<option value="05">05</option>\n<option value="06">06</option>\n<option value="07">07</option>\n<option value="08">08</option>\n<option value="09">09</option>\n<option value="10">10</option>\n<option value="11">11</option>\n<option value="12">12</option>\n<option value="13">13</option>\n<option value="14">14</option>\n<option value="15">15</option>\n<option value="16">16</option>\n<option value="17">17</option>\n<option value="18">18</option>\n<option value="19">19</option>\n<option value="20">20</option>\n<option value="21">21</option>\n<option value="22">22</option>\n<option value="23">23</option>\n<option value="24">24</option>\n<option value="25">25</option>\n<option value="26">26</option>\n<option value="27">27</option>\n<option value="28">28</option>\n<option value="29">29</option>\n<option value="30">30</option>\n<option value="31">31</option>\n<option value="32">32</option>\n<option value="33">33</option>\n<option value="34">34</option>\n<option value="35">35</option>\n<option value="36">36</option>\n<option value="37">37</option>\n<option value="38">38</option>\n<option value="39">39</option>\n<option value="40">40</option>\n<option value="41">41</option>\n<option value="42">42</option>\n<option value="43">43</option>\n<option value="44">44</option>\n<option value="45">45</option>\n<option value="46">46</option>\n<option value="47">47</option>\n<option value="48">48</option>\n<option value="49">49</option>\n<option value="50">50</option>\n<option value="51">51</option>\n<option value="52">52</option>\n<option value="53">53</option>\n<option value="54">54</option>\n<option value="55">55</option>\n<option value="56">56</option>\n<option value="57">57</option>\n<option value="58">58</option>\n<option value="59">59</option>\n)
1032
+ expected << "</select>\n"
1033
+
1034
+ assert_dom_equal expected, select_datetime(Time.mktime(2003, 8, 16, 8, 4, 18), :start_year => 2003, :end_year => 2005,
1035
+ :prefix => "date[first]", :prompt => true)
1036
+ end
1037
+
1038
+ def test_select_datetime_with_custom_prompt
1039
+
1040
+ expected = %(<select id="date_first_year" name="date[first][year]">\n)
1041
+ expected << %(<option value="">Choose year</option>\n<option value="2003" selected="selected">2003</option>\n<option value="2004">2004</option>\n<option value="2005">2005</option>\n)
1042
+ expected << "</select>\n"
1043
+
1044
+ expected << %(<select id="date_first_month" name="date[first][month]">\n)
1045
+ expected << %(<option value="">Choose month</option>\n<option value="1">January</option>\n<option value="2">February</option>\n<option value="3">March</option>\n<option value="4">April</option>\n<option value="5">May</option>\n<option value="6">June</option>\n<option value="7">July</option>\n<option value="8" selected="selected">August</option>\n<option value="9">September</option>\n<option value="10">October</option>\n<option value="11">November</option>\n<option value="12">December</option>\n)
1046
+ expected << "</select>\n"
1047
+
1048
+ expected << %(<select id="date_first_day" name="date[first][day]">\n)
1049
+ expected << %(<option value="">Choose day</option>\n<option value="1">1</option>\n<option value="2">2</option>\n<option value="3">3</option>\n<option value="4">4</option>\n<option value="5">5</option>\n<option value="6">6</option>\n<option value="7">7</option>\n<option value="8">8</option>\n<option value="9">9</option>\n<option value="10">10</option>\n<option value="11">11</option>\n<option value="12">12</option>\n<option value="13">13</option>\n<option value="14">14</option>\n<option value="15">15</option>\n<option value="16" selected="selected">16</option>\n<option value="17">17</option>\n<option value="18">18</option>\n<option value="19">19</option>\n<option value="20">20</option>\n<option value="21">21</option>\n<option value="22">22</option>\n<option value="23">23</option>\n<option value="24">24</option>\n<option value="25">25</option>\n<option value="26">26</option>\n<option value="27">27</option>\n<option value="28">28</option>\n<option value="29">29</option>\n<option value="30">30</option>\n<option value="31">31</option>\n)
1050
+ expected << "</select>\n"
1051
+
1052
+ expected << %(<select id="date_first_hour" name="date[first][hour]">\n)
1053
+ expected << %(<option value="">Choose hour</option>\n<option value="00">00</option>\n<option value="01">01</option>\n<option value="02">02</option>\n<option value="03">03</option>\n<option value="04">04</option>\n<option value="05">05</option>\n<option value="06">06</option>\n<option value="07">07</option>\n<option value="08" selected="selected">08</option>\n<option value="09">09</option>\n<option value="10">10</option>\n<option value="11">11</option>\n<option value="12">12</option>\n<option value="13">13</option>\n<option value="14">14</option>\n<option value="15">15</option>\n<option value="16">16</option>\n<option value="17">17</option>\n<option value="18">18</option>\n<option value="19">19</option>\n<option value="20">20</option>\n<option value="21">21</option>\n<option value="22">22</option>\n<option value="23">23</option>\n)
1054
+ expected << "</select>\n"
1055
+
1056
+ expected << %(<select id="date_first_minute" name="date[first][minute]">\n)
1057
+ expected << %(<option value="">Choose minute</option>\n<option value="00">00</option>\n<option value="01">01</option>\n<option value="02">02</option>\n<option value="03">03</option>\n<option value="04" selected="selected">04</option>\n<option value="05">05</option>\n<option value="06">06</option>\n<option value="07">07</option>\n<option value="08">08</option>\n<option value="09">09</option>\n<option value="10">10</option>\n<option value="11">11</option>\n<option value="12">12</option>\n<option value="13">13</option>\n<option value="14">14</option>\n<option value="15">15</option>\n<option value="16">16</option>\n<option value="17">17</option>\n<option value="18">18</option>\n<option value="19">19</option>\n<option value="20">20</option>\n<option value="21">21</option>\n<option value="22">22</option>\n<option value="23">23</option>\n<option value="24">24</option>\n<option value="25">25</option>\n<option value="26">26</option>\n<option value="27">27</option>\n<option value="28">28</option>\n<option value="29">29</option>\n<option value="30">30</option>\n<option value="31">31</option>\n<option value="32">32</option>\n<option value="33">33</option>\n<option value="34">34</option>\n<option value="35">35</option>\n<option value="36">36</option>\n<option value="37">37</option>\n<option value="38">38</option>\n<option value="39">39</option>\n<option value="40">40</option>\n<option value="41">41</option>\n<option value="42">42</option>\n<option value="43">43</option>\n<option value="44">44</option>\n<option value="45">45</option>\n<option value="46">46</option>\n<option value="47">47</option>\n<option value="48">48</option>\n<option value="49">49</option>\n<option value="50">50</option>\n<option value="51">51</option>\n<option value="52">52</option>\n<option value="53">53</option>\n<option value="54">54</option>\n<option value="55">55</option>\n<option value="56">56</option>\n<option value="57">57</option>\n<option value="58">58</option>\n<option value="59">59</option>\n)
1058
+ expected << "</select>\n"
1059
+
1060
+ assert_dom_equal expected, select_datetime(Time.mktime(2003, 8, 16, 8, 4, 18), :start_year => 2003, :end_year => 2005, :prefix => "date[first]",
1061
+ :prompt => {:day => 'Choose day', :month => 'Choose month', :year => 'Choose year', :hour => 'Choose hour', :minute => 'Choose minute'})
1062
+ end
1063
+
1064
+ def test_select_time
1065
+ expected = %(<select id="date_hour" name="date[hour]">\n)
1066
+ expected << %(<option value="00">00</option>\n<option value="01">01</option>\n<option value="02">02</option>\n<option value="03">03</option>\n<option value="04">04</option>\n<option value="05">05</option>\n<option value="06">06</option>\n<option value="07">07</option>\n<option value="08" selected="selected">08</option>\n<option value="09">09</option>\n<option value="10">10</option>\n<option value="11">11</option>\n<option value="12">12</option>\n<option value="13">13</option>\n<option value="14">14</option>\n<option value="15">15</option>\n<option value="16">16</option>\n<option value="17">17</option>\n<option value="18">18</option>\n<option value="19">19</option>\n<option value="20">20</option>\n<option value="21">21</option>\n<option value="22">22</option>\n<option value="23">23</option>\n)
1067
+ expected << "</select>\n"
1068
+
1069
+ expected << %(<select id="date_minute" name="date[minute]">\n)
1070
+ expected << %(<option value="00">00</option>\n<option value="01">01</option>\n<option value="02">02</option>\n<option value="03">03</option>\n<option value="04" selected="selected">04</option>\n<option value="05">05</option>\n<option value="06">06</option>\n<option value="07">07</option>\n<option value="08">08</option>\n<option value="09">09</option>\n<option value="10">10</option>\n<option value="11">11</option>\n<option value="12">12</option>\n<option value="13">13</option>\n<option value="14">14</option>\n<option value="15">15</option>\n<option value="16">16</option>\n<option value="17">17</option>\n<option value="18">18</option>\n<option value="19">19</option>\n<option value="20">20</option>\n<option value="21">21</option>\n<option value="22">22</option>\n<option value="23">23</option>\n<option value="24">24</option>\n<option value="25">25</option>\n<option value="26">26</option>\n<option value="27">27</option>\n<option value="28">28</option>\n<option value="29">29</option>\n<option value="30">30</option>\n<option value="31">31</option>\n<option value="32">32</option>\n<option value="33">33</option>\n<option value="34">34</option>\n<option value="35">35</option>\n<option value="36">36</option>\n<option value="37">37</option>\n<option value="38">38</option>\n<option value="39">39</option>\n<option value="40">40</option>\n<option value="41">41</option>\n<option value="42">42</option>\n<option value="43">43</option>\n<option value="44">44</option>\n<option value="45">45</option>\n<option value="46">46</option>\n<option value="47">47</option>\n<option value="48">48</option>\n<option value="49">49</option>\n<option value="50">50</option>\n<option value="51">51</option>\n<option value="52">52</option>\n<option value="53">53</option>\n<option value="54">54</option>\n<option value="55">55</option>\n<option value="56">56</option>\n<option value="57">57</option>\n<option value="58">58</option>\n<option value="59">59</option>\n)
1071
+ expected << "</select>\n"
1072
+
1073
+ assert_dom_equal expected, select_time(Time.mktime(2003, 8, 16, 8, 4, 18))
1074
+ assert_dom_equal expected, select_time(Time.mktime(2003, 8, 16, 8, 4, 18), :include_seconds => false)
1075
+ end
1076
+
1077
+ def test_select_time_with_separator
1078
+ expected = %(<select id="date_hour" name="date[hour]">\n)
1079
+ expected << %(<option value="00">00</option>\n<option value="01">01</option>\n<option value="02">02</option>\n<option value="03">03</option>\n<option value="04">04</option>\n<option value="05">05</option>\n<option value="06">06</option>\n<option value="07">07</option>\n<option value="08" selected="selected">08</option>\n<option value="09">09</option>\n<option value="10">10</option>\n<option value="11">11</option>\n<option value="12">12</option>\n<option value="13">13</option>\n<option value="14">14</option>\n<option value="15">15</option>\n<option value="16">16</option>\n<option value="17">17</option>\n<option value="18">18</option>\n<option value="19">19</option>\n<option value="20">20</option>\n<option value="21">21</option>\n<option value="22">22</option>\n<option value="23">23</option>\n)
1080
+ expected << "</select>\n"
1081
+
1082
+ expected << " : "
1083
+
1084
+ expected << %(<select id="date_minute" name="date[minute]">\n)
1085
+ expected << %(<option value="00">00</option>\n<option value="01">01</option>\n<option value="02">02</option>\n<option value="03">03</option>\n<option value="04" selected="selected">04</option>\n<option value="05">05</option>\n<option value="06">06</option>\n<option value="07">07</option>\n<option value="08">08</option>\n<option value="09">09</option>\n<option value="10">10</option>\n<option value="11">11</option>\n<option value="12">12</option>\n<option value="13">13</option>\n<option value="14">14</option>\n<option value="15">15</option>\n<option value="16">16</option>\n<option value="17">17</option>\n<option value="18">18</option>\n<option value="19">19</option>\n<option value="20">20</option>\n<option value="21">21</option>\n<option value="22">22</option>\n<option value="23">23</option>\n<option value="24">24</option>\n<option value="25">25</option>\n<option value="26">26</option>\n<option value="27">27</option>\n<option value="28">28</option>\n<option value="29">29</option>\n<option value="30">30</option>\n<option value="31">31</option>\n<option value="32">32</option>\n<option value="33">33</option>\n<option value="34">34</option>\n<option value="35">35</option>\n<option value="36">36</option>\n<option value="37">37</option>\n<option value="38">38</option>\n<option value="39">39</option>\n<option value="40">40</option>\n<option value="41">41</option>\n<option value="42">42</option>\n<option value="43">43</option>\n<option value="44">44</option>\n<option value="45">45</option>\n<option value="46">46</option>\n<option value="47">47</option>\n<option value="48">48</option>\n<option value="49">49</option>\n<option value="50">50</option>\n<option value="51">51</option>\n<option value="52">52</option>\n<option value="53">53</option>\n<option value="54">54</option>\n<option value="55">55</option>\n<option value="56">56</option>\n<option value="57">57</option>\n<option value="58">58</option>\n<option value="59">59</option>\n)
1086
+ expected << "</select>\n"
1087
+
1088
+ assert_dom_equal expected, select_time(Time.mktime(2003, 8, 16, 8, 4, 18), :time_separator => ' : ')
1089
+ assert_dom_equal expected, select_time(Time.mktime(2003, 8, 16, 8, 4, 18), :time_separator => ' : ', :include_seconds => false)
1090
+ end
1091
+
1092
+ def test_select_time_with_seconds
1093
+ expected = %(<select id="date_hour" name="date[hour]">\n)
1094
+ expected << %(<option value="00">00</option>\n<option value="01">01</option>\n<option value="02">02</option>\n<option value="03">03</option>\n<option value="04">04</option>\n<option value="05">05</option>\n<option value="06">06</option>\n<option value="07">07</option>\n<option value="08" selected="selected">08</option>\n<option value="09">09</option>\n<option value="10">10</option>\n<option value="11">11</option>\n<option value="12">12</option>\n<option value="13">13</option>\n<option value="14">14</option>\n<option value="15">15</option>\n<option value="16">16</option>\n<option value="17">17</option>\n<option value="18">18</option>\n<option value="19">19</option>\n<option value="20">20</option>\n<option value="21">21</option>\n<option value="22">22</option>\n<option value="23">23</option>\n)
1095
+ expected << "</select>\n"
1096
+
1097
+ expected << %(<select id="date_minute" name="date[minute]">\n)
1098
+ expected << %(<option value="00">00</option>\n<option value="01">01</option>\n<option value="02">02</option>\n<option value="03">03</option>\n<option value="04" selected="selected">04</option>\n<option value="05">05</option>\n<option value="06">06</option>\n<option value="07">07</option>\n<option value="08">08</option>\n<option value="09">09</option>\n<option value="10">10</option>\n<option value="11">11</option>\n<option value="12">12</option>\n<option value="13">13</option>\n<option value="14">14</option>\n<option value="15">15</option>\n<option value="16">16</option>\n<option value="17">17</option>\n<option value="18">18</option>\n<option value="19">19</option>\n<option value="20">20</option>\n<option value="21">21</option>\n<option value="22">22</option>\n<option value="23">23</option>\n<option value="24">24</option>\n<option value="25">25</option>\n<option value="26">26</option>\n<option value="27">27</option>\n<option value="28">28</option>\n<option value="29">29</option>\n<option value="30">30</option>\n<option value="31">31</option>\n<option value="32">32</option>\n<option value="33">33</option>\n<option value="34">34</option>\n<option value="35">35</option>\n<option value="36">36</option>\n<option value="37">37</option>\n<option value="38">38</option>\n<option value="39">39</option>\n<option value="40">40</option>\n<option value="41">41</option>\n<option value="42">42</option>\n<option value="43">43</option>\n<option value="44">44</option>\n<option value="45">45</option>\n<option value="46">46</option>\n<option value="47">47</option>\n<option value="48">48</option>\n<option value="49">49</option>\n<option value="50">50</option>\n<option value="51">51</option>\n<option value="52">52</option>\n<option value="53">53</option>\n<option value="54">54</option>\n<option value="55">55</option>\n<option value="56">56</option>\n<option value="57">57</option>\n<option value="58">58</option>\n<option value="59">59</option>\n)
1099
+ expected << "</select>\n"
1100
+
1101
+ expected << %(<select id="date_second" name="date[second]">\n)
1102
+ expected << %(<option value="00">00</option>\n<option value="01">01</option>\n<option value="02">02</option>\n<option value="03">03</option>\n<option value="04">04</option>\n<option value="05">05</option>\n<option value="06">06</option>\n<option value="07">07</option>\n<option value="08">08</option>\n<option value="09">09</option>\n<option value="10">10</option>\n<option value="11">11</option>\n<option value="12">12</option>\n<option value="13">13</option>\n<option value="14">14</option>\n<option value="15">15</option>\n<option value="16">16</option>\n<option value="17">17</option>\n<option value="18" selected="selected">18</option>\n<option value="19">19</option>\n<option value="20">20</option>\n<option value="21">21</option>\n<option value="22">22</option>\n<option value="23">23</option>\n<option value="24">24</option>\n<option value="25">25</option>\n<option value="26">26</option>\n<option value="27">27</option>\n<option value="28">28</option>\n<option value="29">29</option>\n<option value="30">30</option>\n<option value="31">31</option>\n<option value="32">32</option>\n<option value="33">33</option>\n<option value="34">34</option>\n<option value="35">35</option>\n<option value="36">36</option>\n<option value="37">37</option>\n<option value="38">38</option>\n<option value="39">39</option>\n<option value="40">40</option>\n<option value="41">41</option>\n<option value="42">42</option>\n<option value="43">43</option>\n<option value="44">44</option>\n<option value="45">45</option>\n<option value="46">46</option>\n<option value="47">47</option>\n<option value="48">48</option>\n<option value="49">49</option>\n<option value="50">50</option>\n<option value="51">51</option>\n<option value="52">52</option>\n<option value="53">53</option>\n<option value="54">54</option>\n<option value="55">55</option>\n<option value="56">56</option>\n<option value="57">57</option>\n<option value="58">58</option>\n<option value="59">59</option>\n)
1103
+ expected << "</select>\n"
1104
+
1105
+ assert_dom_equal expected, select_time(Time.mktime(2003, 8, 16, 8, 4, 18), :include_seconds => true)
1106
+ end
1107
+
1108
+ def test_select_time_with_seconds_and_separator
1109
+ expected = %(<select id="date_hour" name="date[hour]">\n)
1110
+ expected << %(<option value="00">00</option>\n<option value="01">01</option>\n<option value="02">02</option>\n<option value="03">03</option>\n<option value="04">04</option>\n<option value="05">05</option>\n<option value="06">06</option>\n<option value="07">07</option>\n<option value="08" selected="selected">08</option>\n<option value="09">09</option>\n<option value="10">10</option>\n<option value="11">11</option>\n<option value="12">12</option>\n<option value="13">13</option>\n<option value="14">14</option>\n<option value="15">15</option>\n<option value="16">16</option>\n<option value="17">17</option>\n<option value="18">18</option>\n<option value="19">19</option>\n<option value="20">20</option>\n<option value="21">21</option>\n<option value="22">22</option>\n<option value="23">23</option>\n)
1111
+ expected << "</select>\n"
1112
+
1113
+ expected << " : "
1114
+
1115
+ expected << %(<select id="date_minute" name="date[minute]">\n)
1116
+ expected << %(<option value="00">00</option>\n<option value="01">01</option>\n<option value="02">02</option>\n<option value="03">03</option>\n<option value="04" selected="selected">04</option>\n<option value="05">05</option>\n<option value="06">06</option>\n<option value="07">07</option>\n<option value="08">08</option>\n<option value="09">09</option>\n<option value="10">10</option>\n<option value="11">11</option>\n<option value="12">12</option>\n<option value="13">13</option>\n<option value="14">14</option>\n<option value="15">15</option>\n<option value="16">16</option>\n<option value="17">17</option>\n<option value="18">18</option>\n<option value="19">19</option>\n<option value="20">20</option>\n<option value="21">21</option>\n<option value="22">22</option>\n<option value="23">23</option>\n<option value="24">24</option>\n<option value="25">25</option>\n<option value="26">26</option>\n<option value="27">27</option>\n<option value="28">28</option>\n<option value="29">29</option>\n<option value="30">30</option>\n<option value="31">31</option>\n<option value="32">32</option>\n<option value="33">33</option>\n<option value="34">34</option>\n<option value="35">35</option>\n<option value="36">36</option>\n<option value="37">37</option>\n<option value="38">38</option>\n<option value="39">39</option>\n<option value="40">40</option>\n<option value="41">41</option>\n<option value="42">42</option>\n<option value="43">43</option>\n<option value="44">44</option>\n<option value="45">45</option>\n<option value="46">46</option>\n<option value="47">47</option>\n<option value="48">48</option>\n<option value="49">49</option>\n<option value="50">50</option>\n<option value="51">51</option>\n<option value="52">52</option>\n<option value="53">53</option>\n<option value="54">54</option>\n<option value="55">55</option>\n<option value="56">56</option>\n<option value="57">57</option>\n<option value="58">58</option>\n<option value="59">59</option>\n)
1117
+ expected << "</select>\n"
1118
+
1119
+ expected << " : "
1120
+
1121
+ expected << %(<select id="date_second" name="date[second]">\n)
1122
+ expected << %(<option value="00">00</option>\n<option value="01">01</option>\n<option value="02">02</option>\n<option value="03">03</option>\n<option value="04">04</option>\n<option value="05">05</option>\n<option value="06">06</option>\n<option value="07">07</option>\n<option value="08">08</option>\n<option value="09">09</option>\n<option value="10">10</option>\n<option value="11">11</option>\n<option value="12">12</option>\n<option value="13">13</option>\n<option value="14">14</option>\n<option value="15">15</option>\n<option value="16">16</option>\n<option value="17">17</option>\n<option value="18" selected="selected">18</option>\n<option value="19">19</option>\n<option value="20">20</option>\n<option value="21">21</option>\n<option value="22">22</option>\n<option value="23">23</option>\n<option value="24">24</option>\n<option value="25">25</option>\n<option value="26">26</option>\n<option value="27">27</option>\n<option value="28">28</option>\n<option value="29">29</option>\n<option value="30">30</option>\n<option value="31">31</option>\n<option value="32">32</option>\n<option value="33">33</option>\n<option value="34">34</option>\n<option value="35">35</option>\n<option value="36">36</option>\n<option value="37">37</option>\n<option value="38">38</option>\n<option value="39">39</option>\n<option value="40">40</option>\n<option value="41">41</option>\n<option value="42">42</option>\n<option value="43">43</option>\n<option value="44">44</option>\n<option value="45">45</option>\n<option value="46">46</option>\n<option value="47">47</option>\n<option value="48">48</option>\n<option value="49">49</option>\n<option value="50">50</option>\n<option value="51">51</option>\n<option value="52">52</option>\n<option value="53">53</option>\n<option value="54">54</option>\n<option value="55">55</option>\n<option value="56">56</option>\n<option value="57">57</option>\n<option value="58">58</option>\n<option value="59">59</option>\n)
1123
+ expected << "</select>\n"
1124
+
1125
+ assert_dom_equal expected, select_time(Time.mktime(2003, 8, 16, 8, 4, 18), :include_seconds => true, :time_separator => ' : ')
1126
+ end
1127
+
1128
+ def test_select_time_with_html_options
1129
+ expected = %(<select id="date_hour" name="date[hour]" class="selector">\n)
1130
+ expected << %(<option value="00">00</option>\n<option value="01">01</option>\n<option value="02">02</option>\n<option value="03">03</option>\n<option value="04">04</option>\n<option value="05">05</option>\n<option value="06">06</option>\n<option value="07">07</option>\n<option value="08" selected="selected">08</option>\n<option value="09">09</option>\n<option value="10">10</option>\n<option value="11">11</option>\n<option value="12">12</option>\n<option value="13">13</option>\n<option value="14">14</option>\n<option value="15">15</option>\n<option value="16">16</option>\n<option value="17">17</option>\n<option value="18">18</option>\n<option value="19">19</option>\n<option value="20">20</option>\n<option value="21">21</option>\n<option value="22">22</option>\n<option value="23">23</option>\n)
1131
+ expected << "</select>\n"
1132
+
1133
+ expected << %(<select id="date_minute" name="date[minute]" class="selector">\n)
1134
+ expected << %(<option value="00">00</option>\n<option value="01">01</option>\n<option value="02">02</option>\n<option value="03">03</option>\n<option value="04" selected="selected">04</option>\n<option value="05">05</option>\n<option value="06">06</option>\n<option value="07">07</option>\n<option value="08">08</option>\n<option value="09">09</option>\n<option value="10">10</option>\n<option value="11">11</option>\n<option value="12">12</option>\n<option value="13">13</option>\n<option value="14">14</option>\n<option value="15">15</option>\n<option value="16">16</option>\n<option value="17">17</option>\n<option value="18">18</option>\n<option value="19">19</option>\n<option value="20">20</option>\n<option value="21">21</option>\n<option value="22">22</option>\n<option value="23">23</option>\n<option value="24">24</option>\n<option value="25">25</option>\n<option value="26">26</option>\n<option value="27">27</option>\n<option value="28">28</option>\n<option value="29">29</option>\n<option value="30">30</option>\n<option value="31">31</option>\n<option value="32">32</option>\n<option value="33">33</option>\n<option value="34">34</option>\n<option value="35">35</option>\n<option value="36">36</option>\n<option value="37">37</option>\n<option value="38">38</option>\n<option value="39">39</option>\n<option value="40">40</option>\n<option value="41">41</option>\n<option value="42">42</option>\n<option value="43">43</option>\n<option value="44">44</option>\n<option value="45">45</option>\n<option value="46">46</option>\n<option value="47">47</option>\n<option value="48">48</option>\n<option value="49">49</option>\n<option value="50">50</option>\n<option value="51">51</option>\n<option value="52">52</option>\n<option value="53">53</option>\n<option value="54">54</option>\n<option value="55">55</option>\n<option value="56">56</option>\n<option value="57">57</option>\n<option value="58">58</option>\n<option value="59">59</option>\n)
1135
+ expected << "</select>\n"
1136
+
1137
+ assert_dom_equal expected, select_time(Time.mktime(2003, 8, 16, 8, 4, 18), {}, :class => 'selector')
1138
+ assert_dom_equal expected, select_time(Time.mktime(2003, 8, 16, 8, 4, 18), {:include_seconds => false}, :class => 'selector')
1139
+ end
1140
+
1141
+ def test_select_time_should_work_with_date
1142
+ assert_nothing_raised { select_time(Date.today) }
1143
+ end
1144
+
1145
+ def test_select_time_with_default_prompt
1146
+ expected = %(<select id="date_hour" name="date[hour]">\n)
1147
+ expected << %(<option value="">Hour</option>\n<option value="00">00</option>\n<option value="01">01</option>\n<option value="02">02</option>\n<option value="03">03</option>\n<option value="04">04</option>\n<option value="05">05</option>\n<option value="06">06</option>\n<option value="07">07</option>\n<option value="08" selected="selected">08</option>\n<option value="09">09</option>\n<option value="10">10</option>\n<option value="11">11</option>\n<option value="12">12</option>\n<option value="13">13</option>\n<option value="14">14</option>\n<option value="15">15</option>\n<option value="16">16</option>\n<option value="17">17</option>\n<option value="18">18</option>\n<option value="19">19</option>\n<option value="20">20</option>\n<option value="21">21</option>\n<option value="22">22</option>\n<option value="23">23</option>\n)
1148
+ expected << "</select>\n"
1149
+
1150
+ expected << %(<select id="date_minute" name="date[minute]">\n)
1151
+ expected << %(<option value="">Minute</option>\n<option value="00">00</option>\n<option value="01">01</option>\n<option value="02">02</option>\n<option value="03">03</option>\n<option value="04" selected="selected">04</option>\n<option value="05">05</option>\n<option value="06">06</option>\n<option value="07">07</option>\n<option value="08">08</option>\n<option value="09">09</option>\n<option value="10">10</option>\n<option value="11">11</option>\n<option value="12">12</option>\n<option value="13">13</option>\n<option value="14">14</option>\n<option value="15">15</option>\n<option value="16">16</option>\n<option value="17">17</option>\n<option value="18">18</option>\n<option value="19">19</option>\n<option value="20">20</option>\n<option value="21">21</option>\n<option value="22">22</option>\n<option value="23">23</option>\n<option value="24">24</option>\n<option value="25">25</option>\n<option value="26">26</option>\n<option value="27">27</option>\n<option value="28">28</option>\n<option value="29">29</option>\n<option value="30">30</option>\n<option value="31">31</option>\n<option value="32">32</option>\n<option value="33">33</option>\n<option value="34">34</option>\n<option value="35">35</option>\n<option value="36">36</option>\n<option value="37">37</option>\n<option value="38">38</option>\n<option value="39">39</option>\n<option value="40">40</option>\n<option value="41">41</option>\n<option value="42">42</option>\n<option value="43">43</option>\n<option value="44">44</option>\n<option value="45">45</option>\n<option value="46">46</option>\n<option value="47">47</option>\n<option value="48">48</option>\n<option value="49">49</option>\n<option value="50">50</option>\n<option value="51">51</option>\n<option value="52">52</option>\n<option value="53">53</option>\n<option value="54">54</option>\n<option value="55">55</option>\n<option value="56">56</option>\n<option value="57">57</option>\n<option value="58">58</option>\n<option value="59">59</option>\n)
1152
+ expected << "</select>\n"
1153
+
1154
+ expected << %(<select id="date_second" name="date[second]">\n)
1155
+ expected << %(<option value="">Seconds</option>\n<option value="00">00</option>\n<option value="01">01</option>\n<option value="02">02</option>\n<option value="03">03</option>\n<option value="04">04</option>\n<option value="05">05</option>\n<option value="06">06</option>\n<option value="07">07</option>\n<option value="08">08</option>\n<option value="09">09</option>\n<option value="10">10</option>\n<option value="11">11</option>\n<option value="12">12</option>\n<option value="13">13</option>\n<option value="14">14</option>\n<option value="15">15</option>\n<option value="16">16</option>\n<option value="17">17</option>\n<option value="18" selected="selected">18</option>\n<option value="19">19</option>\n<option value="20">20</option>\n<option value="21">21</option>\n<option value="22">22</option>\n<option value="23">23</option>\n<option value="24">24</option>\n<option value="25">25</option>\n<option value="26">26</option>\n<option value="27">27</option>\n<option value="28">28</option>\n<option value="29">29</option>\n<option value="30">30</option>\n<option value="31">31</option>\n<option value="32">32</option>\n<option value="33">33</option>\n<option value="34">34</option>\n<option value="35">35</option>\n<option value="36">36</option>\n<option value="37">37</option>\n<option value="38">38</option>\n<option value="39">39</option>\n<option value="40">40</option>\n<option value="41">41</option>\n<option value="42">42</option>\n<option value="43">43</option>\n<option value="44">44</option>\n<option value="45">45</option>\n<option value="46">46</option>\n<option value="47">47</option>\n<option value="48">48</option>\n<option value="49">49</option>\n<option value="50">50</option>\n<option value="51">51</option>\n<option value="52">52</option>\n<option value="53">53</option>\n<option value="54">54</option>\n<option value="55">55</option>\n<option value="56">56</option>\n<option value="57">57</option>\n<option value="58">58</option>\n<option value="59">59</option>\n)
1156
+ expected << "</select>\n"
1157
+
1158
+ assert_dom_equal expected, select_time(Time.mktime(2003, 8, 16, 8, 4, 18), :include_seconds => true, :prompt => true)
1159
+ end
1160
+
1161
+ def test_select_time_with_custom_prompt
1162
+
1163
+ expected = %(<select id="date_hour" name="date[hour]">\n)
1164
+ expected << %(<option value="">Choose hour</option>\n<option value="00">00</option>\n<option value="01">01</option>\n<option value="02">02</option>\n<option value="03">03</option>\n<option value="04">04</option>\n<option value="05">05</option>\n<option value="06">06</option>\n<option value="07">07</option>\n<option value="08" selected="selected">08</option>\n<option value="09">09</option>\n<option value="10">10</option>\n<option value="11">11</option>\n<option value="12">12</option>\n<option value="13">13</option>\n<option value="14">14</option>\n<option value="15">15</option>\n<option value="16">16</option>\n<option value="17">17</option>\n<option value="18">18</option>\n<option value="19">19</option>\n<option value="20">20</option>\n<option value="21">21</option>\n<option value="22">22</option>\n<option value="23">23</option>\n)
1165
+ expected << "</select>\n"
1166
+
1167
+ expected << %(<select id="date_minute" name="date[minute]">\n)
1168
+ expected << %(<option value="">Choose minute</option>\n<option value="00">00</option>\n<option value="01">01</option>\n<option value="02">02</option>\n<option value="03">03</option>\n<option value="04" selected="selected">04</option>\n<option value="05">05</option>\n<option value="06">06</option>\n<option value="07">07</option>\n<option value="08">08</option>\n<option value="09">09</option>\n<option value="10">10</option>\n<option value="11">11</option>\n<option value="12">12</option>\n<option value="13">13</option>\n<option value="14">14</option>\n<option value="15">15</option>\n<option value="16">16</option>\n<option value="17">17</option>\n<option value="18">18</option>\n<option value="19">19</option>\n<option value="20">20</option>\n<option value="21">21</option>\n<option value="22">22</option>\n<option value="23">23</option>\n<option value="24">24</option>\n<option value="25">25</option>\n<option value="26">26</option>\n<option value="27">27</option>\n<option value="28">28</option>\n<option value="29">29</option>\n<option value="30">30</option>\n<option value="31">31</option>\n<option value="32">32</option>\n<option value="33">33</option>\n<option value="34">34</option>\n<option value="35">35</option>\n<option value="36">36</option>\n<option value="37">37</option>\n<option value="38">38</option>\n<option value="39">39</option>\n<option value="40">40</option>\n<option value="41">41</option>\n<option value="42">42</option>\n<option value="43">43</option>\n<option value="44">44</option>\n<option value="45">45</option>\n<option value="46">46</option>\n<option value="47">47</option>\n<option value="48">48</option>\n<option value="49">49</option>\n<option value="50">50</option>\n<option value="51">51</option>\n<option value="52">52</option>\n<option value="53">53</option>\n<option value="54">54</option>\n<option value="55">55</option>\n<option value="56">56</option>\n<option value="57">57</option>\n<option value="58">58</option>\n<option value="59">59</option>\n)
1169
+ expected << "</select>\n"
1170
+
1171
+ expected << %(<select id="date_second" name="date[second]">\n)
1172
+ expected << %(<option value="">Choose seconds</option>\n<option value="00">00</option>\n<option value="01">01</option>\n<option value="02">02</option>\n<option value="03">03</option>\n<option value="04">04</option>\n<option value="05">05</option>\n<option value="06">06</option>\n<option value="07">07</option>\n<option value="08">08</option>\n<option value="09">09</option>\n<option value="10">10</option>\n<option value="11">11</option>\n<option value="12">12</option>\n<option value="13">13</option>\n<option value="14">14</option>\n<option value="15">15</option>\n<option value="16">16</option>\n<option value="17">17</option>\n<option value="18" selected="selected">18</option>\n<option value="19">19</option>\n<option value="20">20</option>\n<option value="21">21</option>\n<option value="22">22</option>\n<option value="23">23</option>\n<option value="24">24</option>\n<option value="25">25</option>\n<option value="26">26</option>\n<option value="27">27</option>\n<option value="28">28</option>\n<option value="29">29</option>\n<option value="30">30</option>\n<option value="31">31</option>\n<option value="32">32</option>\n<option value="33">33</option>\n<option value="34">34</option>\n<option value="35">35</option>\n<option value="36">36</option>\n<option value="37">37</option>\n<option value="38">38</option>\n<option value="39">39</option>\n<option value="40">40</option>\n<option value="41">41</option>\n<option value="42">42</option>\n<option value="43">43</option>\n<option value="44">44</option>\n<option value="45">45</option>\n<option value="46">46</option>\n<option value="47">47</option>\n<option value="48">48</option>\n<option value="49">49</option>\n<option value="50">50</option>\n<option value="51">51</option>\n<option value="52">52</option>\n<option value="53">53</option>\n<option value="54">54</option>\n<option value="55">55</option>\n<option value="56">56</option>\n<option value="57">57</option>\n<option value="58">58</option>\n<option value="59">59</option>\n)
1173
+ expected << "</select>\n"
1174
+
1175
+ assert_dom_equal expected, select_time(Time.mktime(2003, 8, 16, 8, 4, 18), :prompt => true, :include_seconds => true,
1176
+ :prompt => {:hour => 'Choose hour', :minute => 'Choose minute', :second => 'Choose seconds'})
1177
+ end
1178
+
1179
+ def test_date_select
1180
+ @post = Post.new
1181
+ @post.written_on = Date.new(2004, 6, 15)
1182
+
1183
+ expected = %{<select id="post_written_on_1i" name="post[written_on(1i)]">\n}
1184
+ expected << %{<option value="1999">1999</option>\n<option value="2000">2000</option>\n<option value="2001">2001</option>\n<option value="2002">2002</option>\n<option value="2003">2003</option>\n<option value="2004" selected="selected">2004</option>\n<option value="2005">2005</option>\n<option value="2006">2006</option>\n<option value="2007">2007</option>\n<option value="2008">2008</option>\n<option value="2009">2009</option>\n}
1185
+ expected << "</select>\n"
1186
+
1187
+ expected << %{<select id="post_written_on_2i" name="post[written_on(2i)]">\n}
1188
+ expected << %{<option value="1">January</option>\n<option value="2">February</option>\n<option value="3">March</option>\n<option value="4">April</option>\n<option value="5">May</option>\n<option value="6" selected="selected">June</option>\n<option value="7">July</option>\n<option value="8">August</option>\n<option value="9">September</option>\n<option value="10">October</option>\n<option value="11">November</option>\n<option value="12">December</option>\n}
1189
+ expected << "</select>\n"
1190
+
1191
+ expected << %{<select id="post_written_on_3i" name="post[written_on(3i)]">\n}
1192
+ expected << %{<option value="1">1</option>\n<option value="2">2</option>\n<option value="3">3</option>\n<option value="4">4</option>\n<option value="5">5</option>\n<option value="6">6</option>\n<option value="7">7</option>\n<option value="8">8</option>\n<option value="9">9</option>\n<option value="10">10</option>\n<option value="11">11</option>\n<option value="12">12</option>\n<option value="13">13</option>\n<option value="14">14</option>\n<option value="15" selected="selected">15</option>\n<option value="16">16</option>\n<option value="17">17</option>\n<option value="18">18</option>\n<option value="19">19</option>\n<option value="20">20</option>\n<option value="21">21</option>\n<option value="22">22</option>\n<option value="23">23</option>\n<option value="24">24</option>\n<option value="25">25</option>\n<option value="26">26</option>\n<option value="27">27</option>\n<option value="28">28</option>\n<option value="29">29</option>\n<option value="30">30</option>\n<option value="31">31</option>\n}
1193
+
1194
+ expected << "</select>\n"
1195
+
1196
+ assert_dom_equal expected, date_select("post", "written_on")
1197
+ end
1198
+
1199
+ def test_date_select_without_day
1200
+ @post = Post.new
1201
+ @post.written_on = Date.new(2004, 6, 15)
1202
+
1203
+ expected = "<input type=\"hidden\" id=\"post_written_on_3i\" name=\"post[written_on(3i)]\" value=\"1\" />\n"
1204
+
1205
+ expected << %{<select id="post_written_on_2i" name="post[written_on(2i)]">\n}
1206
+ expected << %{<option value="1">January</option>\n<option value="2">February</option>\n<option value="3">March</option>\n<option value="4">April</option>\n<option value="5">May</option>\n<option value="6" selected="selected">June</option>\n<option value="7">July</option>\n<option value="8">August</option>\n<option value="9">September</option>\n<option value="10">October</option>\n<option value="11">November</option>\n<option value="12">December</option>\n}
1207
+ expected << "</select>\n"
1208
+
1209
+ expected << %{<select id="post_written_on_1i" name="post[written_on(1i)]">\n}
1210
+ expected << %{<option value="1999">1999</option>\n<option value="2000">2000</option>\n<option value="2001">2001</option>\n<option value="2002">2002</option>\n<option value="2003">2003</option>\n<option value="2004" selected="selected">2004</option>\n<option value="2005">2005</option>\n<option value="2006">2006</option>\n<option value="2007">2007</option>\n<option value="2008">2008</option>\n<option value="2009">2009</option>\n}
1211
+ expected << "</select>\n"
1212
+
1213
+ assert_dom_equal expected, date_select("post", "written_on", :order => [ :month, :year ])
1214
+ end
1215
+
1216
+ def test_date_select_within_fields_for
1217
+ @post = Post.new
1218
+ @post.written_on = Date.new(2004, 6, 15)
1219
+
1220
+ fields_for :post, @post do |f|
1221
+ concat f.date_select(:written_on)
1222
+ end
1223
+
1224
+ expected = "<select id='post_written_on_1i' name='post[written_on(1i)]'>\n<option value='1999'>1999</option>\n<option value='2000'>2000</option>\n<option value='2001'>2001</option>\n<option value='2002'>2002</option>\n<option value='2003'>2003</option>\n<option selected='selected' value='2004'>2004</option>\n<option value='2005'>2005</option>\n<option value='2006'>2006</option>\n<option value='2007'>2007</option>\n<option value='2008'>2008</option>\n<option value='2009'>2009</option>\n</select>\n"
1225
+ expected << "<select id='post_written_on_2i' name='post[written_on(2i)]'>\n<option value='1'>January</option>\n<option value='2'>February</option>\n<option value='3'>March</option>\n<option value='4'>April</option>\n<option value='5'>May</option>\n<option selected='selected' value='6'>June</option>\n<option value='7'>July</option>\n<option value='8'>August</option>\n<option value='9'>September</option>\n<option value='10'>October</option>\n<option value='11'>November</option>\n<option value='12'>December</option>\n</select>\n"
1226
+ expected << "<select id='post_written_on_3i' name='post[written_on(3i)]'>\n<option value='1'>1</option>\n<option value='2'>2</option>\n<option value='3'>3</option>\n<option value='4'>4</option>\n<option value='5'>5</option>\n<option value='6'>6</option>\n<option value='7'>7</option>\n<option value='8'>8</option>\n<option value='9'>9</option>\n<option value='10'>10</option>\n<option value='11'>11</option>\n<option value='12'>12</option>\n<option value='13'>13</option>\n<option value='14'>14</option>\n<option selected='selected' value='15'>15</option>\n<option value='16'>16</option>\n<option value='17'>17</option>\n<option value='18'>18</option>\n<option value='19'>19</option>\n<option value='20'>20</option>\n<option value='21'>21</option>\n<option value='22'>22</option>\n<option value='23'>23</option>\n<option value='24'>24</option>\n<option value='25'>25</option>\n<option value='26'>26</option>\n<option value='27'>27</option>\n<option value='28'>28</option>\n<option value='29'>29</option>\n<option value='30'>30</option>\n<option value='31'>31</option>\n</select>\n"
1227
+
1228
+ assert_dom_equal(expected, output_buffer)
1229
+ end
1230
+
1231
+ def test_date_select_within_fields_for_with_index
1232
+ @post = Post.new
1233
+ @post.written_on = Date.new(2004, 6, 15)
1234
+ id = 27
1235
+
1236
+ fields_for :post, @post, :index => id do |f|
1237
+ concat f.date_select(:written_on)
1238
+ end
1239
+
1240
+ expected = "<select id='post_#{id}_written_on_1i' name='post[#{id}][written_on(1i)]'>\n<option value='1999'>1999</option>\n<option value='2000'>2000</option>\n<option value='2001'>2001</option>\n<option value='2002'>2002</option>\n<option value='2003'>2003</option>\n<option selected='selected' value='2004'>2004</option>\n<option value='2005'>2005</option>\n<option value='2006'>2006</option>\n<option value='2007'>2007</option>\n<option value='2008'>2008</option>\n<option value='2009'>2009</option>\n</select>\n"
1241
+ expected << "<select id='post_#{id}_written_on_2i' name='post[#{id}][written_on(2i)]'>\n<option value='1'>January</option>\n<option value='2'>February</option>\n<option value='3'>March</option>\n<option value='4'>April</option>\n<option value='5'>May</option>\n<option selected='selected' value='6'>June</option>\n<option value='7'>July</option>\n<option value='8'>August</option>\n<option value='9'>September</option>\n<option value='10'>October</option>\n<option value='11'>November</option>\n<option value='12'>December</option>\n</select>\n"
1242
+ expected << "<select id='post_#{id}_written_on_3i' name='post[#{id}][written_on(3i)]'>\n<option value='1'>1</option>\n<option value='2'>2</option>\n<option value='3'>3</option>\n<option value='4'>4</option>\n<option value='5'>5</option>\n<option value='6'>6</option>\n<option value='7'>7</option>\n<option value='8'>8</option>\n<option value='9'>9</option>\n<option value='10'>10</option>\n<option value='11'>11</option>\n<option value='12'>12</option>\n<option value='13'>13</option>\n<option value='14'>14</option>\n<option selected='selected' value='15'>15</option>\n<option value='16'>16</option>\n<option value='17'>17</option>\n<option value='18'>18</option>\n<option value='19'>19</option>\n<option value='20'>20</option>\n<option value='21'>21</option>\n<option value='22'>22</option>\n<option value='23'>23</option>\n<option value='24'>24</option>\n<option value='25'>25</option>\n<option value='26'>26</option>\n<option value='27'>27</option>\n<option value='28'>28</option>\n<option value='29'>29</option>\n<option value='30'>30</option>\n<option value='31'>31</option>\n</select>\n"
1243
+
1244
+ assert_dom_equal(expected, output_buffer)
1245
+ end
1246
+
1247
+ def test_date_select_within_fields_for_with_blank_index
1248
+ @post = Post.new
1249
+ @post.written_on = Date.new(2004, 6, 15)
1250
+ id = nil
1251
+
1252
+ fields_for :post, @post, :index => id do |f|
1253
+ concat f.date_select(:written_on)
1254
+ end
1255
+
1256
+ expected = "<select id='post_#{id}_written_on_1i' name='post[#{id}][written_on(1i)]'>\n<option value='1999'>1999</option>\n<option value='2000'>2000</option>\n<option value='2001'>2001</option>\n<option value='2002'>2002</option>\n<option value='2003'>2003</option>\n<option selected='selected' value='2004'>2004</option>\n<option value='2005'>2005</option>\n<option value='2006'>2006</option>\n<option value='2007'>2007</option>\n<option value='2008'>2008</option>\n<option value='2009'>2009</option>\n</select>\n"
1257
+ expected << "<select id='post_#{id}_written_on_2i' name='post[#{id}][written_on(2i)]'>\n<option value='1'>January</option>\n<option value='2'>February</option>\n<option value='3'>March</option>\n<option value='4'>April</option>\n<option value='5'>May</option>\n<option selected='selected' value='6'>June</option>\n<option value='7'>July</option>\n<option value='8'>August</option>\n<option value='9'>September</option>\n<option value='10'>October</option>\n<option value='11'>November</option>\n<option value='12'>December</option>\n</select>\n"
1258
+ expected << "<select id='post_#{id}_written_on_3i' name='post[#{id}][written_on(3i)]'>\n<option value='1'>1</option>\n<option value='2'>2</option>\n<option value='3'>3</option>\n<option value='4'>4</option>\n<option value='5'>5</option>\n<option value='6'>6</option>\n<option value='7'>7</option>\n<option value='8'>8</option>\n<option value='9'>9</option>\n<option value='10'>10</option>\n<option value='11'>11</option>\n<option value='12'>12</option>\n<option value='13'>13</option>\n<option value='14'>14</option>\n<option selected='selected' value='15'>15</option>\n<option value='16'>16</option>\n<option value='17'>17</option>\n<option value='18'>18</option>\n<option value='19'>19</option>\n<option value='20'>20</option>\n<option value='21'>21</option>\n<option value='22'>22</option>\n<option value='23'>23</option>\n<option value='24'>24</option>\n<option value='25'>25</option>\n<option value='26'>26</option>\n<option value='27'>27</option>\n<option value='28'>28</option>\n<option value='29'>29</option>\n<option value='30'>30</option>\n<option value='31'>31</option>\n</select>\n"
1259
+
1260
+ assert_dom_equal(expected, output_buffer)
1261
+ end
1262
+
1263
+ def test_date_select_with_index
1264
+ @post = Post.new
1265
+ @post.written_on = Date.new(2004, 6, 15)
1266
+ id = 456
1267
+
1268
+ expected = %{<select id="post_456_written_on_1i" name="post[#{id}][written_on(1i)]">\n}
1269
+ expected << %{<option value="1999">1999</option>\n<option value="2000">2000</option>\n<option value="2001">2001</option>\n<option value="2002">2002</option>\n<option value="2003">2003</option>\n<option value="2004" selected="selected">2004</option>\n<option value="2005">2005</option>\n<option value="2006">2006</option>\n<option value="2007">2007</option>\n<option value="2008">2008</option>\n<option value="2009">2009</option>\n}
1270
+ expected << "</select>\n"
1271
+
1272
+ expected << %{<select id="post_456_written_on_2i" name="post[#{id}][written_on(2i)]">\n}
1273
+ expected << %{<option value="1">January</option>\n<option value="2">February</option>\n<option value="3">March</option>\n<option value="4">April</option>\n<option value="5">May</option>\n<option value="6" selected="selected">June</option>\n<option value="7">July</option>\n<option value="8">August</option>\n<option value="9">September</option>\n<option value="10">October</option>\n<option value="11">November</option>\n<option value="12">December</option>\n}
1274
+ expected << "</select>\n"
1275
+
1276
+ expected << %{<select id="post_456_written_on_3i" name="post[#{id}][written_on(3i)]">\n}
1277
+ expected << %{<option value="1">1</option>\n<option value="2">2</option>\n<option value="3">3</option>\n<option value="4">4</option>\n<option value="5">5</option>\n<option value="6">6</option>\n<option value="7">7</option>\n<option value="8">8</option>\n<option value="9">9</option>\n<option value="10">10</option>\n<option value="11">11</option>\n<option value="12">12</option>\n<option value="13">13</option>\n<option value="14">14</option>\n<option value="15" selected="selected">15</option>\n<option value="16">16</option>\n<option value="17">17</option>\n<option value="18">18</option>\n<option value="19">19</option>\n<option value="20">20</option>\n<option value="21">21</option>\n<option value="22">22</option>\n<option value="23">23</option>\n<option value="24">24</option>\n<option value="25">25</option>\n<option value="26">26</option>\n<option value="27">27</option>\n<option value="28">28</option>\n<option value="29">29</option>\n<option value="30">30</option>\n<option value="31">31</option>\n}
1278
+ expected << "</select>\n"
1279
+
1280
+ assert_dom_equal expected, date_select("post", "written_on", :index => id)
1281
+ end
1282
+
1283
+ def test_date_select_with_auto_index
1284
+ @post = Post.new
1285
+ @post.written_on = Date.new(2004, 6, 15)
1286
+ id = 123
1287
+
1288
+ expected = %{<select id="post_123_written_on_1i" name="post[#{id}][written_on(1i)]">\n}
1289
+ expected << %{<option value="1999">1999</option>\n<option value="2000">2000</option>\n<option value="2001">2001</option>\n<option value="2002">2002</option>\n<option value="2003">2003</option>\n<option value="2004" selected="selected">2004</option>\n<option value="2005">2005</option>\n<option value="2006">2006</option>\n<option value="2007">2007</option>\n<option value="2008">2008</option>\n<option value="2009">2009</option>\n}
1290
+ expected << "</select>\n"
1291
+
1292
+ expected << %{<select id="post_123_written_on_2i" name="post[#{id}][written_on(2i)]">\n}
1293
+ expected << %{<option value="1">January</option>\n<option value="2">February</option>\n<option value="3">March</option>\n<option value="4">April</option>\n<option value="5">May</option>\n<option value="6" selected="selected">June</option>\n<option value="7">July</option>\n<option value="8">August</option>\n<option value="9">September</option>\n<option value="10">October</option>\n<option value="11">November</option>\n<option value="12">December</option>\n}
1294
+ expected << "</select>\n"
1295
+
1296
+ expected << %{<select id="post_123_written_on_3i" name="post[#{id}][written_on(3i)]">\n}
1297
+ expected << %{<option value="1">1</option>\n<option value="2">2</option>\n<option value="3">3</option>\n<option value="4">4</option>\n<option value="5">5</option>\n<option value="6">6</option>\n<option value="7">7</option>\n<option value="8">8</option>\n<option value="9">9</option>\n<option value="10">10</option>\n<option value="11">11</option>\n<option value="12">12</option>\n<option value="13">13</option>\n<option value="14">14</option>\n<option value="15" selected="selected">15</option>\n<option value="16">16</option>\n<option value="17">17</option>\n<option value="18">18</option>\n<option value="19">19</option>\n<option value="20">20</option>\n<option value="21">21</option>\n<option value="22">22</option>\n<option value="23">23</option>\n<option value="24">24</option>\n<option value="25">25</option>\n<option value="26">26</option>\n<option value="27">27</option>\n<option value="28">28</option>\n<option value="29">29</option>\n<option value="30">30</option>\n<option value="31">31</option>\n}
1298
+ expected << "</select>\n"
1299
+
1300
+ assert_dom_equal expected, date_select("post[]", "written_on")
1301
+ end
1302
+
1303
+ def test_date_select_with_different_order
1304
+ @post = Post.new
1305
+ @post.written_on = Date.new(2004, 6, 15)
1306
+
1307
+ expected = %{<select id="post_written_on_3i" name="post[written_on(3i)]">\n}
1308
+ 1.upto(31) { |i| expected << %(<option value="#{i}"#{' selected="selected"' if i == 15}>#{i}</option>\n) }
1309
+ expected << "</select>\n"
1310
+
1311
+ expected << %{<select id="post_written_on_2i" name="post[written_on(2i)]">\n}
1312
+ 1.upto(12) { |i| expected << %(<option value="#{i}"#{' selected="selected"' if i == 6}>#{Date::MONTHNAMES[i]}</option>\n) }
1313
+ expected << "</select>\n"
1314
+
1315
+ expected << %{<select id="post_written_on_1i" name="post[written_on(1i)]">\n}
1316
+ 1999.upto(2009) { |i| expected << %(<option value="#{i}"#{' selected="selected"' if i == 2004}>#{i}</option>\n) }
1317
+ expected << "</select>\n"
1318
+
1319
+ assert_dom_equal expected, date_select("post", "written_on", :order => [:day, :month, :year])
1320
+ end
1321
+
1322
+ def test_date_select_with_nil
1323
+ @post = Post.new
1324
+
1325
+ start_year = Time.now.year-5
1326
+ end_year = Time.now.year+5
1327
+ expected = %{<select id="post_written_on_1i" name="post[written_on(1i)]">\n}
1328
+ start_year.upto(end_year) { |i| expected << %(<option value="#{i}"#{' selected="selected"' if i == Time.now.year}>#{i}</option>\n) }
1329
+ expected << "</select>\n"
1330
+
1331
+ expected << %{<select id="post_written_on_2i" name="post[written_on(2i)]">\n}
1332
+ 1.upto(12) { |i| expected << %(<option value="#{i}"#{' selected="selected"' if i == Time.now.month}>#{Date::MONTHNAMES[i]}</option>\n) }
1333
+ expected << "</select>\n"
1334
+
1335
+ expected << %{<select id="post_written_on_3i" name="post[written_on(3i)]">\n}
1336
+ 1.upto(31) { |i| expected << %(<option value="#{i}"#{' selected="selected"' if i == Time.now.day}>#{i}</option>\n) }
1337
+ expected << "</select>\n"
1338
+
1339
+ assert_dom_equal expected, date_select("post", "written_on")
1340
+ end
1341
+
1342
+ def test_date_select_with_nil_and_blank
1343
+ @post = Post.new
1344
+
1345
+ start_year = Time.now.year-5
1346
+ end_year = Time.now.year+5
1347
+ expected = %{<select id="post_written_on_1i" name="post[written_on(1i)]">\n}
1348
+ expected << "<option value=\"\"></option>\n"
1349
+ start_year.upto(end_year) { |i| expected << %(<option value="#{i}">#{i}</option>\n) }
1350
+ expected << "</select>\n"
1351
+
1352
+ expected << %{<select id="post_written_on_2i" name="post[written_on(2i)]">\n}
1353
+ expected << "<option value=\"\"></option>\n"
1354
+ 1.upto(12) { |i| expected << %(<option value="#{i}">#{Date::MONTHNAMES[i]}</option>\n) }
1355
+ expected << "</select>\n"
1356
+
1357
+ expected << %{<select id="post_written_on_3i" name="post[written_on(3i)]">\n}
1358
+ expected << "<option value=\"\"></option>\n"
1359
+ 1.upto(31) { |i| expected << %(<option value="#{i}">#{i}</option>\n) }
1360
+ expected << "</select>\n"
1361
+
1362
+ assert_dom_equal expected, date_select("post", "written_on", :include_blank => true)
1363
+ end
1364
+
1365
+ def test_date_select_with_nil_and_blank_and_order
1366
+ @post = Post.new
1367
+
1368
+ start_year = Time.now.year-5
1369
+ end_year = Time.now.year+5
1370
+
1371
+ expected = '<input name="post[written_on(3i)]" type="hidden" id="post_written_on_3i"/>' + "\n"
1372
+ expected << %{<select id="post_written_on_1i" name="post[written_on(1i)]">\n}
1373
+ expected << "<option value=\"\"></option>\n"
1374
+ start_year.upto(end_year) { |i| expected << %(<option value="#{i}">#{i}</option>\n) }
1375
+ expected << "</select>\n"
1376
+
1377
+ expected << %{<select id="post_written_on_2i" name="post[written_on(2i)]">\n}
1378
+ expected << "<option value=\"\"></option>\n"
1379
+ 1.upto(12) { |i| expected << %(<option value="#{i}">#{Date::MONTHNAMES[i]}</option>\n) }
1380
+ expected << "</select>\n"
1381
+
1382
+ assert_dom_equal expected, date_select("post", "written_on", :order=>[:year, :month], :include_blank=>true)
1383
+ end
1384
+
1385
+ def test_date_select_with_nil_and_blank_and_order
1386
+ @post = Post.new
1387
+
1388
+ start_year = Time.now.year-5
1389
+ end_year = Time.now.year+5
1390
+
1391
+ expected = '<input name="post[written_on(3i)]" type="hidden" id="post_written_on_3i"/>' + "\n"
1392
+ expected << %{<select id="post_written_on_1i" name="post[written_on(1i)]">\n}
1393
+ expected << "<option value=\"\"></option>\n"
1394
+ start_year.upto(end_year) { |i| expected << %(<option value="#{i}">#{i}</option>\n) }
1395
+ expected << "</select>\n"
1396
+
1397
+ expected << %{<select id="post_written_on_2i" name="post[written_on(2i)]">\n}
1398
+ expected << "<option value=\"\"></option>\n"
1399
+ 1.upto(12) { |i| expected << %(<option value="#{i}">#{Date::MONTHNAMES[i]}</option>\n) }
1400
+ expected << "</select>\n"
1401
+
1402
+ assert_dom_equal expected, date_select("post", "written_on", :order=>[:year, :month], :include_blank=>true)
1403
+ end
1404
+
1405
+ def test_date_select_cant_override_discard_hour
1406
+ @post = Post.new
1407
+ @post.written_on = Date.new(2004, 6, 15)
1408
+
1409
+ expected = %{<select id="post_written_on_1i" name="post[written_on(1i)]">\n}
1410
+ expected << %{<option value="1999">1999</option>\n<option value="2000">2000</option>\n<option value="2001">2001</option>\n<option value="2002">2002</option>\n<option value="2003">2003</option>\n<option value="2004" selected="selected">2004</option>\n<option value="2005">2005</option>\n<option value="2006">2006</option>\n<option value="2007">2007</option>\n<option value="2008">2008</option>\n<option value="2009">2009</option>\n}
1411
+ expected << "</select>\n"
1412
+
1413
+ expected << %{<select id="post_written_on_2i" name="post[written_on(2i)]">\n}
1414
+ expected << %{<option value="1">January</option>\n<option value="2">February</option>\n<option value="3">March</option>\n<option value="4">April</option>\n<option value="5">May</option>\n<option value="6" selected="selected">June</option>\n<option value="7">July</option>\n<option value="8">August</option>\n<option value="9">September</option>\n<option value="10">October</option>\n<option value="11">November</option>\n<option value="12">December</option>\n}
1415
+ expected << "</select>\n"
1416
+
1417
+ expected << %{<select id="post_written_on_3i" name="post[written_on(3i)]">\n}
1418
+ expected << %{<option value="1">1</option>\n<option value="2">2</option>\n<option value="3">3</option>\n<option value="4">4</option>\n<option value="5">5</option>\n<option value="6">6</option>\n<option value="7">7</option>\n<option value="8">8</option>\n<option value="9">9</option>\n<option value="10">10</option>\n<option value="11">11</option>\n<option value="12">12</option>\n<option value="13">13</option>\n<option value="14">14</option>\n<option value="15" selected="selected">15</option>\n<option value="16">16</option>\n<option value="17">17</option>\n<option value="18">18</option>\n<option value="19">19</option>\n<option value="20">20</option>\n<option value="21">21</option>\n<option value="22">22</option>\n<option value="23">23</option>\n<option value="24">24</option>\n<option value="25">25</option>\n<option value="26">26</option>\n<option value="27">27</option>\n<option value="28">28</option>\n<option value="29">29</option>\n<option value="30">30</option>\n<option value="31">31</option>\n}
1419
+ expected << "</select>\n"
1420
+
1421
+ assert_dom_equal expected, date_select("post", "written_on", :discard_hour => false)
1422
+ end
1423
+
1424
+ def test_date_select_with_html_options
1425
+ @post = Post.new
1426
+ @post.written_on = Date.new(2004, 6, 15)
1427
+
1428
+ expected = %{<select id="post_written_on_1i" name="post[written_on(1i)]" class="selector">\n}
1429
+ expected << %{<option value="1999">1999</option>\n<option value="2000">2000</option>\n<option value="2001">2001</option>\n<option value="2002">2002</option>\n<option value="2003">2003</option>\n<option value="2004" selected="selected">2004</option>\n<option value="2005">2005</option>\n<option value="2006">2006</option>\n<option value="2007">2007</option>\n<option value="2008">2008</option>\n<option value="2009">2009</option>\n}
1430
+ expected << "</select>\n"
1431
+
1432
+ expected << %{<select id="post_written_on_2i" name="post[written_on(2i)]" class="selector">\n}
1433
+ expected << %{<option value="1">January</option>\n<option value="2">February</option>\n<option value="3">March</option>\n<option value="4">April</option>\n<option value="5">May</option>\n<option value="6" selected="selected">June</option>\n<option value="7">July</option>\n<option value="8">August</option>\n<option value="9">September</option>\n<option value="10">October</option>\n<option value="11">November</option>\n<option value="12">December</option>\n}
1434
+ expected << "</select>\n"
1435
+
1436
+ expected << %{<select id="post_written_on_3i" name="post[written_on(3i)]" class="selector">\n}
1437
+ expected << %{<option value="1">1</option>\n<option value="2">2</option>\n<option value="3">3</option>\n<option value="4">4</option>\n<option value="5">5</option>\n<option value="6">6</option>\n<option value="7">7</option>\n<option value="8">8</option>\n<option value="9">9</option>\n<option value="10">10</option>\n<option value="11">11</option>\n<option value="12">12</option>\n<option value="13">13</option>\n<option value="14">14</option>\n<option value="15" selected="selected">15</option>\n<option value="16">16</option>\n<option value="17">17</option>\n<option value="18">18</option>\n<option value="19">19</option>\n<option value="20">20</option>\n<option value="21">21</option>\n<option value="22">22</option>\n<option value="23">23</option>\n<option value="24">24</option>\n<option value="25">25</option>\n<option value="26">26</option>\n<option value="27">27</option>\n<option value="28">28</option>\n<option value="29">29</option>\n<option value="30">30</option>\n<option value="31">31</option>\n}
1438
+
1439
+ expected << "</select>\n"
1440
+
1441
+ assert_dom_equal expected, date_select("post", "written_on", {}, :class => 'selector')
1442
+ end
1443
+
1444
+ def test_date_select_with_html_options_within_fields_for
1445
+ @post = Post.new
1446
+ @post.written_on = Date.new(2004, 6, 15)
1447
+
1448
+ fields_for :post, @post do |f|
1449
+ concat f.date_select(:written_on, {}, :class => 'selector')
1450
+ end
1451
+
1452
+ expected = %{<select id="post_written_on_1i" name="post[written_on(1i)]" class="selector">\n}
1453
+ expected << %{<option value="1999">1999</option>\n<option value="2000">2000</option>\n<option value="2001">2001</option>\n<option value="2002">2002</option>\n<option value="2003">2003</option>\n<option value="2004" selected="selected">2004</option>\n<option value="2005">2005</option>\n<option value="2006">2006</option>\n<option value="2007">2007</option>\n<option value="2008">2008</option>\n<option value="2009">2009</option>\n}
1454
+ expected << "</select>\n"
1455
+
1456
+ expected << %{<select id="post_written_on_2i" name="post[written_on(2i)]" class="selector">\n}
1457
+ expected << %{<option value="1">January</option>\n<option value="2">February</option>\n<option value="3">March</option>\n<option value="4">April</option>\n<option value="5">May</option>\n<option value="6" selected="selected">June</option>\n<option value="7">July</option>\n<option value="8">August</option>\n<option value="9">September</option>\n<option value="10">October</option>\n<option value="11">November</option>\n<option value="12">December</option>\n}
1458
+ expected << "</select>\n"
1459
+
1460
+ expected << %{<select id="post_written_on_3i" name="post[written_on(3i)]" class="selector">\n}
1461
+ expected << %{<option value="1">1</option>\n<option value="2">2</option>\n<option value="3">3</option>\n<option value="4">4</option>\n<option value="5">5</option>\n<option value="6">6</option>\n<option value="7">7</option>\n<option value="8">8</option>\n<option value="9">9</option>\n<option value="10">10</option>\n<option value="11">11</option>\n<option value="12">12</option>\n<option value="13">13</option>\n<option value="14">14</option>\n<option value="15" selected="selected">15</option>\n<option value="16">16</option>\n<option value="17">17</option>\n<option value="18">18</option>\n<option value="19">19</option>\n<option value="20">20</option>\n<option value="21">21</option>\n<option value="22">22</option>\n<option value="23">23</option>\n<option value="24">24</option>\n<option value="25">25</option>\n<option value="26">26</option>\n<option value="27">27</option>\n<option value="28">28</option>\n<option value="29">29</option>\n<option value="30">30</option>\n<option value="31">31</option>\n}
1462
+
1463
+ expected << "</select>\n"
1464
+
1465
+ assert_dom_equal expected, output_buffer
1466
+ end
1467
+
1468
+ def test_date_select_with_separator
1469
+ @post = Post.new
1470
+ @post.written_on = Date.new(2004, 6, 15)
1471
+
1472
+ expected = %{<select id="post_written_on_1i" name="post[written_on(1i)]">\n}
1473
+ expected << %{<option value="1999">1999</option>\n<option value="2000">2000</option>\n<option value="2001">2001</option>\n<option value="2002">2002</option>\n<option value="2003">2003</option>\n<option value="2004" selected="selected">2004</option>\n<option value="2005">2005</option>\n<option value="2006">2006</option>\n<option value="2007">2007</option>\n<option value="2008">2008</option>\n<option value="2009">2009</option>\n}
1474
+ expected << "</select>\n"
1475
+
1476
+ expected << " / "
1477
+
1478
+ expected << %{<select id="post_written_on_2i" name="post[written_on(2i)]">\n}
1479
+ expected << %{<option value="1">January</option>\n<option value="2">February</option>\n<option value="3">March</option>\n<option value="4">April</option>\n<option value="5">May</option>\n<option value="6" selected="selected">June</option>\n<option value="7">July</option>\n<option value="8">August</option>\n<option value="9">September</option>\n<option value="10">October</option>\n<option value="11">November</option>\n<option value="12">December</option>\n}
1480
+ expected << "</select>\n"
1481
+
1482
+ expected << " / "
1483
+
1484
+ expected << %{<select id="post_written_on_3i" name="post[written_on(3i)]">\n}
1485
+ expected << %{<option value="1">1</option>\n<option value="2">2</option>\n<option value="3">3</option>\n<option value="4">4</option>\n<option value="5">5</option>\n<option value="6">6</option>\n<option value="7">7</option>\n<option value="8">8</option>\n<option value="9">9</option>\n<option value="10">10</option>\n<option value="11">11</option>\n<option value="12">12</option>\n<option value="13">13</option>\n<option value="14">14</option>\n<option value="15" selected="selected">15</option>\n<option value="16">16</option>\n<option value="17">17</option>\n<option value="18">18</option>\n<option value="19">19</option>\n<option value="20">20</option>\n<option value="21">21</option>\n<option value="22">22</option>\n<option value="23">23</option>\n<option value="24">24</option>\n<option value="25">25</option>\n<option value="26">26</option>\n<option value="27">27</option>\n<option value="28">28</option>\n<option value="29">29</option>\n<option value="30">30</option>\n<option value="31">31</option>\n}
1486
+
1487
+ expected << "</select>\n"
1488
+
1489
+ assert_dom_equal expected, date_select("post", "written_on", { :date_separator => " / " })
1490
+ end
1491
+
1492
+ def test_date_select_with_default_prompt
1493
+ @post = Post.new
1494
+ @post.written_on = Date.new(2004, 6, 15)
1495
+
1496
+ expected = %{<select id="post_written_on_1i" name="post[written_on(1i)]">\n}
1497
+ expected << %{<option value="">Year</option>\n<option value="1999">1999</option>\n<option value="2000">2000</option>\n<option value="2001">2001</option>\n<option value="2002">2002</option>\n<option value="2003">2003</option>\n<option value="2004" selected="selected">2004</option>\n<option value="2005">2005</option>\n<option value="2006">2006</option>\n<option value="2007">2007</option>\n<option value="2008">2008</option>\n<option value="2009">2009</option>\n}
1498
+ expected << "</select>\n"
1499
+
1500
+ expected << %{<select id="post_written_on_2i" name="post[written_on(2i)]">\n}
1501
+ expected << %{<option value="">Month</option>\n<option value="1">January</option>\n<option value="2">February</option>\n<option value="3">March</option>\n<option value="4">April</option>\n<option value="5">May</option>\n<option value="6" selected="selected">June</option>\n<option value="7">July</option>\n<option value="8">August</option>\n<option value="9">September</option>\n<option value="10">October</option>\n<option value="11">November</option>\n<option value="12">December</option>\n}
1502
+ expected << "</select>\n"
1503
+
1504
+ expected << %{<select id="post_written_on_3i" name="post[written_on(3i)]">\n}
1505
+ expected << %{<option value="">Day</option>\n<option value="1">1</option>\n<option value="2">2</option>\n<option value="3">3</option>\n<option value="4">4</option>\n<option value="5">5</option>\n<option value="6">6</option>\n<option value="7">7</option>\n<option value="8">8</option>\n<option value="9">9</option>\n<option value="10">10</option>\n<option value="11">11</option>\n<option value="12">12</option>\n<option value="13">13</option>\n<option value="14">14</option>\n<option value="15" selected="selected">15</option>\n<option value="16">16</option>\n<option value="17">17</option>\n<option value="18">18</option>\n<option value="19">19</option>\n<option value="20">20</option>\n<option value="21">21</option>\n<option value="22">22</option>\n<option value="23">23</option>\n<option value="24">24</option>\n<option value="25">25</option>\n<option value="26">26</option>\n<option value="27">27</option>\n<option value="28">28</option>\n<option value="29">29</option>\n<option value="30">30</option>\n<option value="31">31</option>\n}
1506
+
1507
+ expected << "</select>\n"
1508
+
1509
+ assert_dom_equal expected, date_select("post", "written_on", :prompt => true)
1510
+ end
1511
+
1512
+ def test_date_select_with_custom_prompt
1513
+ @post = Post.new
1514
+ @post.written_on = Date.new(2004, 6, 15)
1515
+
1516
+ expected = %{<select id="post_written_on_1i" name="post[written_on(1i)]">\n}
1517
+ expected << %{<option value="">Choose year</option>\n<option value="1999">1999</option>\n<option value="2000">2000</option>\n<option value="2001">2001</option>\n<option value="2002">2002</option>\n<option value="2003">2003</option>\n<option value="2004" selected="selected">2004</option>\n<option value="2005">2005</option>\n<option value="2006">2006</option>\n<option value="2007">2007</option>\n<option value="2008">2008</option>\n<option value="2009">2009</option>\n}
1518
+ expected << "</select>\n"
1519
+
1520
+ expected << %{<select id="post_written_on_2i" name="post[written_on(2i)]">\n}
1521
+ expected << %{<option value="">Choose month</option>\n<option value="1">January</option>\n<option value="2">February</option>\n<option value="3">March</option>\n<option value="4">April</option>\n<option value="5">May</option>\n<option value="6" selected="selected">June</option>\n<option value="7">July</option>\n<option value="8">August</option>\n<option value="9">September</option>\n<option value="10">October</option>\n<option value="11">November</option>\n<option value="12">December</option>\n}
1522
+ expected << "</select>\n"
1523
+
1524
+ expected << %{<select id="post_written_on_3i" name="post[written_on(3i)]">\n}
1525
+ expected << %{<option value="">Choose day</option>\n<option value="1">1</option>\n<option value="2">2</option>\n<option value="3">3</option>\n<option value="4">4</option>\n<option value="5">5</option>\n<option value="6">6</option>\n<option value="7">7</option>\n<option value="8">8</option>\n<option value="9">9</option>\n<option value="10">10</option>\n<option value="11">11</option>\n<option value="12">12</option>\n<option value="13">13</option>\n<option value="14">14</option>\n<option value="15" selected="selected">15</option>\n<option value="16">16</option>\n<option value="17">17</option>\n<option value="18">18</option>\n<option value="19">19</option>\n<option value="20">20</option>\n<option value="21">21</option>\n<option value="22">22</option>\n<option value="23">23</option>\n<option value="24">24</option>\n<option value="25">25</option>\n<option value="26">26</option>\n<option value="27">27</option>\n<option value="28">28</option>\n<option value="29">29</option>\n<option value="30">30</option>\n<option value="31">31</option>\n}
1526
+
1527
+ expected << "</select>\n"
1528
+
1529
+ assert_dom_equal expected, date_select("post", "written_on", :prompt => {:year => 'Choose year', :month => 'Choose month', :day => 'Choose day'})
1530
+ end
1531
+
1532
+ def test_time_select
1533
+ @post = Post.new
1534
+ @post.written_on = Time.local(2004, 6, 15, 15, 16, 35)
1535
+
1536
+ expected = %{<input type="hidden" id="post_written_on_1i" name="post[written_on(1i)]" value="2004" />\n}
1537
+ expected << %{<input type="hidden" id="post_written_on_2i" name="post[written_on(2i)]" value="6" />\n}
1538
+ expected << %{<input type="hidden" id="post_written_on_3i" name="post[written_on(3i)]" value="15" />\n}
1539
+
1540
+ expected << %(<select id="post_written_on_4i" name="post[written_on(4i)]">\n)
1541
+ 0.upto(23) { |i| expected << %(<option value="#{sprintf("%02d", i)}"#{' selected="selected"' if i == 15}>#{sprintf("%02d", i)}</option>\n) }
1542
+ expected << "</select>\n"
1543
+ expected << " : "
1544
+ expected << %(<select id="post_written_on_5i" name="post[written_on(5i)]">\n)
1545
+ 0.upto(59) { |i| expected << %(<option value="#{sprintf("%02d", i)}"#{' selected="selected"' if i == 16}>#{sprintf("%02d", i)}</option>\n) }
1546
+ expected << "</select>\n"
1547
+
1548
+ assert_dom_equal expected, time_select("post", "written_on")
1549
+ end
1550
+
1551
+ def test_time_select_without_date_hidden_fields
1552
+ @post = Post.new
1553
+ @post.written_on = Time.local(2004, 6, 15, 15, 16, 35)
1554
+
1555
+ expected = %(<select id="post_written_on_4i" name="post[written_on(4i)]">\n)
1556
+ 0.upto(23) { |i| expected << %(<option value="#{sprintf("%02d", i)}"#{' selected="selected"' if i == 15}>#{sprintf("%02d", i)}</option>\n) }
1557
+ expected << "</select>\n"
1558
+ expected << " : "
1559
+ expected << %(<select id="post_written_on_5i" name="post[written_on(5i)]">\n)
1560
+ 0.upto(59) { |i| expected << %(<option value="#{sprintf("%02d", i)}"#{' selected="selected"' if i == 16}>#{sprintf("%02d", i)}</option>\n) }
1561
+ expected << "</select>\n"
1562
+
1563
+ assert_dom_equal expected, time_select("post", "written_on", :ignore_date => true)
1564
+ end
1565
+
1566
+ def test_time_select_with_seconds
1567
+ @post = Post.new
1568
+ @post.written_on = Time.local(2004, 6, 15, 15, 16, 35)
1569
+
1570
+ expected = %{<input type="hidden" id="post_written_on_1i" name="post[written_on(1i)]" value="2004" />\n}
1571
+ expected << %{<input type="hidden" id="post_written_on_2i" name="post[written_on(2i)]" value="6" />\n}
1572
+ expected << %{<input type="hidden" id="post_written_on_3i" name="post[written_on(3i)]" value="15" />\n}
1573
+
1574
+ expected << %(<select id="post_written_on_4i" name="post[written_on(4i)]">\n)
1575
+ 0.upto(23) { |i| expected << %(<option value="#{sprintf("%02d", i)}"#{' selected="selected"' if i == 15}>#{sprintf("%02d", i)}</option>\n) }
1576
+ expected << "</select>\n"
1577
+ expected << " : "
1578
+ expected << %(<select id="post_written_on_5i" name="post[written_on(5i)]">\n)
1579
+ 0.upto(59) { |i| expected << %(<option value="#{sprintf("%02d", i)}"#{' selected="selected"' if i == 16}>#{sprintf("%02d", i)}</option>\n) }
1580
+ expected << "</select>\n"
1581
+ expected << " : "
1582
+ expected << %(<select id="post_written_on_6i" name="post[written_on(6i)]">\n)
1583
+ 0.upto(59) { |i| expected << %(<option value="#{sprintf("%02d", i)}"#{' selected="selected"' if i == 35}>#{sprintf("%02d", i)}</option>\n) }
1584
+ expected << "</select>\n"
1585
+
1586
+ assert_dom_equal expected, time_select("post", "written_on", :include_seconds => true)
1587
+ end
1588
+
1589
+ def test_time_select_with_html_options
1590
+ @post = Post.new
1591
+ @post.written_on = Time.local(2004, 6, 15, 15, 16, 35)
1592
+
1593
+ expected = %{<input type="hidden" id="post_written_on_1i" name="post[written_on(1i)]" value="2004" />\n}
1594
+ expected << %{<input type="hidden" id="post_written_on_2i" name="post[written_on(2i)]" value="6" />\n}
1595
+ expected << %{<input type="hidden" id="post_written_on_3i" name="post[written_on(3i)]" value="15" />\n}
1596
+
1597
+ expected << %(<select id="post_written_on_4i" name="post[written_on(4i)]" class="selector">\n)
1598
+ 0.upto(23) { |i| expected << %(<option value="#{sprintf("%02d", i)}"#{' selected="selected"' if i == 15}>#{sprintf("%02d", i)}</option>\n) }
1599
+ expected << "</select>\n"
1600
+ expected << " : "
1601
+ expected << %(<select id="post_written_on_5i" name="post[written_on(5i)]" class="selector">\n)
1602
+ 0.upto(59) { |i| expected << %(<option value="#{sprintf("%02d", i)}"#{' selected="selected"' if i == 16}>#{sprintf("%02d", i)}</option>\n) }
1603
+ expected << "</select>\n"
1604
+
1605
+ assert_dom_equal expected, time_select("post", "written_on", {}, :class => 'selector')
1606
+ end
1607
+
1608
+ def test_time_select_with_html_options_within_fields_for
1609
+ @post = Post.new
1610
+ @post.written_on = Time.local(2004, 6, 15, 15, 16, 35)
1611
+
1612
+ fields_for :post, @post do |f|
1613
+ concat f.time_select(:written_on, {}, :class => 'selector')
1614
+ end
1615
+
1616
+ expected = %{<input type="hidden" id="post_written_on_1i" name="post[written_on(1i)]" value="2004" />\n}
1617
+ expected << %{<input type="hidden" id="post_written_on_2i" name="post[written_on(2i)]" value="6" />\n}
1618
+ expected << %{<input type="hidden" id="post_written_on_3i" name="post[written_on(3i)]" value="15" />\n}
1619
+
1620
+ expected << %(<select id="post_written_on_4i" name="post[written_on(4i)]" class="selector">\n)
1621
+ 0.upto(23) { |i| expected << %(<option value="#{sprintf("%02d", i)}"#{' selected="selected"' if i == 15}>#{sprintf("%02d", i)}</option>\n) }
1622
+ expected << "</select>\n"
1623
+ expected << " : "
1624
+ expected << %(<select id="post_written_on_5i" name="post[written_on(5i)]" class="selector">\n)
1625
+ 0.upto(59) { |i| expected << %(<option value="#{sprintf("%02d", i)}"#{' selected="selected"' if i == 16}>#{sprintf("%02d", i)}</option>\n) }
1626
+ expected << "</select>\n"
1627
+
1628
+ assert_dom_equal expected, output_buffer
1629
+ end
1630
+
1631
+ def test_time_select_with_separator
1632
+ @post = Post.new
1633
+ @post.written_on = Time.local(2004, 6, 15, 15, 16, 35)
1634
+
1635
+ expected = %{<input type="hidden" id="post_written_on_1i" name="post[written_on(1i)]" value="2004" />\n}
1636
+ expected << %{<input type="hidden" id="post_written_on_2i" name="post[written_on(2i)]" value="6" />\n}
1637
+ expected << %{<input type="hidden" id="post_written_on_3i" name="post[written_on(3i)]" value="15" />\n}
1638
+
1639
+ expected << %(<select id="post_written_on_4i" name="post[written_on(4i)]">\n)
1640
+ 0.upto(23) { |i| expected << %(<option value="#{sprintf("%02d", i)}"#{' selected="selected"' if i == 15}>#{sprintf("%02d", i)}</option>\n) }
1641
+ expected << "</select>\n"
1642
+
1643
+ expected << " - "
1644
+
1645
+ expected << %(<select id="post_written_on_5i" name="post[written_on(5i)]">\n)
1646
+ 0.upto(59) { |i| expected << %(<option value="#{sprintf("%02d", i)}"#{' selected="selected"' if i == 16}>#{sprintf("%02d", i)}</option>\n) }
1647
+ expected << "</select>\n"
1648
+
1649
+ expected << " - "
1650
+
1651
+ expected << %(<select id="post_written_on_6i" name="post[written_on(6i)]">\n)
1652
+ 0.upto(59) { |i| expected << %(<option value="#{sprintf("%02d", i)}"#{' selected="selected"' if i == 35}>#{sprintf("%02d", i)}</option>\n) }
1653
+ expected << "</select>\n"
1654
+
1655
+ assert_dom_equal expected, time_select("post", "written_on", { :time_separator => " - ", :include_seconds => true })
1656
+ end
1657
+
1658
+ def test_time_select_with_default_prompt
1659
+ @post = Post.new
1660
+ @post.written_on = Time.local(2004, 6, 15, 15, 16, 35)
1661
+
1662
+ expected = %{<input type="hidden" id="post_written_on_1i" name="post[written_on(1i)]" value="2004" />\n}
1663
+ expected << %{<input type="hidden" id="post_written_on_2i" name="post[written_on(2i)]" value="6" />\n}
1664
+ expected << %{<input type="hidden" id="post_written_on_3i" name="post[written_on(3i)]" value="15" />\n}
1665
+
1666
+ expected << %(<select id="post_written_on_4i" name="post[written_on(4i)]">\n)
1667
+ expected << %(<option value="">Hour</option>\n)
1668
+ 0.upto(23) { |i| expected << %(<option value="#{sprintf("%02d", i)}"#{' selected="selected"' if i == 15}>#{sprintf("%02d", i)}</option>\n) }
1669
+ expected << "</select>\n"
1670
+ expected << " : "
1671
+ expected << %(<select id="post_written_on_5i" name="post[written_on(5i)]">\n)
1672
+ expected << %(<option value="">Minute</option>\n)
1673
+ 0.upto(59) { |i| expected << %(<option value="#{sprintf("%02d", i)}"#{' selected="selected"' if i == 16}>#{sprintf("%02d", i)}</option>\n) }
1674
+ expected << "</select>\n"
1675
+
1676
+ assert_dom_equal expected, time_select("post", "written_on", :prompt => true)
1677
+ end
1678
+
1679
+ def test_time_select_with_custom_prompt
1680
+ @post = Post.new
1681
+ @post.written_on = Time.local(2004, 6, 15, 15, 16, 35)
1682
+
1683
+ expected = %{<input type="hidden" id="post_written_on_1i" name="post[written_on(1i)]" value="2004" />\n}
1684
+ expected << %{<input type="hidden" id="post_written_on_2i" name="post[written_on(2i)]" value="6" />\n}
1685
+ expected << %{<input type="hidden" id="post_written_on_3i" name="post[written_on(3i)]" value="15" />\n}
1686
+
1687
+ expected << %(<select id="post_written_on_4i" name="post[written_on(4i)]">\n)
1688
+ expected << %(<option value="">Choose hour</option>\n)
1689
+ 0.upto(23) { |i| expected << %(<option value="#{sprintf("%02d", i)}"#{' selected="selected"' if i == 15}>#{sprintf("%02d", i)}</option>\n) }
1690
+ expected << "</select>\n"
1691
+ expected << " : "
1692
+ expected << %(<select id="post_written_on_5i" name="post[written_on(5i)]">\n)
1693
+ expected << %(<option value="">Choose minute</option>\n)
1694
+ 0.upto(59) { |i| expected << %(<option value="#{sprintf("%02d", i)}"#{' selected="selected"' if i == 16}>#{sprintf("%02d", i)}</option>\n) }
1695
+ expected << "</select>\n"
1696
+
1697
+ assert_dom_equal expected, time_select("post", "written_on", :prompt => {:hour => 'Choose hour', :minute => 'Choose minute'})
1698
+ end
1699
+
1700
+ def test_datetime_select
1701
+ @post = Post.new
1702
+ @post.updated_at = Time.local(2004, 6, 15, 16, 35)
1703
+
1704
+ expected = %{<select id="post_updated_at_1i" name="post[updated_at(1i)]">\n}
1705
+ expected << %{<option value="1999">1999</option>\n<option value="2000">2000</option>\n<option value="2001">2001</option>\n<option value="2002">2002</option>\n<option value="2003">2003</option>\n<option value="2004" selected="selected">2004</option>\n<option value="2005">2005</option>\n<option value="2006">2006</option>\n<option value="2007">2007</option>\n<option value="2008">2008</option>\n<option value="2009">2009</option>\n}
1706
+ expected << "</select>\n"
1707
+
1708
+ expected << %{<select id="post_updated_at_2i" name="post[updated_at(2i)]">\n}
1709
+ expected << %{<option value="1">January</option>\n<option value="2">February</option>\n<option value="3">March</option>\n<option value="4">April</option>\n<option value="5">May</option>\n<option value="6" selected="selected">June</option>\n<option value="7">July</option>\n<option value="8">August</option>\n<option value="9">September</option>\n<option value="10">October</option>\n<option value="11">November</option>\n<option value="12">December</option>\n}
1710
+ expected << "</select>\n"
1711
+
1712
+ expected << %{<select id="post_updated_at_3i" name="post[updated_at(3i)]">\n}
1713
+ expected << %{<option value="1">1</option>\n<option value="2">2</option>\n<option value="3">3</option>\n<option value="4">4</option>\n<option value="5">5</option>\n<option value="6">6</option>\n<option value="7">7</option>\n<option value="8">8</option>\n<option value="9">9</option>\n<option value="10">10</option>\n<option value="11">11</option>\n<option value="12">12</option>\n<option value="13">13</option>\n<option value="14">14</option>\n<option value="15" selected="selected">15</option>\n<option value="16">16</option>\n<option value="17">17</option>\n<option value="18">18</option>\n<option value="19">19</option>\n<option value="20">20</option>\n<option value="21">21</option>\n<option value="22">22</option>\n<option value="23">23</option>\n<option value="24">24</option>\n<option value="25">25</option>\n<option value="26">26</option>\n<option value="27">27</option>\n<option value="28">28</option>\n<option value="29">29</option>\n<option value="30">30</option>\n<option value="31">31</option>\n}
1714
+ expected << "</select>\n"
1715
+
1716
+ expected << " &mdash; "
1717
+
1718
+ expected << %{<select id="post_updated_at_4i" name="post[updated_at(4i)]">\n}
1719
+ expected << %{<option value="00">00</option>\n<option value="01">01</option>\n<option value="02">02</option>\n<option value="03">03</option>\n<option value="04">04</option>\n<option value="05">05</option>\n<option value="06">06</option>\n<option value="07">07</option>\n<option value="08">08</option>\n<option value="09">09</option>\n<option value="10">10</option>\n<option value="11">11</option>\n<option value="12">12</option>\n<option value="13">13</option>\n<option value="14">14</option>\n<option value="15">15</option>\n<option value="16" selected="selected">16</option>\n<option value="17">17</option>\n<option value="18">18</option>\n<option value="19">19</option>\n<option value="20">20</option>\n<option value="21">21</option>\n<option value="22">22</option>\n<option value="23">23</option>\n}
1720
+ expected << "</select>\n"
1721
+ expected << " : "
1722
+ expected << %{<select id="post_updated_at_5i" name="post[updated_at(5i)]">\n}
1723
+ expected << %{<option value="00">00</option>\n<option value="01">01</option>\n<option value="02">02</option>\n<option value="03">03</option>\n<option value="04">04</option>\n<option value="05">05</option>\n<option value="06">06</option>\n<option value="07">07</option>\n<option value="08">08</option>\n<option value="09">09</option>\n<option value="10">10</option>\n<option value="11">11</option>\n<option value="12">12</option>\n<option value="13">13</option>\n<option value="14">14</option>\n<option value="15">15</option>\n<option value="16">16</option>\n<option value="17">17</option>\n<option value="18">18</option>\n<option value="19">19</option>\n<option value="20">20</option>\n<option value="21">21</option>\n<option value="22">22</option>\n<option value="23">23</option>\n<option value="24">24</option>\n<option value="25">25</option>\n<option value="26">26</option>\n<option value="27">27</option>\n<option value="28">28</option>\n<option value="29">29</option>\n<option value="30">30</option>\n<option value="31">31</option>\n<option value="32">32</option>\n<option value="33">33</option>\n<option value="34">34</option>\n<option value="35" selected="selected">35</option>\n<option value="36">36</option>\n<option value="37">37</option>\n<option value="38">38</option>\n<option value="39">39</option>\n<option value="40">40</option>\n<option value="41">41</option>\n<option value="42">42</option>\n<option value="43">43</option>\n<option value="44">44</option>\n<option value="45">45</option>\n<option value="46">46</option>\n<option value="47">47</option>\n<option value="48">48</option>\n<option value="49">49</option>\n<option value="50">50</option>\n<option value="51">51</option>\n<option value="52">52</option>\n<option value="53">53</option>\n<option value="54">54</option>\n<option value="55">55</option>\n<option value="56">56</option>\n<option value="57">57</option>\n<option value="58">58</option>\n<option value="59">59</option>\n}
1724
+ expected << "</select>\n"
1725
+
1726
+ assert_dom_equal expected, datetime_select("post", "updated_at")
1727
+ end
1728
+
1729
+ def test_datetime_select_defaults_to_time_zone_now_when_config_time_zone_is_set
1730
+ time = stub(:year => 2004, :month => 6, :day => 15, :hour => 16, :min => 35, :sec => 0)
1731
+ time_zone = mock()
1732
+ time_zone.expects(:now).returns time
1733
+ Time.zone_default = time_zone
1734
+ @post = Post.new
1735
+
1736
+ expected = %{<select id="post_updated_at_1i" name="post[updated_at(1i)]">\n}
1737
+ expected << %{<option value="1999">1999</option>\n<option value="2000">2000</option>\n<option value="2001">2001</option>\n<option value="2002">2002</option>\n<option value="2003">2003</option>\n<option value="2004" selected="selected">2004</option>\n<option value="2005">2005</option>\n<option value="2006">2006</option>\n<option value="2007">2007</option>\n<option value="2008">2008</option>\n<option value="2009">2009</option>\n}
1738
+ expected << "</select>\n"
1739
+
1740
+ expected << %{<select id="post_updated_at_2i" name="post[updated_at(2i)]">\n}
1741
+ expected << %{<option value="1">January</option>\n<option value="2">February</option>\n<option value="3">March</option>\n<option value="4">April</option>\n<option value="5">May</option>\n<option value="6" selected="selected">June</option>\n<option value="7">July</option>\n<option value="8">August</option>\n<option value="9">September</option>\n<option value="10">October</option>\n<option value="11">November</option>\n<option value="12">December</option>\n}
1742
+ expected << "</select>\n"
1743
+
1744
+ expected << %{<select id="post_updated_at_3i" name="post[updated_at(3i)]">\n}
1745
+ expected << %{<option value="1">1</option>\n<option value="2">2</option>\n<option value="3">3</option>\n<option value="4">4</option>\n<option value="5">5</option>\n<option value="6">6</option>\n<option value="7">7</option>\n<option value="8">8</option>\n<option value="9">9</option>\n<option value="10">10</option>\n<option value="11">11</option>\n<option value="12">12</option>\n<option value="13">13</option>\n<option value="14">14</option>\n<option value="15" selected="selected">15</option>\n<option value="16">16</option>\n<option value="17">17</option>\n<option value="18">18</option>\n<option value="19">19</option>\n<option value="20">20</option>\n<option value="21">21</option>\n<option value="22">22</option>\n<option value="23">23</option>\n<option value="24">24</option>\n<option value="25">25</option>\n<option value="26">26</option>\n<option value="27">27</option>\n<option value="28">28</option>\n<option value="29">29</option>\n<option value="30">30</option>\n<option value="31">31</option>\n}
1746
+ expected << "</select>\n"
1747
+
1748
+ expected << " &mdash; "
1749
+
1750
+ expected << %{<select id="post_updated_at_4i" name="post[updated_at(4i)]">\n}
1751
+ expected << %{<option value="00">00</option>\n<option value="01">01</option>\n<option value="02">02</option>\n<option value="03">03</option>\n<option value="04">04</option>\n<option value="05">05</option>\n<option value="06">06</option>\n<option value="07">07</option>\n<option value="08">08</option>\n<option value="09">09</option>\n<option value="10">10</option>\n<option value="11">11</option>\n<option value="12">12</option>\n<option value="13">13</option>\n<option value="14">14</option>\n<option value="15">15</option>\n<option value="16" selected="selected">16</option>\n<option value="17">17</option>\n<option value="18">18</option>\n<option value="19">19</option>\n<option value="20">20</option>\n<option value="21">21</option>\n<option value="22">22</option>\n<option value="23">23</option>\n}
1752
+ expected << "</select>\n"
1753
+ expected << " : "
1754
+ expected << %{<select id="post_updated_at_5i" name="post[updated_at(5i)]">\n}
1755
+ expected << %{<option value="00">00</option>\n<option value="01">01</option>\n<option value="02">02</option>\n<option value="03">03</option>\n<option value="04">04</option>\n<option value="05">05</option>\n<option value="06">06</option>\n<option value="07">07</option>\n<option value="08">08</option>\n<option value="09">09</option>\n<option value="10">10</option>\n<option value="11">11</option>\n<option value="12">12</option>\n<option value="13">13</option>\n<option value="14">14</option>\n<option value="15">15</option>\n<option value="16">16</option>\n<option value="17">17</option>\n<option value="18">18</option>\n<option value="19">19</option>\n<option value="20">20</option>\n<option value="21">21</option>\n<option value="22">22</option>\n<option value="23">23</option>\n<option value="24">24</option>\n<option value="25">25</option>\n<option value="26">26</option>\n<option value="27">27</option>\n<option value="28">28</option>\n<option value="29">29</option>\n<option value="30">30</option>\n<option value="31">31</option>\n<option value="32">32</option>\n<option value="33">33</option>\n<option value="34">34</option>\n<option value="35" selected="selected">35</option>\n<option value="36">36</option>\n<option value="37">37</option>\n<option value="38">38</option>\n<option value="39">39</option>\n<option value="40">40</option>\n<option value="41">41</option>\n<option value="42">42</option>\n<option value="43">43</option>\n<option value="44">44</option>\n<option value="45">45</option>\n<option value="46">46</option>\n<option value="47">47</option>\n<option value="48">48</option>\n<option value="49">49</option>\n<option value="50">50</option>\n<option value="51">51</option>\n<option value="52">52</option>\n<option value="53">53</option>\n<option value="54">54</option>\n<option value="55">55</option>\n<option value="56">56</option>\n<option value="57">57</option>\n<option value="58">58</option>\n<option value="59">59</option>\n}
1756
+ expected << "</select>\n"
1757
+
1758
+ assert_dom_equal expected, datetime_select("post", "updated_at")
1759
+ ensure
1760
+ Time.zone_default = nil
1761
+ end
1762
+
1763
+ def test_datetime_select_with_html_options_within_fields_for
1764
+ @post = Post.new
1765
+ @post.updated_at = Time.local(2004, 6, 15, 16, 35)
1766
+
1767
+ fields_for :post, @post do |f|
1768
+ concat f.datetime_select(:updated_at, {}, :class => 'selector')
1769
+ end
1770
+
1771
+ expected = "<select id='post_updated_at_1i' name='post[updated_at(1i)]' class='selector'>\n<option value='1999'>1999</option>\n<option value='2000'>2000</option>\n<option value='2001'>2001</option>\n<option value='2002'>2002</option>\n<option value='2003'>2003</option>\n<option selected='selected' value='2004'>2004</option>\n<option value='2005'>2005</option>\n<option value='2006'>2006</option>\n<option value='2007'>2007</option>\n<option value='2008'>2008</option>\n<option value='2009'>2009</option>\n</select>\n"
1772
+ expected << "<select id='post_updated_at_2i' name='post[updated_at(2i)]' class='selector'>\n<option value='1'>January</option>\n<option value='2'>February</option>\n<option value='3'>March</option>\n<option value='4'>April</option>\n<option value='5'>May</option>\n<option selected='selected' value='6'>June</option>\n<option value='7'>July</option>\n<option value='8'>August</option>\n<option value='9'>September</option>\n<option value='10'>October</option>\n<option value='11'>November</option>\n<option value='12'>December</option>\n</select>\n"
1773
+ expected << "<select id='post_updated_at_3i' name='post[updated_at(3i)]' class='selector'>\n<option value='1'>1</option>\n<option value='2'>2</option>\n<option value='3'>3</option>\n<option value='4'>4</option>\n<option value='5'>5</option>\n<option value='6'>6</option>\n<option value='7'>7</option>\n<option value='8'>8</option>\n<option value='9'>9</option>\n<option value='10'>10</option>\n<option value='11'>11</option>\n<option value='12'>12</option>\n<option value='13'>13</option>\n<option value='14'>14</option>\n<option selected='selected' value='15'>15</option>\n<option value='16'>16</option>\n<option value='17'>17</option>\n<option value='18'>18</option>\n<option value='19'>19</option>\n<option value='20'>20</option>\n<option value='21'>21</option>\n<option value='22'>22</option>\n<option value='23'>23</option>\n<option value='24'>24</option>\n<option value='25'>25</option>\n<option value='26'>26</option>\n<option value='27'>27</option>\n<option value='28'>28</option>\n<option value='29'>29</option>\n<option value='30'>30</option>\n<option value='31'>31</option>\n</select>\n"
1774
+ expected << " &mdash; <select id='post_updated_at_4i' name='post[updated_at(4i)]' class='selector'>\n<option value='00'>00</option>\n<option value='01'>01</option>\n<option value='02'>02</option>\n<option value='03'>03</option>\n<option value='04'>04</option>\n<option value='05'>05</option>\n<option value='06'>06</option>\n<option value='07'>07</option>\n<option value='08'>08</option>\n<option value='09'>09</option>\n<option value='10'>10</option>\n<option value='11'>11</option>\n<option value='12'>12</option>\n<option value='13'>13</option>\n<option value='14'>14</option>\n<option value='15'>15</option>\n<option selected='selected' value='16'>16</option>\n<option value='17'>17</option>\n<option value='18'>18</option>\n<option value='19'>19</option>\n<option value='20'>20</option>\n<option value='21'>21</option>\n<option value='22'>22</option>\n<option value='23'>23</option>\n</select>\n"
1775
+ expected << " : <select id='post_updated_at_5i' name='post[updated_at(5i)]' class='selector'>\n<option value='00'>00</option>\n<option value='01'>01</option>\n<option value='02'>02</option>\n<option value='03'>03</option>\n<option value='04'>04</option>\n<option value='05'>05</option>\n<option value='06'>06</option>\n<option value='07'>07</option>\n<option value='08'>08</option>\n<option value='09'>09</option>\n<option value='10'>10</option>\n<option value='11'>11</option>\n<option value='12'>12</option>\n<option value='13'>13</option>\n<option value='14'>14</option>\n<option value='15'>15</option>\n<option value='16'>16</option>\n<option value='17'>17</option>\n<option value='18'>18</option>\n<option value='19'>19</option>\n<option value='20'>20</option>\n<option value='21'>21</option>\n<option value='22'>22</option>\n<option value='23'>23</option>\n<option value='24'>24</option>\n<option value='25'>25</option>\n<option value='26'>26</option>\n<option value='27'>27</option>\n<option value='28'>28</option>\n<option value='29'>29</option>\n<option value='30'>30</option>\n<option value='31'>31</option>\n<option value='32'>32</option>\n<option value='33'>33</option>\n<option value='34'>34</option>\n<option selected='selected' value='35'>35</option>\n<option value='36'>36</option>\n<option value='37'>37</option>\n<option value='38'>38</option>\n<option value='39'>39</option>\n<option value='40'>40</option>\n<option value='41'>41</option>\n<option value='42'>42</option>\n<option value='43'>43</option>\n<option value='44'>44</option>\n<option value='45'>45</option>\n<option value='46'>46</option>\n<option value='47'>47</option>\n<option value='48'>48</option>\n<option value='49'>49</option>\n<option value='50'>50</option>\n<option value='51'>51</option>\n<option value='52'>52</option>\n<option value='53'>53</option>\n<option value='54'>54</option>\n<option value='55'>55</option>\n<option value='56'>56</option>\n<option value='57'>57</option>\n<option value='58'>58</option>\n<option value='59'>59</option>\n</select>\n"
1776
+
1777
+ assert_dom_equal expected, output_buffer
1778
+ end
1779
+
1780
+ def test_datetime_select_with_separators
1781
+ @post = Post.new
1782
+ @post.updated_at = Time.local(2004, 6, 15, 15, 16, 35)
1783
+
1784
+ expected = %{<select id="post_updated_at_1i" name="post[updated_at(1i)]">\n}
1785
+ expected << %{<option value="1999">1999</option>\n<option value="2000">2000</option>\n<option value="2001">2001</option>\n<option value="2002">2002</option>\n<option value="2003">2003</option>\n<option value="2004" selected="selected">2004</option>\n<option value="2005">2005</option>\n<option value="2006">2006</option>\n<option value="2007">2007</option>\n<option value="2008">2008</option>\n<option value="2009">2009</option>\n}
1786
+ expected << "</select>\n"
1787
+
1788
+ expected << " / "
1789
+
1790
+ expected << %{<select id="post_updated_at_2i" name="post[updated_at(2i)]">\n}
1791
+ expected << %{<option value="1">January</option>\n<option value="2">February</option>\n<option value="3">March</option>\n<option value="4">April</option>\n<option value="5">May</option>\n<option value="6" selected="selected">June</option>\n<option value="7">July</option>\n<option value="8">August</option>\n<option value="9">September</option>\n<option value="10">October</option>\n<option value="11">November</option>\n<option value="12">December</option>\n}
1792
+ expected << "</select>\n"
1793
+
1794
+ expected << " / "
1795
+
1796
+ expected << %{<select id="post_updated_at_3i" name="post[updated_at(3i)]">\n}
1797
+ expected << %{<option value="1">1</option>\n<option value="2">2</option>\n<option value="3">3</option>\n<option value="4">4</option>\n<option value="5">5</option>\n<option value="6">6</option>\n<option value="7">7</option>\n<option value="8">8</option>\n<option value="9">9</option>\n<option value="10">10</option>\n<option value="11">11</option>\n<option value="12">12</option>\n<option value="13">13</option>\n<option value="14">14</option>\n<option value="15" selected="selected">15</option>\n<option value="16">16</option>\n<option value="17">17</option>\n<option value="18">18</option>\n<option value="19">19</option>\n<option value="20">20</option>\n<option value="21">21</option>\n<option value="22">22</option>\n<option value="23">23</option>\n<option value="24">24</option>\n<option value="25">25</option>\n<option value="26">26</option>\n<option value="27">27</option>\n<option value="28">28</option>\n<option value="29">29</option>\n<option value="30">30</option>\n<option value="31">31</option>\n}
1798
+ expected << "</select>\n"
1799
+
1800
+ expected << " , "
1801
+
1802
+ expected << %(<select id="post_updated_at_4i" name="post[updated_at(4i)]">\n)
1803
+ 0.upto(23) { |i| expected << %(<option value="#{sprintf("%02d", i)}"#{' selected="selected"' if i == 15}>#{sprintf("%02d", i)}</option>\n) }
1804
+ expected << "</select>\n"
1805
+
1806
+ expected << " - "
1807
+
1808
+ expected << %(<select id="post_updated_at_5i" name="post[updated_at(5i)]">\n)
1809
+ 0.upto(59) { |i| expected << %(<option value="#{sprintf("%02d", i)}"#{' selected="selected"' if i == 16}>#{sprintf("%02d", i)}</option>\n) }
1810
+ expected << "</select>\n"
1811
+
1812
+ expected << " - "
1813
+
1814
+ expected << %(<select id="post_updated_at_6i" name="post[updated_at(6i)]">\n)
1815
+ 0.upto(59) { |i| expected << %(<option value="#{sprintf("%02d", i)}"#{' selected="selected"' if i == 35}>#{sprintf("%02d", i)}</option>\n) }
1816
+ expected << "</select>\n"
1817
+
1818
+ assert_dom_equal expected, datetime_select("post", "updated_at", { :date_separator => " / ", :datetime_separator => " , ", :time_separator => " - ", :include_seconds => true })
1819
+ end
1820
+
1821
+ def test_datetime_select_with_default_prompt
1822
+ @post = Post.new
1823
+ @post.updated_at = nil
1824
+
1825
+ expected = %{<select id="post_updated_at_1i" name="post[updated_at(1i)]">\n}
1826
+ expected << %{<option value="">Year</option>\n<option value="1999">1999</option>\n<option value="2000">2000</option>\n<option value="2001">2001</option>\n<option value="2002">2002</option>\n<option value="2003">2003</option>\n<option value="2004">2004</option>\n<option value="2005">2005</option>\n<option value="2006">2006</option>\n<option value="2007">2007</option>\n<option value="2008">2008</option>\n<option value="2009">2009</option>\n}
1827
+ expected << "</select>\n"
1828
+
1829
+ expected << %{<select id="post_updated_at_2i" name="post[updated_at(2i)]">\n}
1830
+ expected << %{<option value="">Month</option>\n<option value="1">January</option>\n<option value="2">February</option>\n<option value="3">March</option>\n<option value="4">April</option>\n<option value="5">May</option>\n<option value="6">June</option>\n<option value="7">July</option>\n<option value="8">August</option>\n<option value="9">September</option>\n<option value="10">October</option>\n<option value="11">November</option>\n<option value="12">December</option>\n}
1831
+ expected << "</select>\n"
1832
+
1833
+ expected << %{<select id="post_updated_at_3i" name="post[updated_at(3i)]">\n}
1834
+ expected << %{<option value="">Day</option>\n<option value="1">1</option>\n<option value="2">2</option>\n<option value="3">3</option>\n<option value="4">4</option>\n<option value="5">5</option>\n<option value="6">6</option>\n<option value="7">7</option>\n<option value="8">8</option>\n<option value="9">9</option>\n<option value="10">10</option>\n<option value="11">11</option>\n<option value="12">12</option>\n<option value="13">13</option>\n<option value="14">14</option>\n<option value="15">15</option>\n<option value="16">16</option>\n<option value="17">17</option>\n<option value="18">18</option>\n<option value="19">19</option>\n<option value="20">20</option>\n<option value="21">21</option>\n<option value="22">22</option>\n<option value="23">23</option>\n<option value="24">24</option>\n<option value="25">25</option>\n<option value="26">26</option>\n<option value="27">27</option>\n<option value="28">28</option>\n<option value="29">29</option>\n<option value="30">30</option>\n<option value="31">31</option>\n}
1835
+ expected << "</select>\n"
1836
+
1837
+ expected << " &mdash; "
1838
+
1839
+ expected << %{<select id="post_updated_at_4i" name="post[updated_at(4i)]">\n}
1840
+ expected << %{<option value="">Hour</option>\n<option value="00">00</option>\n<option value="01">01</option>\n<option value="02">02</option>\n<option value="03">03</option>\n<option value="04">04</option>\n<option value="05">05</option>\n<option value="06">06</option>\n<option value="07">07</option>\n<option value="08">08</option>\n<option value="09">09</option>\n<option value="10">10</option>\n<option value="11">11</option>\n<option value="12">12</option>\n<option value="13">13</option>\n<option value="14">14</option>\n<option value="15">15</option>\n<option value="16">16</option>\n<option value="17">17</option>\n<option value="18">18</option>\n<option value="19">19</option>\n<option value="20">20</option>\n<option value="21">21</option>\n<option value="22">22</option>\n<option value="23">23</option>\n}
1841
+ expected << "</select>\n"
1842
+ expected << " : "
1843
+ expected << %{<select id="post_updated_at_5i" name="post[updated_at(5i)]">\n}
1844
+ expected << %{<option value="">Minute</option>\n<option value="00">00</option>\n<option value="01">01</option>\n<option value="02">02</option>\n<option value="03">03</option>\n<option value="04">04</option>\n<option value="05">05</option>\n<option value="06">06</option>\n<option value="07">07</option>\n<option value="08">08</option>\n<option value="09">09</option>\n<option value="10">10</option>\n<option value="11">11</option>\n<option value="12">12</option>\n<option value="13">13</option>\n<option value="14">14</option>\n<option value="15">15</option>\n<option value="16">16</option>\n<option value="17">17</option>\n<option value="18">18</option>\n<option value="19">19</option>\n<option value="20">20</option>\n<option value="21">21</option>\n<option value="22">22</option>\n<option value="23">23</option>\n<option value="24">24</option>\n<option value="25">25</option>\n<option value="26">26</option>\n<option value="27">27</option>\n<option value="28">28</option>\n<option value="29">29</option>\n<option value="30">30</option>\n<option value="31">31</option>\n<option value="32">32</option>\n<option value="33">33</option>\n<option value="34">34</option>\n<option value="35">35</option>\n<option value="36">36</option>\n<option value="37">37</option>\n<option value="38">38</option>\n<option value="39">39</option>\n<option value="40">40</option>\n<option value="41">41</option>\n<option value="42">42</option>\n<option value="43">43</option>\n<option value="44">44</option>\n<option value="45">45</option>\n<option value="46">46</option>\n<option value="47">47</option>\n<option value="48">48</option>\n<option value="49">49</option>\n<option value="50">50</option>\n<option value="51">51</option>\n<option value="52">52</option>\n<option value="53">53</option>\n<option value="54">54</option>\n<option value="55">55</option>\n<option value="56">56</option>\n<option value="57">57</option>\n<option value="58">58</option>\n<option value="59">59</option>\n}
1845
+ expected << "</select>\n"
1846
+
1847
+ assert_dom_equal expected, datetime_select("post", "updated_at", :start_year=>1999, :end_year=>2009, :prompt => true)
1848
+ end
1849
+
1850
+ def test_datetime_select_with_custom_prompt
1851
+ @post = Post.new
1852
+ @post.updated_at = nil
1853
+
1854
+ expected = %{<select id="post_updated_at_1i" name="post[updated_at(1i)]">\n}
1855
+ expected << %{<option value="">Choose year</option>\n<option value="1999">1999</option>\n<option value="2000">2000</option>\n<option value="2001">2001</option>\n<option value="2002">2002</option>\n<option value="2003">2003</option>\n<option value="2004">2004</option>\n<option value="2005">2005</option>\n<option value="2006">2006</option>\n<option value="2007">2007</option>\n<option value="2008">2008</option>\n<option value="2009">2009</option>\n}
1856
+ expected << "</select>\n"
1857
+
1858
+ expected << %{<select id="post_updated_at_2i" name="post[updated_at(2i)]">\n}
1859
+ expected << %{<option value="">Choose month</option>\n<option value="1">January</option>\n<option value="2">February</option>\n<option value="3">March</option>\n<option value="4">April</option>\n<option value="5">May</option>\n<option value="6">June</option>\n<option value="7">July</option>\n<option value="8">August</option>\n<option value="9">September</option>\n<option value="10">October</option>\n<option value="11">November</option>\n<option value="12">December</option>\n}
1860
+ expected << "</select>\n"
1861
+
1862
+ expected << %{<select id="post_updated_at_3i" name="post[updated_at(3i)]">\n}
1863
+ expected << %{<option value="">Choose day</option>\n<option value="1">1</option>\n<option value="2">2</option>\n<option value="3">3</option>\n<option value="4">4</option>\n<option value="5">5</option>\n<option value="6">6</option>\n<option value="7">7</option>\n<option value="8">8</option>\n<option value="9">9</option>\n<option value="10">10</option>\n<option value="11">11</option>\n<option value="12">12</option>\n<option value="13">13</option>\n<option value="14">14</option>\n<option value="15">15</option>\n<option value="16">16</option>\n<option value="17">17</option>\n<option value="18">18</option>\n<option value="19">19</option>\n<option value="20">20</option>\n<option value="21">21</option>\n<option value="22">22</option>\n<option value="23">23</option>\n<option value="24">24</option>\n<option value="25">25</option>\n<option value="26">26</option>\n<option value="27">27</option>\n<option value="28">28</option>\n<option value="29">29</option>\n<option value="30">30</option>\n<option value="31">31</option>\n}
1864
+ expected << "</select>\n"
1865
+
1866
+ expected << " &mdash; "
1867
+
1868
+ expected << %{<select id="post_updated_at_4i" name="post[updated_at(4i)]">\n}
1869
+ expected << %{<option value="">Choose hour</option>\n<option value="00">00</option>\n<option value="01">01</option>\n<option value="02">02</option>\n<option value="03">03</option>\n<option value="04">04</option>\n<option value="05">05</option>\n<option value="06">06</option>\n<option value="07">07</option>\n<option value="08">08</option>\n<option value="09">09</option>\n<option value="10">10</option>\n<option value="11">11</option>\n<option value="12">12</option>\n<option value="13">13</option>\n<option value="14">14</option>\n<option value="15">15</option>\n<option value="16">16</option>\n<option value="17">17</option>\n<option value="18">18</option>\n<option value="19">19</option>\n<option value="20">20</option>\n<option value="21">21</option>\n<option value="22">22</option>\n<option value="23">23</option>\n}
1870
+ expected << "</select>\n"
1871
+ expected << " : "
1872
+ expected << %{<select id="post_updated_at_5i" name="post[updated_at(5i)]">\n}
1873
+ expected << %{<option value="">Choose minute</option>\n<option value="00">00</option>\n<option value="01">01</option>\n<option value="02">02</option>\n<option value="03">03</option>\n<option value="04">04</option>\n<option value="05">05</option>\n<option value="06">06</option>\n<option value="07">07</option>\n<option value="08">08</option>\n<option value="09">09</option>\n<option value="10">10</option>\n<option value="11">11</option>\n<option value="12">12</option>\n<option value="13">13</option>\n<option value="14">14</option>\n<option value="15">15</option>\n<option value="16">16</option>\n<option value="17">17</option>\n<option value="18">18</option>\n<option value="19">19</option>\n<option value="20">20</option>\n<option value="21">21</option>\n<option value="22">22</option>\n<option value="23">23</option>\n<option value="24">24</option>\n<option value="25">25</option>\n<option value="26">26</option>\n<option value="27">27</option>\n<option value="28">28</option>\n<option value="29">29</option>\n<option value="30">30</option>\n<option value="31">31</option>\n<option value="32">32</option>\n<option value="33">33</option>\n<option value="34">34</option>\n<option value="35">35</option>\n<option value="36">36</option>\n<option value="37">37</option>\n<option value="38">38</option>\n<option value="39">39</option>\n<option value="40">40</option>\n<option value="41">41</option>\n<option value="42">42</option>\n<option value="43">43</option>\n<option value="44">44</option>\n<option value="45">45</option>\n<option value="46">46</option>\n<option value="47">47</option>\n<option value="48">48</option>\n<option value="49">49</option>\n<option value="50">50</option>\n<option value="51">51</option>\n<option value="52">52</option>\n<option value="53">53</option>\n<option value="54">54</option>\n<option value="55">55</option>\n<option value="56">56</option>\n<option value="57">57</option>\n<option value="58">58</option>\n<option value="59">59</option>\n}
1874
+ expected << "</select>\n"
1875
+
1876
+ assert_dom_equal expected, datetime_select("post", "updated_at", :start_year=>1999, :end_year=>2009, :prompt => {:year => 'Choose year', :month => 'Choose month', :day => 'Choose day', :hour => 'Choose hour', :minute => 'Choose minute'})
1877
+ end
1878
+
1879
+ def test_date_select_with_zero_value_and_no_start_year
1880
+ expected = %(<select id="date_first_year" name="date[first][year]">\n)
1881
+ (Date.today.year-5).upto(Date.today.year+1) { |y| expected << %(<option value="#{y}">#{y}</option>\n) }
1882
+ expected << "</select>\n"
1883
+
1884
+ expected << %(<select id="date_first_month" name="date[first][month]">\n)
1885
+ expected << %(<option value="1">January</option>\n<option value="2">February</option>\n<option value="3">March</option>\n<option value="4">April</option>\n<option value="5">May</option>\n<option value="6">June</option>\n<option value="7">July</option>\n<option value="8">August</option>\n<option value="9">September</option>\n<option value="10">October</option>\n<option value="11">November</option>\n<option value="12">December</option>\n)
1886
+ expected << "</select>\n"
1887
+
1888
+ expected << %(<select id="date_first_day" name="date[first][day]">\n)
1889
+ expected << %(<option value="1">1</option>\n<option value="2">2</option>\n<option value="3">3</option>\n<option value="4">4</option>\n<option value="5">5</option>\n<option value="6">6</option>\n<option value="7">7</option>\n<option value="8">8</option>\n<option value="9">9</option>\n<option value="10">10</option>\n<option value="11">11</option>\n<option value="12">12</option>\n<option value="13">13</option>\n<option value="14">14</option>\n<option value="15">15</option>\n<option value="16">16</option>\n<option value="17">17</option>\n<option value="18">18</option>\n<option value="19">19</option>\n<option value="20">20</option>\n<option value="21">21</option>\n<option value="22">22</option>\n<option value="23">23</option>\n<option value="24">24</option>\n<option value="25">25</option>\n<option value="26">26</option>\n<option value="27">27</option>\n<option value="28">28</option>\n<option value="29">29</option>\n<option value="30">30</option>\n<option value="31">31</option>\n)
1890
+ expected << "</select>\n"
1891
+
1892
+ assert_dom_equal expected, select_date(0, :end_year => Date.today.year+1, :prefix => "date[first]")
1893
+ end
1894
+
1895
+ def test_date_select_with_zero_value_and_no_end_year
1896
+ expected = %(<select id="date_first_year" name="date[first][year]">\n)
1897
+ last_year = Time.now.year + 5
1898
+ 2003.upto(last_year) { |y| expected << %(<option value="#{y}">#{y}</option>\n) }
1899
+ expected << "</select>\n"
1900
+
1901
+ expected << %(<select id="date_first_month" name="date[first][month]">\n)
1902
+ expected << %(<option value="1">January</option>\n<option value="2">February</option>\n<option value="3">March</option>\n<option value="4">April</option>\n<option value="5">May</option>\n<option value="6">June</option>\n<option value="7">July</option>\n<option value="8">August</option>\n<option value="9">September</option>\n<option value="10">October</option>\n<option value="11">November</option>\n<option value="12">December</option>\n)
1903
+ expected << "</select>\n"
1904
+
1905
+ expected << %(<select id="date_first_day" name="date[first][day]">\n)
1906
+ expected << %(<option value="1">1</option>\n<option value="2">2</option>\n<option value="3">3</option>\n<option value="4">4</option>\n<option value="5">5</option>\n<option value="6">6</option>\n<option value="7">7</option>\n<option value="8">8</option>\n<option value="9">9</option>\n<option value="10">10</option>\n<option value="11">11</option>\n<option value="12">12</option>\n<option value="13">13</option>\n<option value="14">14</option>\n<option value="15">15</option>\n<option value="16">16</option>\n<option value="17">17</option>\n<option value="18">18</option>\n<option value="19">19</option>\n<option value="20">20</option>\n<option value="21">21</option>\n<option value="22">22</option>\n<option value="23">23</option>\n<option value="24">24</option>\n<option value="25">25</option>\n<option value="26">26</option>\n<option value="27">27</option>\n<option value="28">28</option>\n<option value="29">29</option>\n<option value="30">30</option>\n<option value="31">31</option>\n)
1907
+ expected << "</select>\n"
1908
+
1909
+ assert_dom_equal expected, select_date(0, :start_year => 2003, :prefix => "date[first]")
1910
+ end
1911
+
1912
+ def test_date_select_with_zero_value_and_no_start_and_end_year
1913
+ expected = %(<select id="date_first_year" name="date[first][year]">\n)
1914
+ (Date.today.year-5).upto(Date.today.year+5) { |y| expected << %(<option value="#{y}">#{y}</option>\n) }
1915
+ expected << "</select>\n"
1916
+
1917
+ expected << %(<select id="date_first_month" name="date[first][month]">\n)
1918
+ expected << %(<option value="1">January</option>\n<option value="2">February</option>\n<option value="3">March</option>\n<option value="4">April</option>\n<option value="5">May</option>\n<option value="6">June</option>\n<option value="7">July</option>\n<option value="8">August</option>\n<option value="9">September</option>\n<option value="10">October</option>\n<option value="11">November</option>\n<option value="12">December</option>\n)
1919
+ expected << "</select>\n"
1920
+
1921
+ expected << %(<select id="date_first_day" name="date[first][day]">\n)
1922
+ expected << %(<option value="1">1</option>\n<option value="2">2</option>\n<option value="3">3</option>\n<option value="4">4</option>\n<option value="5">5</option>\n<option value="6">6</option>\n<option value="7">7</option>\n<option value="8">8</option>\n<option value="9">9</option>\n<option value="10">10</option>\n<option value="11">11</option>\n<option value="12">12</option>\n<option value="13">13</option>\n<option value="14">14</option>\n<option value="15">15</option>\n<option value="16">16</option>\n<option value="17">17</option>\n<option value="18">18</option>\n<option value="19">19</option>\n<option value="20">20</option>\n<option value="21">21</option>\n<option value="22">22</option>\n<option value="23">23</option>\n<option value="24">24</option>\n<option value="25">25</option>\n<option value="26">26</option>\n<option value="27">27</option>\n<option value="28">28</option>\n<option value="29">29</option>\n<option value="30">30</option>\n<option value="31">31</option>\n)
1923
+ expected << "</select>\n"
1924
+
1925
+ assert_dom_equal expected, select_date(0, :prefix => "date[first]")
1926
+ end
1927
+
1928
+ def test_date_select_with_nil_value_and_no_start_and_end_year
1929
+ expected = %(<select id="date_first_year" name="date[first][year]">\n)
1930
+ (Date.today.year-5).upto(Date.today.year+5) { |y| expected << %(<option value="#{y}">#{y}</option>\n) }
1931
+ expected << "</select>\n"
1932
+
1933
+ expected << %(<select id="date_first_month" name="date[first][month]">\n)
1934
+ expected << %(<option value="1">January</option>\n<option value="2">February</option>\n<option value="3">March</option>\n<option value="4">April</option>\n<option value="5">May</option>\n<option value="6">June</option>\n<option value="7">July</option>\n<option value="8">August</option>\n<option value="9">September</option>\n<option value="10">October</option>\n<option value="11">November</option>\n<option value="12">December</option>\n)
1935
+ expected << "</select>\n"
1936
+
1937
+ expected << %(<select id="date_first_day" name="date[first][day]">\n)
1938
+ expected << %(<option value="1">1</option>\n<option value="2">2</option>\n<option value="3">3</option>\n<option value="4">4</option>\n<option value="5">5</option>\n<option value="6">6</option>\n<option value="7">7</option>\n<option value="8">8</option>\n<option value="9">9</option>\n<option value="10">10</option>\n<option value="11">11</option>\n<option value="12">12</option>\n<option value="13">13</option>\n<option value="14">14</option>\n<option value="15">15</option>\n<option value="16">16</option>\n<option value="17">17</option>\n<option value="18">18</option>\n<option value="19">19</option>\n<option value="20">20</option>\n<option value="21">21</option>\n<option value="22">22</option>\n<option value="23">23</option>\n<option value="24">24</option>\n<option value="25">25</option>\n<option value="26">26</option>\n<option value="27">27</option>\n<option value="28">28</option>\n<option value="29">29</option>\n<option value="30">30</option>\n<option value="31">31</option>\n)
1939
+ expected << "</select>\n"
1940
+
1941
+ assert_dom_equal expected, select_date(nil, :prefix => "date[first]")
1942
+ end
1943
+
1944
+ def test_datetime_select_with_nil_value_and_no_start_and_end_year
1945
+ expected = %(<select id="date_first_year" name="date[first][year]">\n)
1946
+ (Date.today.year-5).upto(Date.today.year+5) { |y| expected << %(<option value="#{y}">#{y}</option>\n) }
1947
+ expected << "</select>\n"
1948
+
1949
+ expected << %(<select id="date_first_month" name="date[first][month]">\n)
1950
+ expected << %(<option value="1">January</option>\n<option value="2">February</option>\n<option value="3">March</option>\n<option value="4">April</option>\n<option value="5">May</option>\n<option value="6">June</option>\n<option value="7">July</option>\n<option value="8">August</option>\n<option value="9">September</option>\n<option value="10">October</option>\n<option value="11">November</option>\n<option value="12">December</option>\n)
1951
+ expected << "</select>\n"
1952
+
1953
+ expected << %(<select id="date_first_day" name="date[first][day]">\n)
1954
+ expected << %(<option value="1">1</option>\n<option value="2">2</option>\n<option value="3">3</option>\n<option value="4">4</option>\n<option value="5">5</option>\n<option value="6">6</option>\n<option value="7">7</option>\n<option value="8">8</option>\n<option value="9">9</option>\n<option value="10">10</option>\n<option value="11">11</option>\n<option value="12">12</option>\n<option value="13">13</option>\n<option value="14">14</option>\n<option value="15">15</option>\n<option value="16">16</option>\n<option value="17">17</option>\n<option value="18">18</option>\n<option value="19">19</option>\n<option value="20">20</option>\n<option value="21">21</option>\n<option value="22">22</option>\n<option value="23">23</option>\n<option value="24">24</option>\n<option value="25">25</option>\n<option value="26">26</option>\n<option value="27">27</option>\n<option value="28">28</option>\n<option value="29">29</option>\n<option value="30">30</option>\n<option value="31">31</option>\n)
1955
+ expected << "</select>\n"
1956
+
1957
+ expected << %(<select id="date_first_hour" name="date[first][hour]">\n)
1958
+ expected << %(<option value="00">00</option>\n<option value="01">01</option>\n<option value="02">02</option>\n<option value="03">03</option>\n<option value="04">04</option>\n<option value="05">05</option>\n<option value="06">06</option>\n<option value="07">07</option>\n<option value="08">08</option>\n<option value="09">09</option>\n<option value="10">10</option>\n<option value="11">11</option>\n<option value="12">12</option>\n<option value="13">13</option>\n<option value="14">14</option>\n<option value="15">15</option>\n<option value="16">16</option>\n<option value="17">17</option>\n<option value="18">18</option>\n<option value="19">19</option>\n<option value="20">20</option>\n<option value="21">21</option>\n<option value="22">22</option>\n<option value="23">23</option>\n)
1959
+ expected << "</select>\n"
1960
+
1961
+ expected << %(<select id="date_first_minute" name="date[first][minute]">\n)
1962
+ expected << %(<option value="00">00</option>\n<option value="01">01</option>\n<option value="02">02</option>\n<option value="03">03</option>\n<option value="04">04</option>\n<option value="05">05</option>\n<option value="06">06</option>\n<option value="07">07</option>\n<option value="08">08</option>\n<option value="09">09</option>\n<option value="10">10</option>\n<option value="11">11</option>\n<option value="12">12</option>\n<option value="13">13</option>\n<option value="14">14</option>\n<option value="15">15</option>\n<option value="16">16</option>\n<option value="17">17</option>\n<option value="18">18</option>\n<option value="19">19</option>\n<option value="20">20</option>\n<option value="21">21</option>\n<option value="22">22</option>\n<option value="23">23</option>\n<option value="24">24</option>\n<option value="25">25</option>\n<option value="26">26</option>\n<option value="27">27</option>\n<option value="28">28</option>\n<option value="29">29</option>\n<option value="30">30</option>\n<option value="31">31</option>\n<option value="32">32</option>\n<option value="33">33</option>\n<option value="34">34</option>\n<option value="35">35</option>\n<option value="36">36</option>\n<option value="37">37</option>\n<option value="38">38</option>\n<option value="39">39</option>\n<option value="40">40</option>\n<option value="41">41</option>\n<option value="42">42</option>\n<option value="43">43</option>\n<option value="44">44</option>\n<option value="45">45</option>\n<option value="46">46</option>\n<option value="47">47</option>\n<option value="48">48</option>\n<option value="49">49</option>\n<option value="50">50</option>\n<option value="51">51</option>\n<option value="52">52</option>\n<option value="53">53</option>\n<option value="54">54</option>\n<option value="55">55</option>\n<option value="56">56</option>\n<option value="57">57</option>\n<option value="58">58</option>\n<option value="59">59</option>\n)
1963
+ expected << "</select>\n"
1964
+
1965
+ assert_dom_equal expected, select_datetime(nil, :prefix => "date[first]")
1966
+ end
1967
+
1968
+ def test_datetime_select_with_options_index
1969
+ @post = Post.new
1970
+ @post.updated_at = Time.local(2004, 6, 15, 16, 35)
1971
+ id = 456
1972
+
1973
+ expected = %{<select id="post_456_updated_at_1i" name="post[#{id}][updated_at(1i)]">\n}
1974
+ expected << %{<option value="1999">1999</option>\n<option value="2000">2000</option>\n<option value="2001">2001</option>\n<option value="2002">2002</option>\n<option value="2003">2003</option>\n<option value="2004" selected="selected">2004</option>\n<option value="2005">2005</option>\n<option value="2006">2006</option>\n<option value="2007">2007</option>\n<option value="2008">2008</option>\n<option value="2009">2009</option>\n}
1975
+ expected << "</select>\n"
1976
+
1977
+ expected << %{<select id="post_456_updated_at_2i" name="post[#{id}][updated_at(2i)]">\n}
1978
+ expected << %{<option value="1">January</option>\n<option value="2">February</option>\n<option value="3">March</option>\n<option value="4">April</option>\n<option value="5">May</option>\n<option value="6" selected="selected">June</option>\n<option value="7">July</option>\n<option value="8">August</option>\n<option value="9">September</option>\n<option value="10">October</option>\n<option value="11">November</option>\n<option value="12">December</option>\n}
1979
+ expected << "</select>\n"
1980
+
1981
+ expected << %{<select id="post_456_updated_at_3i" name="post[#{id}][updated_at(3i)]">\n}
1982
+ expected << %{<option value="1">1</option>\n<option value="2">2</option>\n<option value="3">3</option>\n<option value="4">4</option>\n<option value="5">5</option>\n<option value="6">6</option>\n<option value="7">7</option>\n<option value="8">8</option>\n<option value="9">9</option>\n<option value="10">10</option>\n<option value="11">11</option>\n<option value="12">12</option>\n<option value="13">13</option>\n<option value="14">14</option>\n<option value="15" selected="selected">15</option>\n<option value="16">16</option>\n<option value="17">17</option>\n<option value="18">18</option>\n<option value="19">19</option>\n<option value="20">20</option>\n<option value="21">21</option>\n<option value="22">22</option>\n<option value="23">23</option>\n<option value="24">24</option>\n<option value="25">25</option>\n<option value="26">26</option>\n<option value="27">27</option>\n<option value="28">28</option>\n<option value="29">29</option>\n<option value="30">30</option>\n<option value="31">31</option>\n}
1983
+ expected << "</select>\n"
1984
+
1985
+ expected << " &mdash; "
1986
+
1987
+ expected << %{<select id="post_456_updated_at_4i" name="post[#{id}][updated_at(4i)]">\n}
1988
+ expected << %{<option value="00">00</option>\n<option value="01">01</option>\n<option value="02">02</option>\n<option value="03">03</option>\n<option value="04">04</option>\n<option value="05">05</option>\n<option value="06">06</option>\n<option value="07">07</option>\n<option value="08">08</option>\n<option value="09">09</option>\n<option value="10">10</option>\n<option value="11">11</option>\n<option value="12">12</option>\n<option value="13">13</option>\n<option value="14">14</option>\n<option value="15">15</option>\n<option value="16" selected="selected">16</option>\n<option value="17">17</option>\n<option value="18">18</option>\n<option value="19">19</option>\n<option value="20">20</option>\n<option value="21">21</option>\n<option value="22">22</option>\n<option value="23">23</option>\n}
1989
+ expected << "</select>\n"
1990
+ expected << " : "
1991
+ expected << %{<select id="post_456_updated_at_5i" name="post[#{id}][updated_at(5i)]">\n}
1992
+ expected << %{<option value="00">00</option>\n<option value="01">01</option>\n<option value="02">02</option>\n<option value="03">03</option>\n<option value="04">04</option>\n<option value="05">05</option>\n<option value="06">06</option>\n<option value="07">07</option>\n<option value="08">08</option>\n<option value="09">09</option>\n<option value="10">10</option>\n<option value="11">11</option>\n<option value="12">12</option>\n<option value="13">13</option>\n<option value="14">14</option>\n<option value="15">15</option>\n<option value="16">16</option>\n<option value="17">17</option>\n<option value="18">18</option>\n<option value="19">19</option>\n<option value="20">20</option>\n<option value="21">21</option>\n<option value="22">22</option>\n<option value="23">23</option>\n<option value="24">24</option>\n<option value="25">25</option>\n<option value="26">26</option>\n<option value="27">27</option>\n<option value="28">28</option>\n<option value="29">29</option>\n<option value="30">30</option>\n<option value="31">31</option>\n<option value="32">32</option>\n<option value="33">33</option>\n<option value="34">34</option>\n<option value="35" selected="selected">35</option>\n<option value="36">36</option>\n<option value="37">37</option>\n<option value="38">38</option>\n<option value="39">39</option>\n<option value="40">40</option>\n<option value="41">41</option>\n<option value="42">42</option>\n<option value="43">43</option>\n<option value="44">44</option>\n<option value="45">45</option>\n<option value="46">46</option>\n<option value="47">47</option>\n<option value="48">48</option>\n<option value="49">49</option>\n<option value="50">50</option>\n<option value="51">51</option>\n<option value="52">52</option>\n<option value="53">53</option>\n<option value="54">54</option>\n<option value="55">55</option>\n<option value="56">56</option>\n<option value="57">57</option>\n<option value="58">58</option>\n<option value="59">59</option>\n}
1993
+ expected << "</select>\n"
1994
+
1995
+ assert_dom_equal expected, datetime_select("post", "updated_at", :index => id)
1996
+ end
1997
+
1998
+ def test_datetime_select_within_fields_for_with_options_index
1999
+ @post = Post.new
2000
+ @post.updated_at = Time.local(2004, 6, 15, 16, 35)
2001
+ id = 456
2002
+
2003
+ fields_for :post, @post, :index => id do |f|
2004
+ concat f.datetime_select(:updated_at)
2005
+ end
2006
+
2007
+ expected = %{<select id="post_456_updated_at_1i" name="post[#{id}][updated_at(1i)]">\n}
2008
+ expected << %{<option value="1999">1999</option>\n<option value="2000">2000</option>\n<option value="2001">2001</option>\n<option value="2002">2002</option>\n<option value="2003">2003</option>\n<option value="2004" selected="selected">2004</option>\n<option value="2005">2005</option>\n<option value="2006">2006</option>\n<option value="2007">2007</option>\n<option value="2008">2008</option>\n<option value="2009">2009</option>\n}
2009
+ expected << "</select>\n"
2010
+
2011
+ expected << %{<select id="post_456_updated_at_2i" name="post[#{id}][updated_at(2i)]">\n}
2012
+ expected << %{<option value="1">January</option>\n<option value="2">February</option>\n<option value="3">March</option>\n<option value="4">April</option>\n<option value="5">May</option>\n<option value="6" selected="selected">June</option>\n<option value="7">July</option>\n<option value="8">August</option>\n<option value="9">September</option>\n<option value="10">October</option>\n<option value="11">November</option>\n<option value="12">December</option>\n}
2013
+ expected << "</select>\n"
2014
+
2015
+ expected << %{<select id="post_456_updated_at_3i" name="post[#{id}][updated_at(3i)]">\n}
2016
+ expected << %{<option value="1">1</option>\n<option value="2">2</option>\n<option value="3">3</option>\n<option value="4">4</option>\n<option value="5">5</option>\n<option value="6">6</option>\n<option value="7">7</option>\n<option value="8">8</option>\n<option value="9">9</option>\n<option value="10">10</option>\n<option value="11">11</option>\n<option value="12">12</option>\n<option value="13">13</option>\n<option value="14">14</option>\n<option value="15" selected="selected">15</option>\n<option value="16">16</option>\n<option value="17">17</option>\n<option value="18">18</option>\n<option value="19">19</option>\n<option value="20">20</option>\n<option value="21">21</option>\n<option value="22">22</option>\n<option value="23">23</option>\n<option value="24">24</option>\n<option value="25">25</option>\n<option value="26">26</option>\n<option value="27">27</option>\n<option value="28">28</option>\n<option value="29">29</option>\n<option value="30">30</option>\n<option value="31">31</option>\n}
2017
+ expected << "</select>\n"
2018
+
2019
+ expected << " &mdash; "
2020
+
2021
+ expected << %{<select id="post_456_updated_at_4i" name="post[#{id}][updated_at(4i)]">\n}
2022
+ expected << %{<option value="00">00</option>\n<option value="01">01</option>\n<option value="02">02</option>\n<option value="03">03</option>\n<option value="04">04</option>\n<option value="05">05</option>\n<option value="06">06</option>\n<option value="07">07</option>\n<option value="08">08</option>\n<option value="09">09</option>\n<option value="10">10</option>\n<option value="11">11</option>\n<option value="12">12</option>\n<option value="13">13</option>\n<option value="14">14</option>\n<option value="15">15</option>\n<option value="16" selected="selected">16</option>\n<option value="17">17</option>\n<option value="18">18</option>\n<option value="19">19</option>\n<option value="20">20</option>\n<option value="21">21</option>\n<option value="22">22</option>\n<option value="23">23</option>\n}
2023
+ expected << "</select>\n"
2024
+ expected << " : "
2025
+ expected << %{<select id="post_456_updated_at_5i" name="post[#{id}][updated_at(5i)]">\n}
2026
+ expected << %{<option value="00">00</option>\n<option value="01">01</option>\n<option value="02">02</option>\n<option value="03">03</option>\n<option value="04">04</option>\n<option value="05">05</option>\n<option value="06">06</option>\n<option value="07">07</option>\n<option value="08">08</option>\n<option value="09">09</option>\n<option value="10">10</option>\n<option value="11">11</option>\n<option value="12">12</option>\n<option value="13">13</option>\n<option value="14">14</option>\n<option value="15">15</option>\n<option value="16">16</option>\n<option value="17">17</option>\n<option value="18">18</option>\n<option value="19">19</option>\n<option value="20">20</option>\n<option value="21">21</option>\n<option value="22">22</option>\n<option value="23">23</option>\n<option value="24">24</option>\n<option value="25">25</option>\n<option value="26">26</option>\n<option value="27">27</option>\n<option value="28">28</option>\n<option value="29">29</option>\n<option value="30">30</option>\n<option value="31">31</option>\n<option value="32">32</option>\n<option value="33">33</option>\n<option value="34">34</option>\n<option value="35" selected="selected">35</option>\n<option value="36">36</option>\n<option value="37">37</option>\n<option value="38">38</option>\n<option value="39">39</option>\n<option value="40">40</option>\n<option value="41">41</option>\n<option value="42">42</option>\n<option value="43">43</option>\n<option value="44">44</option>\n<option value="45">45</option>\n<option value="46">46</option>\n<option value="47">47</option>\n<option value="48">48</option>\n<option value="49">49</option>\n<option value="50">50</option>\n<option value="51">51</option>\n<option value="52">52</option>\n<option value="53">53</option>\n<option value="54">54</option>\n<option value="55">55</option>\n<option value="56">56</option>\n<option value="57">57</option>\n<option value="58">58</option>\n<option value="59">59</option>\n}
2027
+ expected << "</select>\n"
2028
+
2029
+ assert_dom_equal expected, output_buffer
2030
+ end
2031
+
2032
+ def test_datetime_select_with_auto_index
2033
+ @post = Post.new
2034
+ @post.updated_at = Time.local(2004, 6, 15, 16, 35)
2035
+ id = @post.id
2036
+
2037
+ expected = %{<select id="post_123_updated_at_1i" name="post[#{id}][updated_at(1i)]">\n}
2038
+ expected << %{<option value="1999">1999</option>\n<option value="2000">2000</option>\n<option value="2001">2001</option>\n<option value="2002">2002</option>\n<option value="2003">2003</option>\n<option value="2004" selected="selected">2004</option>\n<option value="2005">2005</option>\n<option value="2006">2006</option>\n<option value="2007">2007</option>\n<option value="2008">2008</option>\n<option value="2009">2009</option>\n}
2039
+ expected << "</select>\n"
2040
+
2041
+ expected << %{<select id="post_123_updated_at_2i" name="post[#{id}][updated_at(2i)]">\n}
2042
+ expected << %{<option value="1">January</option>\n<option value="2">February</option>\n<option value="3">March</option>\n<option value="4">April</option>\n<option value="5">May</option>\n<option value="6" selected="selected">June</option>\n<option value="7">July</option>\n<option value="8">August</option>\n<option value="9">September</option>\n<option value="10">October</option>\n<option value="11">November</option>\n<option value="12">December</option>\n}
2043
+ expected << "</select>\n"
2044
+
2045
+ expected << %{<select id="post_123_updated_at_3i" name="post[#{id}][updated_at(3i)]">\n}
2046
+ expected << %{<option value="1">1</option>\n<option value="2">2</option>\n<option value="3">3</option>\n<option value="4">4</option>\n<option value="5">5</option>\n<option value="6">6</option>\n<option value="7">7</option>\n<option value="8">8</option>\n<option value="9">9</option>\n<option value="10">10</option>\n<option value="11">11</option>\n<option value="12">12</option>\n<option value="13">13</option>\n<option value="14">14</option>\n<option value="15" selected="selected">15</option>\n<option value="16">16</option>\n<option value="17">17</option>\n<option value="18">18</option>\n<option value="19">19</option>\n<option value="20">20</option>\n<option value="21">21</option>\n<option value="22">22</option>\n<option value="23">23</option>\n<option value="24">24</option>\n<option value="25">25</option>\n<option value="26">26</option>\n<option value="27">27</option>\n<option value="28">28</option>\n<option value="29">29</option>\n<option value="30">30</option>\n<option value="31">31</option>\n}
2047
+ expected << "</select>\n"
2048
+
2049
+ expected << " &mdash; "
2050
+
2051
+ expected << %{<select id="post_123_updated_at_4i" name="post[#{id}][updated_at(4i)]">\n}
2052
+ expected << %{<option value="00">00</option>\n<option value="01">01</option>\n<option value="02">02</option>\n<option value="03">03</option>\n<option value="04">04</option>\n<option value="05">05</option>\n<option value="06">06</option>\n<option value="07">07</option>\n<option value="08">08</option>\n<option value="09">09</option>\n<option value="10">10</option>\n<option value="11">11</option>\n<option value="12">12</option>\n<option value="13">13</option>\n<option value="14">14</option>\n<option value="15">15</option>\n<option value="16" selected="selected">16</option>\n<option value="17">17</option>\n<option value="18">18</option>\n<option value="19">19</option>\n<option value="20">20</option>\n<option value="21">21</option>\n<option value="22">22</option>\n<option value="23">23</option>\n}
2053
+ expected << "</select>\n"
2054
+ expected << " : "
2055
+ expected << %{<select id="post_123_updated_at_5i" name="post[#{id}][updated_at(5i)]">\n}
2056
+ expected << %{<option value="00">00</option>\n<option value="01">01</option>\n<option value="02">02</option>\n<option value="03">03</option>\n<option value="04">04</option>\n<option value="05">05</option>\n<option value="06">06</option>\n<option value="07">07</option>\n<option value="08">08</option>\n<option value="09">09</option>\n<option value="10">10</option>\n<option value="11">11</option>\n<option value="12">12</option>\n<option value="13">13</option>\n<option value="14">14</option>\n<option value="15">15</option>\n<option value="16">16</option>\n<option value="17">17</option>\n<option value="18">18</option>\n<option value="19">19</option>\n<option value="20">20</option>\n<option value="21">21</option>\n<option value="22">22</option>\n<option value="23">23</option>\n<option value="24">24</option>\n<option value="25">25</option>\n<option value="26">26</option>\n<option value="27">27</option>\n<option value="28">28</option>\n<option value="29">29</option>\n<option value="30">30</option>\n<option value="31">31</option>\n<option value="32">32</option>\n<option value="33">33</option>\n<option value="34">34</option>\n<option value="35" selected="selected">35</option>\n<option value="36">36</option>\n<option value="37">37</option>\n<option value="38">38</option>\n<option value="39">39</option>\n<option value="40">40</option>\n<option value="41">41</option>\n<option value="42">42</option>\n<option value="43">43</option>\n<option value="44">44</option>\n<option value="45">45</option>\n<option value="46">46</option>\n<option value="47">47</option>\n<option value="48">48</option>\n<option value="49">49</option>\n<option value="50">50</option>\n<option value="51">51</option>\n<option value="52">52</option>\n<option value="53">53</option>\n<option value="54">54</option>\n<option value="55">55</option>\n<option value="56">56</option>\n<option value="57">57</option>\n<option value="58">58</option>\n<option value="59">59</option>\n}
2057
+ expected << "</select>\n"
2058
+
2059
+ assert_dom_equal expected, datetime_select("post[]", "updated_at")
2060
+ end
2061
+
2062
+ def test_datetime_select_with_seconds
2063
+ @post = Post.new
2064
+ @post.updated_at = Time.local(2004, 6, 15, 15, 16, 35)
2065
+
2066
+ expected = %{<select id="post_updated_at_1i" name="post[updated_at(1i)]">\n}
2067
+ 1999.upto(2009) { |i| expected << %(<option value="#{i}"#{' selected="selected"' if i == 2004}>#{i}</option>\n) }
2068
+ expected << "</select>\n"
2069
+ expected << %{<select id="post_updated_at_2i" name="post[updated_at(2i)]">\n}
2070
+ 1.upto(12) { |i| expected << %(<option value="#{i}"#{' selected="selected"' if i == 6}>#{Date::MONTHNAMES[i]}</option>\n) }
2071
+ expected << "</select>\n"
2072
+ expected << %{<select id="post_updated_at_3i" name="post[updated_at(3i)]">\n}
2073
+ 1.upto(31) { |i| expected << %(<option value="#{i}"#{' selected="selected"' if i == 15}>#{i}</option>\n) }
2074
+ expected << "</select>\n"
2075
+
2076
+ expected << " &mdash; "
2077
+
2078
+ expected << %{<select id="post_updated_at_4i" name="post[updated_at(4i)]">\n}
2079
+ 0.upto(23) { |i| expected << %(<option value="#{sprintf("%02d", i)}"#{' selected="selected"' if i == 15}>#{sprintf("%02d", i)}</option>\n) }
2080
+ expected << "</select>\n"
2081
+ expected << " : "
2082
+ expected << %{<select id="post_updated_at_5i" name="post[updated_at(5i)]">\n}
2083
+ 0.upto(59) { |i| expected << %(<option value="#{sprintf("%02d", i)}"#{' selected="selected"' if i == 16}>#{sprintf("%02d", i)}</option>\n) }
2084
+ expected << "</select>\n"
2085
+ expected << " : "
2086
+ expected << %{<select id="post_updated_at_6i" name="post[updated_at(6i)]">\n}
2087
+ 0.upto(59) { |i| expected << %(<option value="#{sprintf("%02d", i)}"#{' selected="selected"' if i == 35}>#{sprintf("%02d", i)}</option>\n) }
2088
+ expected << "</select>\n"
2089
+
2090
+ assert_dom_equal expected, datetime_select("post", "updated_at", :include_seconds => true)
2091
+ end
2092
+
2093
+ def test_datetime_select_discard_year
2094
+ @post = Post.new
2095
+ @post.updated_at = Time.local(2004, 6, 15, 15, 16, 35)
2096
+
2097
+ expected = %{<input type="hidden" id="post_updated_at_1i" name="post[updated_at(1i)]" value="2004" />\n}
2098
+ expected << %{<select id="post_updated_at_2i" name="post[updated_at(2i)]">\n}
2099
+ 1.upto(12) { |i| expected << %(<option value="#{i}"#{' selected="selected"' if i == 6}>#{Date::MONTHNAMES[i]}</option>\n) }
2100
+ expected << "</select>\n"
2101
+ expected << %{<select id="post_updated_at_3i" name="post[updated_at(3i)]">\n}
2102
+ 1.upto(31) { |i| expected << %(<option value="#{i}"#{' selected="selected"' if i == 15}>#{i}</option>\n) }
2103
+ expected << "</select>\n"
2104
+
2105
+ expected << " &mdash; "
2106
+
2107
+ expected << %{<select id="post_updated_at_4i" name="post[updated_at(4i)]">\n}
2108
+ 0.upto(23) { |i| expected << %(<option value="#{sprintf("%02d", i)}"#{' selected="selected"' if i == 15}>#{sprintf("%02d", i)}</option>\n) }
2109
+ expected << "</select>\n"
2110
+ expected << " : "
2111
+ expected << %{<select id="post_updated_at_5i" name="post[updated_at(5i)]">\n}
2112
+ 0.upto(59) { |i| expected << %(<option value="#{sprintf("%02d", i)}"#{' selected="selected"' if i == 16}>#{sprintf("%02d", i)}</option>\n) }
2113
+ expected << "</select>\n"
2114
+
2115
+ assert_dom_equal expected, datetime_select("post", "updated_at", :discard_year => true)
2116
+ end
2117
+
2118
+ def test_datetime_select_discard_month
2119
+ @post = Post.new
2120
+ @post.updated_at = Time.local(2004, 6, 15, 15, 16, 35)
2121
+
2122
+ expected = %{<select id="post_updated_at_1i" name="post[updated_at(1i)]">\n}
2123
+ 1999.upto(2009) { |i| expected << %(<option value="#{i}"#{' selected="selected"' if i == 2004}>#{i}</option>\n) }
2124
+ expected << "</select>\n"
2125
+ expected << %{<input type="hidden" id="post_updated_at_2i" name="post[updated_at(2i)]" value="6" />\n}
2126
+ expected << %{<input type="hidden" id="post_updated_at_3i" name="post[updated_at(3i)]" value="15" />\n}
2127
+
2128
+ expected << " &mdash; "
2129
+
2130
+ expected << %{<select id="post_updated_at_4i" name="post[updated_at(4i)]">\n}
2131
+ 0.upto(23) { |i| expected << %(<option value="#{sprintf("%02d", i)}"#{' selected="selected"' if i == 15}>#{sprintf("%02d", i)}</option>\n) }
2132
+ expected << "</select>\n"
2133
+ expected << " : "
2134
+ expected << %{<select id="post_updated_at_5i" name="post[updated_at(5i)]">\n}
2135
+ 0.upto(59) { |i| expected << %(<option value="#{sprintf("%02d", i)}"#{' selected="selected"' if i == 16}>#{sprintf("%02d", i)}</option>\n) }
2136
+ expected << "</select>\n"
2137
+
2138
+ assert_dom_equal expected, datetime_select("post", "updated_at", :discard_month => true)
2139
+ end
2140
+
2141
+ def test_datetime_select_discard_year_and_month
2142
+ @post = Post.new
2143
+ @post.updated_at = Time.local(2004, 6, 15, 15, 16, 35)
2144
+
2145
+ expected = %{<input type="hidden" id="post_updated_at_1i" name="post[updated_at(1i)]" value="2004" />\n}
2146
+ expected << %{<input type="hidden" id="post_updated_at_2i" name="post[updated_at(2i)]" value="6" />\n}
2147
+ expected << %{<input type="hidden" id="post_updated_at_3i" name="post[updated_at(3i)]" value="15" />\n}
2148
+
2149
+ expected << %{<select id="post_updated_at_4i" name="post[updated_at(4i)]">\n}
2150
+ 0.upto(23) { |i| expected << %(<option value="#{sprintf("%02d", i)}"#{' selected="selected"' if i == 15}>#{sprintf("%02d", i)}</option>\n) }
2151
+ expected << "</select>\n"
2152
+ expected << " : "
2153
+ expected << %{<select id="post_updated_at_5i" name="post[updated_at(5i)]">\n}
2154
+ 0.upto(59) { |i| expected << %(<option value="#{sprintf("%02d", i)}"#{' selected="selected"' if i == 16}>#{sprintf("%02d", i)}</option>\n) }
2155
+ expected << "</select>\n"
2156
+
2157
+ assert_dom_equal expected, datetime_select("post", "updated_at", :discard_year => true, :discard_month => true)
2158
+ end
2159
+
2160
+ def test_datetime_select_invalid_order
2161
+ @post = Post.new
2162
+ @post.updated_at = Time.local(2004, 6, 15, 15, 16, 35)
2163
+
2164
+ expected = %{<select id="post_updated_at_3i" name="post[updated_at(3i)]">\n}
2165
+ 1.upto(31) { |i| expected << %(<option value="#{i}"#{' selected="selected"' if i == 15}>#{i}</option>\n) }
2166
+ expected << "</select>\n"
2167
+ expected << %{<select id="post_updated_at_2i" name="post[updated_at(2i)]">\n}
2168
+ 1.upto(12) { |i| expected << %(<option value="#{i}"#{' selected="selected"' if i == 6}>#{Date::MONTHNAMES[i]}</option>\n) }
2169
+ expected << "</select>\n"
2170
+ expected << %{<select id="post_updated_at_1i" name="post[updated_at(1i)]">\n}
2171
+ 1999.upto(2009) { |i| expected << %(<option value="#{i}"#{' selected="selected"' if i == 2004}>#{i}</option>\n) }
2172
+ expected << "</select>\n"
2173
+
2174
+ expected << " &mdash; "
2175
+
2176
+ expected << %{<select id="post_updated_at_4i" name="post[updated_at(4i)]">\n}
2177
+ 0.upto(23) { |i| expected << %(<option value="#{sprintf("%02d", i)}"#{' selected="selected"' if i == 15}>#{sprintf("%02d", i)}</option>\n) }
2178
+ expected << "</select>\n"
2179
+ expected << " : "
2180
+ expected << %{<select id="post_updated_at_5i" name="post[updated_at(5i)]">\n}
2181
+ 0.upto(59) { |i| expected << %(<option value="#{sprintf("%02d", i)}"#{' selected="selected"' if i == 16}>#{sprintf("%02d", i)}</option>\n) }
2182
+ expected << "</select>\n"
2183
+
2184
+ assert_dom_equal expected, datetime_select("post", "updated_at", :order => [:minute, :day, :hour, :month, :year, :second])
2185
+ end
2186
+
2187
+ def test_datetime_select_discard_with_order
2188
+ @post = Post.new
2189
+ @post.updated_at = Time.local(2004, 6, 15, 15, 16, 35)
2190
+
2191
+ expected = %{<input type="hidden" id="post_updated_at_1i" name="post[updated_at(1i)]" value="2004" />\n}
2192
+ expected << %{<select id="post_updated_at_3i" name="post[updated_at(3i)]">\n}
2193
+ 1.upto(31) { |i| expected << %(<option value="#{i}"#{' selected="selected"' if i == 15}>#{i}</option>\n) }
2194
+ expected << "</select>\n"
2195
+ expected << %{<select id="post_updated_at_2i" name="post[updated_at(2i)]">\n}
2196
+ 1.upto(12) { |i| expected << %(<option value="#{i}"#{' selected="selected"' if i == 6}>#{Date::MONTHNAMES[i]}</option>\n) }
2197
+ expected << "</select>\n"
2198
+
2199
+ expected << " &mdash; "
2200
+
2201
+ expected << %{<select id="post_updated_at_4i" name="post[updated_at(4i)]">\n}
2202
+ 0.upto(23) { |i| expected << %(<option value="#{sprintf("%02d", i)}"#{' selected="selected"' if i == 15}>#{sprintf("%02d", i)}</option>\n) }
2203
+ expected << "</select>\n"
2204
+ expected << " : "
2205
+ expected << %{<select id="post_updated_at_5i" name="post[updated_at(5i)]">\n}
2206
+ 0.upto(59) { |i| expected << %(<option value="#{sprintf("%02d", i)}"#{' selected="selected"' if i == 16}>#{sprintf("%02d", i)}</option>\n) }
2207
+ expected << "</select>\n"
2208
+
2209
+ assert_dom_equal expected, datetime_select("post", "updated_at", :order => [:day, :month])
2210
+ end
2211
+
2212
+ def test_datetime_select_with_default_value_as_time
2213
+ @post = Post.new
2214
+ @post.updated_at = nil
2215
+
2216
+ expected = %{<select id="post_updated_at_1i" name="post[updated_at(1i)]">\n}
2217
+ 2001.upto(2011) { |i| expected << %(<option value="#{i}"#{' selected="selected"' if i == 2006}>#{i}</option>\n) }
2218
+ expected << "</select>\n"
2219
+ expected << %{<select id="post_updated_at_2i" name="post[updated_at(2i)]">\n}
2220
+ 1.upto(12) { |i| expected << %(<option value="#{i}"#{' selected="selected"' if i == 9}>#{Date::MONTHNAMES[i]}</option>\n) }
2221
+ expected << "</select>\n"
2222
+ expected << %{<select id="post_updated_at_3i" name="post[updated_at(3i)]">\n}
2223
+ 1.upto(31) { |i| expected << %(<option value="#{i}"#{' selected="selected"' if i == 19}>#{i}</option>\n) }
2224
+ expected << "</select>\n"
2225
+
2226
+ expected << " &mdash; "
2227
+
2228
+ expected << %{<select id="post_updated_at_4i" name="post[updated_at(4i)]">\n}
2229
+ 0.upto(23) { |i| expected << %(<option value="#{sprintf("%02d", i)}"#{' selected="selected"' if i == 15}>#{sprintf("%02d", i)}</option>\n) }
2230
+ expected << "</select>\n"
2231
+ expected << " : "
2232
+ expected << %{<select id="post_updated_at_5i" name="post[updated_at(5i)]">\n}
2233
+ 0.upto(59) { |i| expected << %(<option value="#{sprintf("%02d", i)}"#{' selected="selected"' if i == 16}>#{sprintf("%02d", i)}</option>\n) }
2234
+ expected << "</select>\n"
2235
+
2236
+ assert_dom_equal expected, datetime_select("post", "updated_at", :default => Time.local(2006, 9, 19, 15, 16, 35))
2237
+ end
2238
+
2239
+ def test_include_blank_overrides_default_option
2240
+ @post = Post.new
2241
+ @post.updated_at = nil
2242
+
2243
+ expected = %{<select id="post_updated_at_1i" name="post[updated_at(1i)]">\n}
2244
+ expected << %(<option value=""></option>\n)
2245
+ (Time.now.year - 5).upto(Time.now.year + 5) { |i| expected << %(<option value="#{i}">#{i}</option>\n) }
2246
+ expected << "</select>\n"
2247
+ expected << %{<select id="post_updated_at_2i" name="post[updated_at(2i)]">\n}
2248
+ expected << %(<option value=""></option>\n)
2249
+ 1.upto(12) { |i| expected << %(<option value="#{i}">#{Date::MONTHNAMES[i]}</option>\n) }
2250
+ expected << "</select>\n"
2251
+ expected << %{<select id="post_updated_at_3i" name="post[updated_at(3i)]">\n}
2252
+ expected << %(<option value=""></option>\n)
2253
+ 1.upto(31) { |i| expected << %(<option value="#{i}">#{i}</option>\n) }
2254
+ expected << "</select>\n"
2255
+
2256
+ assert_dom_equal expected, date_select("post", "updated_at", :default => Time.local(2006, 9, 19, 15, 16, 35), :include_blank => true)
2257
+ end
2258
+
2259
+ def test_datetime_select_with_default_value_as_hash
2260
+ @post = Post.new
2261
+ @post.updated_at = nil
2262
+
2263
+ expected = %{<select id="post_updated_at_1i" name="post[updated_at(1i)]">\n}
2264
+ (Time.now.year - 5).upto(Time.now.year + 5) { |i| expected << %(<option value="#{i}"#{' selected="selected"' if i == Time.now.year}>#{i}</option>\n) }
2265
+ expected << "</select>\n"
2266
+ expected << %{<select id="post_updated_at_2i" name="post[updated_at(2i)]">\n}
2267
+ 1.upto(12) { |i| expected << %(<option value="#{i}"#{' selected="selected"' if i == 10}>#{Date::MONTHNAMES[i]}</option>\n) }
2268
+ expected << "</select>\n"
2269
+ expected << %{<select id="post_updated_at_3i" name="post[updated_at(3i)]">\n}
2270
+ 1.upto(31) { |i| expected << %(<option value="#{i}"#{' selected="selected"' if i == Time.now.day}>#{i}</option>\n) }
2271
+ expected << "</select>\n"
2272
+
2273
+ expected << " &mdash; "
2274
+
2275
+ expected << %{<select id="post_updated_at_4i" name="post[updated_at(4i)]">\n}
2276
+ 0.upto(23) { |i| expected << %(<option value="#{sprintf("%02d", i)}"#{' selected="selected"' if i == 9}>#{sprintf("%02d", i)}</option>\n) }
2277
+ expected << "</select>\n"
2278
+ expected << " : "
2279
+ expected << %{<select id="post_updated_at_5i" name="post[updated_at(5i)]">\n}
2280
+ 0.upto(59) { |i| expected << %(<option value="#{sprintf("%02d", i)}"#{' selected="selected"' if i == 42}>#{sprintf("%02d", i)}</option>\n) }
2281
+ expected << "</select>\n"
2282
+
2283
+ assert_dom_equal expected, datetime_select("post", "updated_at", :default => { :month => 10, :minute => 42, :hour => 9 })
2284
+ end
2285
+
2286
+ def test_datetime_select_with_html_options
2287
+ @post = Post.new
2288
+ @post.updated_at = Time.local(2004, 6, 15, 16, 35)
2289
+
2290
+ expected = %{<select id="post_updated_at_1i" name="post[updated_at(1i)]" class="selector">\n}
2291
+ expected << %{<option value="1999">1999</option>\n<option value="2000">2000</option>\n<option value="2001">2001</option>\n<option value="2002">2002</option>\n<option value="2003">2003</option>\n<option value="2004" selected="selected">2004</option>\n<option value="2005">2005</option>\n<option value="2006">2006</option>\n<option value="2007">2007</option>\n<option value="2008">2008</option>\n<option value="2009">2009</option>\n}
2292
+ expected << "</select>\n"
2293
+
2294
+ expected << %{<select id="post_updated_at_2i" name="post[updated_at(2i)]" class="selector">\n}
2295
+ expected << %{<option value="1">January</option>\n<option value="2">February</option>\n<option value="3">March</option>\n<option value="4">April</option>\n<option value="5">May</option>\n<option value="6" selected="selected">June</option>\n<option value="7">July</option>\n<option value="8">August</option>\n<option value="9">September</option>\n<option value="10">October</option>\n<option value="11">November</option>\n<option value="12">December</option>\n}
2296
+ expected << "</select>\n"
2297
+
2298
+ expected << %{<select id="post_updated_at_3i" name="post[updated_at(3i)]" class="selector">\n}
2299
+ expected << %{<option value="1">1</option>\n<option value="2">2</option>\n<option value="3">3</option>\n<option value="4">4</option>\n<option value="5">5</option>\n<option value="6">6</option>\n<option value="7">7</option>\n<option value="8">8</option>\n<option value="9">9</option>\n<option value="10">10</option>\n<option value="11">11</option>\n<option value="12">12</option>\n<option value="13">13</option>\n<option value="14">14</option>\n<option value="15" selected="selected">15</option>\n<option value="16">16</option>\n<option value="17">17</option>\n<option value="18">18</option>\n<option value="19">19</option>\n<option value="20">20</option>\n<option value="21">21</option>\n<option value="22">22</option>\n<option value="23">23</option>\n<option value="24">24</option>\n<option value="25">25</option>\n<option value="26">26</option>\n<option value="27">27</option>\n<option value="28">28</option>\n<option value="29">29</option>\n<option value="30">30</option>\n<option value="31">31</option>\n}
2300
+ expected << "</select>\n"
2301
+
2302
+ expected << " &mdash; "
2303
+
2304
+ expected << %{<select id="post_updated_at_4i" name="post[updated_at(4i)]" class="selector">\n}
2305
+ expected << %{<option value="00">00</option>\n<option value="01">01</option>\n<option value="02">02</option>\n<option value="03">03</option>\n<option value="04">04</option>\n<option value="05">05</option>\n<option value="06">06</option>\n<option value="07">07</option>\n<option value="08">08</option>\n<option value="09">09</option>\n<option value="10">10</option>\n<option value="11">11</option>\n<option value="12">12</option>\n<option value="13">13</option>\n<option value="14">14</option>\n<option value="15">15</option>\n<option value="16" selected="selected">16</option>\n<option value="17">17</option>\n<option value="18">18</option>\n<option value="19">19</option>\n<option value="20">20</option>\n<option value="21">21</option>\n<option value="22">22</option>\n<option value="23">23</option>\n}
2306
+ expected << "</select>\n"
2307
+ expected << " : "
2308
+ expected << %{<select id="post_updated_at_5i" name="post[updated_at(5i)]" class="selector">\n}
2309
+ expected << %{<option value="00">00</option>\n<option value="01">01</option>\n<option value="02">02</option>\n<option value="03">03</option>\n<option value="04">04</option>\n<option value="05">05</option>\n<option value="06">06</option>\n<option value="07">07</option>\n<option value="08">08</option>\n<option value="09">09</option>\n<option value="10">10</option>\n<option value="11">11</option>\n<option value="12">12</option>\n<option value="13">13</option>\n<option value="14">14</option>\n<option value="15">15</option>\n<option value="16">16</option>\n<option value="17">17</option>\n<option value="18">18</option>\n<option value="19">19</option>\n<option value="20">20</option>\n<option value="21">21</option>\n<option value="22">22</option>\n<option value="23">23</option>\n<option value="24">24</option>\n<option value="25">25</option>\n<option value="26">26</option>\n<option value="27">27</option>\n<option value="28">28</option>\n<option value="29">29</option>\n<option value="30">30</option>\n<option value="31">31</option>\n<option value="32">32</option>\n<option value="33">33</option>\n<option value="34">34</option>\n<option value="35" selected="selected">35</option>\n<option value="36">36</option>\n<option value="37">37</option>\n<option value="38">38</option>\n<option value="39">39</option>\n<option value="40">40</option>\n<option value="41">41</option>\n<option value="42">42</option>\n<option value="43">43</option>\n<option value="44">44</option>\n<option value="45">45</option>\n<option value="46">46</option>\n<option value="47">47</option>\n<option value="48">48</option>\n<option value="49">49</option>\n<option value="50">50</option>\n<option value="51">51</option>\n<option value="52">52</option>\n<option value="53">53</option>\n<option value="54">54</option>\n<option value="55">55</option>\n<option value="56">56</option>\n<option value="57">57</option>\n<option value="58">58</option>\n<option value="59">59</option>\n}
2310
+ expected << "</select>\n"
2311
+
2312
+ assert_dom_equal expected, datetime_select("post", "updated_at", {}, :class => 'selector')
2313
+ end
2314
+
2315
+ def test_date_select_should_not_change_passed_options_hash
2316
+ @post = Post.new
2317
+ @post.updated_at = Time.local(2008, 7, 16, 23, 30)
2318
+
2319
+ options = {
2320
+ :order => [ :year, :month, :day ],
2321
+ :default => { :year => 2008, :month => 7, :day => 16, :hour => 23, :minute => 30, :second => 1 },
2322
+ :discard_type => false,
2323
+ :include_blank => false,
2324
+ :ignore_date => false,
2325
+ :include_seconds => true
2326
+ }
2327
+ date_select(@post, :updated_at, options)
2328
+
2329
+ # note: the literal hash is intentional to show that the actual options hash isn't modified
2330
+ # don't change this!
2331
+ assert_equal({
2332
+ :order => [ :year, :month, :day ],
2333
+ :default => { :year => 2008, :month => 7, :day => 16, :hour => 23, :minute => 30, :second => 1 },
2334
+ :discard_type => false,
2335
+ :include_blank => false,
2336
+ :ignore_date => false,
2337
+ :include_seconds => true
2338
+ }, options)
2339
+ end
2340
+
2341
+ def test_datetime_select_should_not_change_passed_options_hash
2342
+ @post = Post.new
2343
+ @post.updated_at = Time.local(2008, 7, 16, 23, 30)
2344
+
2345
+ options = {
2346
+ :order => [ :year, :month, :day ],
2347
+ :default => { :year => 2008, :month => 7, :day => 16, :hour => 23, :minute => 30, :second => 1 },
2348
+ :discard_type => false,
2349
+ :include_blank => false,
2350
+ :ignore_date => false,
2351
+ :include_seconds => true
2352
+ }
2353
+ datetime_select(@post, :updated_at, options)
2354
+
2355
+ # note: the literal hash is intentional to show that the actual options hash isn't modified
2356
+ # don't change this!
2357
+ assert_equal({
2358
+ :order => [ :year, :month, :day ],
2359
+ :default => { :year => 2008, :month => 7, :day => 16, :hour => 23, :minute => 30, :second => 1 },
2360
+ :discard_type => false,
2361
+ :include_blank => false,
2362
+ :ignore_date => false,
2363
+ :include_seconds => true
2364
+ }, options)
2365
+ end
2366
+
2367
+ def test_time_select_should_not_change_passed_options_hash
2368
+ @post = Post.new
2369
+ @post.updated_at = Time.local(2008, 7, 16, 23, 30)
2370
+
2371
+ options = {
2372
+ :order => [ :year, :month, :day ],
2373
+ :default => { :year => 2008, :month => 7, :day => 16, :hour => 23, :minute => 30, :second => 1 },
2374
+ :discard_type => false,
2375
+ :include_blank => false,
2376
+ :ignore_date => false,
2377
+ :include_seconds => true
2378
+ }
2379
+ time_select(@post, :updated_at, options)
2380
+
2381
+ # note: the literal hash is intentional to show that the actual options hash isn't modified
2382
+ # don't change this!
2383
+ assert_equal({
2384
+ :order => [ :year, :month, :day ],
2385
+ :default => { :year => 2008, :month => 7, :day => 16, :hour => 23, :minute => 30, :second => 1 },
2386
+ :discard_type => false,
2387
+ :include_blank => false,
2388
+ :ignore_date => false,
2389
+ :include_seconds => true
2390
+ }, options)
2391
+ end
2392
+
2393
+ def test_select_date_should_not_change_passed_options_hash
2394
+ options = {
2395
+ :order => [ :year, :month, :day ],
2396
+ :default => { :year => 2008, :month => 7, :day => 16, :hour => 23, :minute => 30, :second => 1 },
2397
+ :discard_type => false,
2398
+ :include_blank => false,
2399
+ :ignore_date => false,
2400
+ :include_seconds => true
2401
+ }
2402
+ select_date(Date.today, options)
2403
+
2404
+ # note: the literal hash is intentional to show that the actual options hash isn't modified
2405
+ # don't change this!
2406
+ assert_equal({
2407
+ :order => [ :year, :month, :day ],
2408
+ :default => { :year => 2008, :month => 7, :day => 16, :hour => 23, :minute => 30, :second => 1 },
2409
+ :discard_type => false,
2410
+ :include_blank => false,
2411
+ :ignore_date => false,
2412
+ :include_seconds => true
2413
+ }, options)
2414
+ end
2415
+
2416
+ def test_select_datetime_should_not_change_passed_options_hash
2417
+ options = {
2418
+ :order => [ :year, :month, :day ],
2419
+ :default => { :year => 2008, :month => 7, :day => 16, :hour => 23, :minute => 30, :second => 1 },
2420
+ :discard_type => false,
2421
+ :include_blank => false,
2422
+ :ignore_date => false,
2423
+ :include_seconds => true
2424
+ }
2425
+ select_datetime(Time.now, options)
2426
+
2427
+ # note: the literal hash is intentional to show that the actual options hash isn't modified
2428
+ # don't change this!
2429
+ assert_equal({
2430
+ :order => [ :year, :month, :day ],
2431
+ :default => { :year => 2008, :month => 7, :day => 16, :hour => 23, :minute => 30, :second => 1 },
2432
+ :discard_type => false,
2433
+ :include_blank => false,
2434
+ :ignore_date => false,
2435
+ :include_seconds => true
2436
+ }, options)
2437
+ end
2438
+
2439
+ def test_select_time_should_not_change_passed_options_hash
2440
+ options = {
2441
+ :order => [ :year, :month, :day ],
2442
+ :default => { :year => 2008, :month => 7, :day => 16, :hour => 23, :minute => 30, :second => 1 },
2443
+ :discard_type => false,
2444
+ :include_blank => false,
2445
+ :ignore_date => false,
2446
+ :include_seconds => true
2447
+ }
2448
+ select_time(Time.now, options)
2449
+
2450
+ # note: the literal hash is intentional to show that the actual options hash isn't modified
2451
+ # don't change this!
2452
+ assert_equal({
2453
+ :order => [ :year, :month, :day ],
2454
+ :default => { :year => 2008, :month => 7, :day => 16, :hour => 23, :minute => 30, :second => 1 },
2455
+ :discard_type => false,
2456
+ :include_blank => false,
2457
+ :ignore_date => false,
2458
+ :include_seconds => true
2459
+ }, options)
2460
+ end
2461
+
2462
+ protected
2463
+ def with_env_tz(new_tz = 'US/Eastern')
2464
+ old_tz, ENV['TZ'] = ENV['TZ'], new_tz
2465
+ yield
2466
+ ensure
2467
+ old_tz ? ENV['TZ'] = old_tz : ENV.delete('TZ')
2468
+ end
2469
+ end