eactionpack 2.1.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.
- data/CHANGELOG +7 -0
- data/MIT-LICENSE +21 -0
- data/README +469 -0
- data/RUNNING_UNIT_TESTS +24 -0
- data/Rakefile +146 -0
- data/install.rb +30 -0
- data/lib/action_controller.rb +79 -0
- data/lib/action_controller/assertions.rb +69 -0
- data/lib/action_controller/assertions/dom_assertions.rb +39 -0
- data/lib/action_controller/assertions/model_assertions.rb +20 -0
- data/lib/action_controller/assertions/response_assertions.rb +172 -0
- data/lib/action_controller/assertions/routing_assertions.rb +146 -0
- data/lib/action_controller/assertions/selector_assertions.rb +491 -0
- data/lib/action_controller/assertions/tag_assertions.rb +130 -0
- data/lib/action_controller/base.rb +1288 -0
- data/lib/action_controller/benchmarking.rb +94 -0
- data/lib/action_controller/caching.rb +72 -0
- data/lib/action_controller/caching/actions.rb +144 -0
- data/lib/action_controller/caching/fragments.rb +138 -0
- data/lib/action_controller/caching/pages.rb +154 -0
- data/lib/action_controller/caching/sql_cache.rb +18 -0
- data/lib/action_controller/caching/sweeping.rb +97 -0
- data/lib/action_controller/cgi_ext.rb +16 -0
- data/lib/action_controller/cgi_ext/cookie.rb +110 -0
- data/lib/action_controller/cgi_ext/query_extension.rb +22 -0
- data/lib/action_controller/cgi_ext/session.rb +73 -0
- data/lib/action_controller/cgi_ext/stdinput.rb +24 -0
- data/lib/action_controller/cgi_process.rb +223 -0
- data/lib/action_controller/components.rb +166 -0
- data/lib/action_controller/cookies.rb +96 -0
- data/lib/action_controller/dispatcher.rb +162 -0
- data/lib/action_controller/filters.rb +642 -0
- data/lib/action_controller/flash.rb +172 -0
- data/lib/action_controller/headers.rb +31 -0
- data/lib/action_controller/helpers.rb +221 -0
- data/lib/action_controller/http_authentication.rb +124 -0
- data/lib/action_controller/integration.rb +634 -0
- data/lib/action_controller/layout.rb +309 -0
- data/lib/action_controller/mime_responds.rb +173 -0
- data/lib/action_controller/mime_type.rb +186 -0
- data/lib/action_controller/mime_types.rb +20 -0
- data/lib/action_controller/polymorphic_routes.rb +191 -0
- data/lib/action_controller/record_identifier.rb +102 -0
- data/lib/action_controller/request.rb +764 -0
- data/lib/action_controller/request_forgery_protection.rb +140 -0
- data/lib/action_controller/request_profiler.rb +169 -0
- data/lib/action_controller/rescue.rb +258 -0
- data/lib/action_controller/resources.rb +572 -0
- data/lib/action_controller/response.rb +76 -0
- data/lib/action_controller/routing.rb +387 -0
- data/lib/action_controller/routing/builder.rb +203 -0
- data/lib/action_controller/routing/optimisations.rb +120 -0
- data/lib/action_controller/routing/recognition_optimisation.rb +162 -0
- data/lib/action_controller/routing/route.rb +240 -0
- data/lib/action_controller/routing/route_set.rb +436 -0
- data/lib/action_controller/routing/routing_ext.rb +46 -0
- data/lib/action_controller/routing/segments.rb +283 -0
- data/lib/action_controller/session/active_record_store.rb +340 -0
- data/lib/action_controller/session/cookie_store.rb +166 -0
- data/lib/action_controller/session/drb_server.rb +32 -0
- data/lib/action_controller/session/drb_store.rb +35 -0
- data/lib/action_controller/session/mem_cache_store.rb +98 -0
- data/lib/action_controller/session_management.rb +158 -0
- data/lib/action_controller/status_codes.rb +88 -0
- data/lib/action_controller/streaming.rb +155 -0
- data/lib/action_controller/templates/rescues/_request_and_response.erb +24 -0
- data/lib/action_controller/templates/rescues/_trace.erb +26 -0
- data/lib/action_controller/templates/rescues/diagnostics.erb +11 -0
- data/lib/action_controller/templates/rescues/layout.erb +29 -0
- data/lib/action_controller/templates/rescues/missing_template.erb +2 -0
- data/lib/action_controller/templates/rescues/routing_error.erb +10 -0
- data/lib/action_controller/templates/rescues/template_error.erb +21 -0
- data/lib/action_controller/templates/rescues/unknown_action.erb +2 -0
- data/lib/action_controller/test_case.rb +83 -0
- data/lib/action_controller/test_process.rb +526 -0
- data/lib/action_controller/url_rewriter.rb +142 -0
- data/lib/action_controller/vendor/html-scanner/html/document.rb +68 -0
- data/lib/action_controller/vendor/html-scanner/html/node.rb +537 -0
- data/lib/action_controller/vendor/html-scanner/html/sanitizer.rb +173 -0
- data/lib/action_controller/vendor/html-scanner/html/selector.rb +828 -0
- data/lib/action_controller/vendor/html-scanner/html/tokenizer.rb +105 -0
- data/lib/action_controller/vendor/html-scanner/html/version.rb +11 -0
- data/lib/action_controller/verification.rb +130 -0
- data/lib/action_pack.rb +24 -0
- data/lib/action_pack/version.rb +9 -0
- data/lib/action_view.rb +44 -0
- data/lib/action_view/base.rb +335 -0
- data/lib/action_view/helpers/active_record_helper.rb +276 -0
- data/lib/action_view/helpers/asset_tag_helper.rb +599 -0
- data/lib/action_view/helpers/atom_feed_helper.rb +143 -0
- data/lib/action_view/helpers/benchmark_helper.rb +33 -0
- data/lib/action_view/helpers/cache_helper.rb +40 -0
- data/lib/action_view/helpers/capture_helper.rb +161 -0
- data/lib/action_view/helpers/date_helper.rb +711 -0
- data/lib/action_view/helpers/debug_helper.rb +31 -0
- data/lib/action_view/helpers/form_helper.rb +767 -0
- data/lib/action_view/helpers/form_options_helper.rb +458 -0
- data/lib/action_view/helpers/form_tag_helper.rb +458 -0
- data/lib/action_view/helpers/javascript_helper.rb +148 -0
- data/lib/action_view/helpers/number_helper.rb +186 -0
- data/lib/action_view/helpers/record_identification_helper.rb +20 -0
- data/lib/action_view/helpers/record_tag_helper.rb +59 -0
- data/lib/action_view/helpers/sanitize_helper.rb +229 -0
- data/lib/action_view/helpers/tag_helper.rb +134 -0
- data/lib/action_view/helpers/text_helper.rb +507 -0
- data/lib/action_view/helpers/url_helper.rb +573 -0
- data/lib/action_view/inline_template.rb +20 -0
- data/lib/action_view/partial_template.rb +70 -0
- data/lib/action_view/partials.rb +158 -0
- data/lib/action_view/template.rb +125 -0
- data/lib/action_view/template_error.rb +110 -0
- data/lib/action_view/template_finder.rb +176 -0
- data/lib/action_view/template_handler.rb +34 -0
- data/lib/action_view/template_handlers/builder.rb +27 -0
- data/lib/action_view/template_handlers/compilable.rb +128 -0
- data/lib/action_view/template_handlers/erb.rb +56 -0
- data/lib/action_view/test_case.rb +58 -0
- data/lib/actionpack.rb +1 -0
- data/test/abstract_unit.rb +36 -0
- data/test/active_record_unit.rb +105 -0
- data/test/activerecord/active_record_store_test.rb +141 -0
- data/test/activerecord/render_partial_with_record_identification_test.rb +191 -0
- data/test/adv_attr_test.rb +20 -0
- data/test/controller/action_pack_assertions_test.rb +543 -0
- data/test/controller/addresses_render_test.rb +43 -0
- data/test/controller/assert_select_test.rb +331 -0
- data/test/controller/base_test.rb +219 -0
- data/test/controller/benchmark_test.rb +32 -0
- data/test/controller/caching_test.rb +581 -0
- data/test/controller/capture_test.rb +89 -0
- data/test/controller/cgi_test.rb +116 -0
- data/test/controller/components_test.rb +140 -0
- data/test/controller/content_type_test.rb +139 -0
- data/test/controller/controller_fixtures/app/controllers/admin/user_controller.rb +0 -0
- data/test/controller/controller_fixtures/app/controllers/user_controller.rb +0 -0
- data/test/controller/controller_fixtures/vendor/plugins/bad_plugin/lib/plugin_controller.rb +0 -0
- data/test/controller/cookie_test.rb +146 -0
- data/test/controller/custom_handler_test.rb +45 -0
- data/test/controller/deprecation/deprecated_base_methods_test.rb +37 -0
- data/test/controller/dispatcher_test.rb +105 -0
- data/test/controller/fake_controllers.rb +33 -0
- data/test/controller/fake_models.rb +11 -0
- data/test/controller/filter_params_test.rb +49 -0
- data/test/controller/filters_test.rb +881 -0
- data/test/controller/flash_test.rb +146 -0
- data/test/controller/header_test.rb +14 -0
- data/test/controller/helper_test.rb +210 -0
- data/test/controller/html-scanner/cdata_node_test.rb +15 -0
- data/test/controller/html-scanner/document_test.rb +148 -0
- data/test/controller/html-scanner/node_test.rb +89 -0
- data/test/controller/html-scanner/sanitizer_test.rb +269 -0
- data/test/controller/html-scanner/tag_node_test.rb +238 -0
- data/test/controller/html-scanner/text_node_test.rb +50 -0
- data/test/controller/html-scanner/tokenizer_test.rb +131 -0
- data/test/controller/http_authentication_test.rb +54 -0
- data/test/controller/integration_test.rb +252 -0
- data/test/controller/integration_upload_test.rb +43 -0
- data/test/controller/layout_test.rb +255 -0
- data/test/controller/mime_responds_test.rb +514 -0
- data/test/controller/mime_type_test.rb +84 -0
- data/test/controller/new_render_test.rb +843 -0
- data/test/controller/polymorphic_routes_test.rb +174 -0
- data/test/controller/record_identifier_test.rb +139 -0
- data/test/controller/redirect_test.rb +289 -0
- data/test/controller/render_test.rb +484 -0
- data/test/controller/request_forgery_protection_test.rb +305 -0
- data/test/controller/request_test.rb +928 -0
- data/test/controller/rescue_test.rb +517 -0
- data/test/controller/resources_test.rb +873 -0
- data/test/controller/routing_test.rb +2464 -0
- data/test/controller/selector_test.rb +628 -0
- data/test/controller/send_file_test.rb +138 -0
- data/test/controller/session/cookie_store_test.rb +258 -0
- data/test/controller/session/mem_cache_store_test.rb +181 -0
- data/test/controller/session_fixation_test.rb +89 -0
- data/test/controller/session_management_test.rb +178 -0
- data/test/controller/test_test.rb +695 -0
- data/test/controller/url_rewriter_test.rb +310 -0
- data/test/controller/verification_test.rb +270 -0
- data/test/controller/view_paths_test.rb +140 -0
- data/test/controller/webservice_test.rb +229 -0
- data/test/fixtures/addresses/list.erb +1 -0
- data/test/fixtures/bad_customers/_bad_customer.html.erb +1 -0
- data/test/fixtures/companies.yml +24 -0
- data/test/fixtures/company.rb +10 -0
- data/test/fixtures/content_type/render_default_content_types_for_respond_to.rhtml +1 -0
- data/test/fixtures/content_type/render_default_for_js.js.erb +1 -0
- data/test/fixtures/content_type/render_default_for_rhtml.rhtml +1 -0
- data/test/fixtures/content_type/render_default_for_rxml.rxml +1 -0
- data/test/fixtures/customers/_customer.html.erb +1 -0
- data/test/fixtures/db_definitions/sqlite.sql +49 -0
- data/test/fixtures/developer.rb +9 -0
- data/test/fixtures/developers.yml +21 -0
- data/test/fixtures/developers_projects.yml +13 -0
- data/test/fixtures/fun/games/hello_world.erb +1 -0
- data/test/fixtures/functional_caching/_partial.erb +3 -0
- data/test/fixtures/functional_caching/fragment_cached.html.erb +2 -0
- data/test/fixtures/functional_caching/html_fragment_cached_with_partial.html.erb +1 -0
- data/test/fixtures/functional_caching/js_fragment_cached_with_partial.js.rjs +1 -0
- data/test/fixtures/good_customers/_good_customer.html.erb +1 -0
- data/test/fixtures/helpers/abc_helper.rb +5 -0
- data/test/fixtures/helpers/fun/games_helper.rb +3 -0
- data/test/fixtures/helpers/fun/pdf_helper.rb +3 -0
- data/test/fixtures/layout_tests/alt/hello.rhtml +1 -0
- data/test/fixtures/layout_tests/layouts/controller_name_space/nested.rhtml +1 -0
- data/test/fixtures/layout_tests/layouts/item.rhtml +1 -0
- data/test/fixtures/layout_tests/layouts/layout_test.rhtml +1 -0
- data/test/fixtures/layout_tests/layouts/multiple_extensions.html.erb +1 -0
- data/test/fixtures/layout_tests/layouts/third_party_template_library.mab +1 -0
- data/test/fixtures/layout_tests/views/hello.rhtml +1 -0
- data/test/fixtures/layouts/block_with_layout.erb +3 -0
- data/test/fixtures/layouts/builder.builder +3 -0
- data/test/fixtures/layouts/partial_with_layout.erb +3 -0
- data/test/fixtures/layouts/standard.erb +1 -0
- data/test/fixtures/layouts/talk_from_action.erb +2 -0
- data/test/fixtures/layouts/yield.erb +2 -0
- data/test/fixtures/mascot.rb +3 -0
- data/test/fixtures/mascots.yml +4 -0
- data/test/fixtures/mascots/_mascot.html.erb +1 -0
- data/test/fixtures/multipart/binary_file +0 -0
- data/test/fixtures/multipart/boundary_problem_file +10 -0
- data/test/fixtures/multipart/bracketed_param +5 -0
- data/test/fixtures/multipart/large_text_file +10 -0
- data/test/fixtures/multipart/mixed_files +0 -0
- data/test/fixtures/multipart/mona_lisa.jpg +0 -0
- data/test/fixtures/multipart/single_parameter +5 -0
- data/test/fixtures/multipart/text_file +10 -0
- data/test/fixtures/override/test/hello_world.erb +1 -0
- data/test/fixtures/override2/layouts/test/sub.erb +1 -0
- data/test/fixtures/post_test/layouts/post.html.erb +1 -0
- data/test/fixtures/post_test/layouts/super_post.iphone.erb +1 -0
- data/test/fixtures/post_test/post/index.html.erb +1 -0
- data/test/fixtures/post_test/post/index.iphone.erb +1 -0
- data/test/fixtures/post_test/super_post/index.html.erb +1 -0
- data/test/fixtures/post_test/super_post/index.iphone.erb +1 -0
- data/test/fixtures/project.rb +3 -0
- data/test/fixtures/projects.yml +7 -0
- data/test/fixtures/public/404.html +1 -0
- data/test/fixtures/public/500.html +1 -0
- data/test/fixtures/public/images/rails.png +0 -0
- data/test/fixtures/public/javascripts/application.js +1 -0
- data/test/fixtures/public/javascripts/bank.js +1 -0
- data/test/fixtures/public/javascripts/robber.js +1 -0
- data/test/fixtures/public/javascripts/version.1.0.js +1 -0
- data/test/fixtures/public/stylesheets/bank.css +1 -0
- data/test/fixtures/public/stylesheets/robber.css +1 -0
- data/test/fixtures/public/stylesheets/version.1.0.css +1 -0
- data/test/fixtures/replies.yml +15 -0
- data/test/fixtures/reply.rb +7 -0
- data/test/fixtures/respond_to/all_types_with_layout.html.erb +1 -0
- data/test/fixtures/respond_to/custom_constant_handling_without_block.mobile.erb +1 -0
- data/test/fixtures/respond_to/iphone_with_html_response_type.html.erb +1 -0
- data/test/fixtures/respond_to/iphone_with_html_response_type.iphone.erb +1 -0
- data/test/fixtures/respond_to/layouts/missing.html.erb +1 -0
- data/test/fixtures/respond_to/layouts/standard.html.erb +1 -0
- data/test/fixtures/respond_to/layouts/standard.iphone.erb +1 -0
- data/test/fixtures/respond_to/using_defaults.html.erb +1 -0
- data/test/fixtures/respond_to/using_defaults.js.rjs +1 -0
- data/test/fixtures/respond_to/using_defaults.xml.builder +1 -0
- data/test/fixtures/respond_to/using_defaults_with_type_list.html.erb +1 -0
- data/test/fixtures/respond_to/using_defaults_with_type_list.js.rjs +1 -0
- data/test/fixtures/respond_to/using_defaults_with_type_list.xml.builder +1 -0
- data/test/fixtures/scope/test/modgreet.erb +1 -0
- data/test/fixtures/shared.html.erb +1 -0
- data/test/fixtures/symlink_parent/symlinked_layout.erb +5 -0
- data/test/fixtures/test/_customer.erb +1 -0
- data/test/fixtures/test/_customer_counter.erb +1 -0
- data/test/fixtures/test/_customer_greeting.erb +1 -0
- data/test/fixtures/test/_form.erb +1 -0
- data/test/fixtures/test/_hash_greeting.erb +1 -0
- data/test/fixtures/test/_hash_object.erb +2 -0
- data/test/fixtures/test/_hello.builder +1 -0
- data/test/fixtures/test/_labelling_form.erb +1 -0
- data/test/fixtures/test/_layout_for_partial.html.erb +3 -0
- data/test/fixtures/test/_partial.erb +1 -0
- data/test/fixtures/test/_partial.html.erb +1 -0
- data/test/fixtures/test/_partial.js.erb +1 -0
- data/test/fixtures/test/_partial_for_use_in_layout.html.erb +1 -0
- data/test/fixtures/test/_partial_only.erb +1 -0
- data/test/fixtures/test/_person.erb +2 -0
- data/test/fixtures/test/_raise.html.erb +1 -0
- data/test/fixtures/test/action_talk_to_layout.erb +2 -0
- data/test/fixtures/test/block_content_for.erb +2 -0
- data/test/fixtures/test/calling_partial_with_layout.html.erb +1 -0
- data/test/fixtures/test/capturing.erb +4 -0
- data/test/fixtures/test/content_for.erb +2 -0
- data/test/fixtures/test/content_for_concatenated.erb +3 -0
- data/test/fixtures/test/content_for_with_parameter.erb +2 -0
- data/test/fixtures/test/delete_with_js.rjs +2 -0
- data/test/fixtures/test/dot.directory/render_file_with_ivar.erb +1 -0
- data/test/fixtures/test/enum_rjs_test.rjs +6 -0
- data/test/fixtures/test/erb_content_for.erb +2 -0
- data/test/fixtures/test/formatted_html_erb.html.erb +1 -0
- data/test/fixtures/test/formatted_xml_erb.builder +1 -0
- data/test/fixtures/test/formatted_xml_erb.html.erb +1 -0
- data/test/fixtures/test/formatted_xml_erb.xml.erb +1 -0
- data/test/fixtures/test/greeting.erb +1 -0
- data/test/fixtures/test/greeting.js.rjs +1 -0
- data/test/fixtures/test/hello.builder +4 -0
- data/test/fixtures/test/hello_world.erb +1 -0
- data/test/fixtures/test/hello_world_container.builder +3 -0
- data/test/fixtures/test/hello_world_from_rxml.builder +4 -0
- data/test/fixtures/test/hello_world_with_layout_false.erb +1 -0
- data/test/fixtures/test/hello_xml_world.builder +11 -0
- data/test/fixtures/test/list.erb +1 -0
- data/test/fixtures/test/non_erb_block_content_for.builder +4 -0
- data/test/fixtures/test/potential_conflicts.erb +4 -0
- data/test/fixtures/test/render_file_from_template.html.erb +1 -0
- data/test/fixtures/test/render_file_with_ivar.erb +1 -0
- data/test/fixtures/test/render_file_with_locals.erb +1 -0
- data/test/fixtures/test/render_to_string_test.erb +1 -0
- data/test/fixtures/test/update_element_with_capture.erb +9 -0
- data/test/fixtures/test/using_layout_around_block.html.erb +1 -0
- data/test/fixtures/topic.rb +3 -0
- data/test/fixtures/topics.yml +22 -0
- data/test/fixtures/topics/_topic.html.erb +1 -0
- data/test/template/active_record_helper_test.rb +268 -0
- data/test/template/asset_tag_helper_test.rb +514 -0
- data/test/template/atom_feed_helper_test.rb +179 -0
- data/test/template/benchmark_helper_test.rb +60 -0
- data/test/template/date_helper_test.rb +1791 -0
- data/test/template/deprecated_erb_variable_test.rb +9 -0
- data/test/template/erb_util_test.rb +24 -0
- data/test/template/form_helper_test.rb +885 -0
- data/test/template/form_options_helper_test.rb +1333 -0
- data/test/template/form_tag_helper_test.rb +272 -0
- data/test/template/javascript_helper_test.rb +73 -0
- data/test/template/number_helper_test.rb +97 -0
- data/test/template/record_tag_helper_test.rb +54 -0
- data/test/template/sanitize_helper_test.rb +48 -0
- data/test/template/tag_helper_test.rb +77 -0
- data/test/template/template_finder_test.rb +73 -0
- data/test/template/template_object_test.rb +95 -0
- data/test/template/test_test.rb +56 -0
- data/test/template/text_helper_test.rb +367 -0
- data/test/template/url_helper_test.rb +544 -0
- data/test/testing_sandbox.rb +15 -0
- metadata +469 -0
|
@@ -0,0 +1,179 @@
|
|
|
1
|
+
require 'abstract_unit'
|
|
2
|
+
|
|
3
|
+
Scroll = Struct.new(:id, :to_param, :title, :body, :updated_at, :created_at)
|
|
4
|
+
|
|
5
|
+
class ScrollsController < ActionController::Base
|
|
6
|
+
FEEDS = {}
|
|
7
|
+
FEEDS["defaults"] = <<-EOT
|
|
8
|
+
atom_feed(:schema_date => '2008') do |feed|
|
|
9
|
+
feed.title("My great blog!")
|
|
10
|
+
feed.updated((@scrolls.first.created_at))
|
|
11
|
+
|
|
12
|
+
for scroll in @scrolls
|
|
13
|
+
feed.entry(scroll) do |entry|
|
|
14
|
+
entry.title(scroll.title)
|
|
15
|
+
entry.content(scroll.body, :type => 'html')
|
|
16
|
+
|
|
17
|
+
entry.author do |author|
|
|
18
|
+
author.name("DHH")
|
|
19
|
+
end
|
|
20
|
+
end
|
|
21
|
+
end
|
|
22
|
+
end
|
|
23
|
+
EOT
|
|
24
|
+
FEEDS["entry_options"] = <<-EOT
|
|
25
|
+
atom_feed do |feed|
|
|
26
|
+
feed.title("My great blog!")
|
|
27
|
+
feed.updated((@scrolls.first.created_at))
|
|
28
|
+
|
|
29
|
+
for scroll in @scrolls
|
|
30
|
+
feed.entry(scroll, :url => "/otherstuff/" + scroll.to_param, :updated => Time.utc(2007, 1, scroll.id)) do |entry|
|
|
31
|
+
entry.title(scroll.title)
|
|
32
|
+
entry.content(scroll.body, :type => 'html')
|
|
33
|
+
|
|
34
|
+
entry.author do |author|
|
|
35
|
+
author.name("DHH")
|
|
36
|
+
end
|
|
37
|
+
end
|
|
38
|
+
end
|
|
39
|
+
end
|
|
40
|
+
EOT
|
|
41
|
+
FEEDS["xml_block"] = <<-EOT
|
|
42
|
+
atom_feed do |feed|
|
|
43
|
+
feed.title("My great blog!")
|
|
44
|
+
feed.updated((@scrolls.first.created_at))
|
|
45
|
+
|
|
46
|
+
feed.author do |author|
|
|
47
|
+
author.name("DHH")
|
|
48
|
+
end
|
|
49
|
+
|
|
50
|
+
for scroll in @scrolls
|
|
51
|
+
feed.entry(scroll, :url => "/otherstuff/" + scroll.to_param, :updated => Time.utc(2007, 1, scroll.id)) do |entry|
|
|
52
|
+
entry.title(scroll.title)
|
|
53
|
+
entry.content(scroll.body, :type => 'html')
|
|
54
|
+
end
|
|
55
|
+
end
|
|
56
|
+
end
|
|
57
|
+
EOT
|
|
58
|
+
FEEDS["feed_with_atomPub_namespace"] = <<-EOT
|
|
59
|
+
atom_feed({'xmlns:app' => 'http://www.w3.org/2007/app',
|
|
60
|
+
'xmlns:openSearch' => 'http://a9.com/-/spec/opensearch/1.1/'}) do |feed|
|
|
61
|
+
feed.title("My great blog!")
|
|
62
|
+
feed.updated((@scrolls.first.created_at))
|
|
63
|
+
|
|
64
|
+
for scroll in @scrolls
|
|
65
|
+
feed.entry(scroll) do |entry|
|
|
66
|
+
entry.title(scroll.title)
|
|
67
|
+
entry.content(scroll.body, :type => 'html')
|
|
68
|
+
entry.tag!('app:edited', Time.now)
|
|
69
|
+
|
|
70
|
+
entry.author do |author|
|
|
71
|
+
author.name("DHH")
|
|
72
|
+
end
|
|
73
|
+
end
|
|
74
|
+
end
|
|
75
|
+
end
|
|
76
|
+
EOT
|
|
77
|
+
def index
|
|
78
|
+
@scrolls = [
|
|
79
|
+
Scroll.new(1, "1", "Hello One", "Something <i>COOL!</i>", Time.utc(2007, 12, 12, 15), Time.utc(2007, 12, 12, 15)),
|
|
80
|
+
Scroll.new(2, "2", "Hello Two", "Something Boring", Time.utc(2007, 12, 12, 15)),
|
|
81
|
+
]
|
|
82
|
+
|
|
83
|
+
render :inline => FEEDS[params[:id]], :type => :builder
|
|
84
|
+
end
|
|
85
|
+
|
|
86
|
+
protected
|
|
87
|
+
|
|
88
|
+
def rescue_action(e)
|
|
89
|
+
raise(e)
|
|
90
|
+
end
|
|
91
|
+
end
|
|
92
|
+
|
|
93
|
+
class AtomFeedTest < Test::Unit::TestCase
|
|
94
|
+
def setup
|
|
95
|
+
@request = ActionController::TestRequest.new
|
|
96
|
+
@response = ActionController::TestResponse.new
|
|
97
|
+
@controller = ScrollsController.new
|
|
98
|
+
|
|
99
|
+
@request.host = "www.nextangle.com"
|
|
100
|
+
end
|
|
101
|
+
|
|
102
|
+
def test_feed_should_use_default_language_if_none_is_given
|
|
103
|
+
with_restful_routing(:scrolls) do
|
|
104
|
+
get :index, :id => "defaults"
|
|
105
|
+
assert_match %r{xml:lang="en-US"}, @response.body
|
|
106
|
+
end
|
|
107
|
+
end
|
|
108
|
+
|
|
109
|
+
def test_feed_should_include_two_entries
|
|
110
|
+
with_restful_routing(:scrolls) do
|
|
111
|
+
get :index, :id => "defaults"
|
|
112
|
+
assert_select "entry", 2
|
|
113
|
+
end
|
|
114
|
+
end
|
|
115
|
+
|
|
116
|
+
def test_entry_should_only_use_published_if_created_at_is_present
|
|
117
|
+
with_restful_routing(:scrolls) do
|
|
118
|
+
get :index, :id => "defaults"
|
|
119
|
+
assert_select "published", 1
|
|
120
|
+
end
|
|
121
|
+
end
|
|
122
|
+
|
|
123
|
+
def test_entry_with_prefilled_options_should_use_those_instead_of_querying_the_record
|
|
124
|
+
with_restful_routing(:scrolls) do
|
|
125
|
+
get :index, :id => "entry_options"
|
|
126
|
+
|
|
127
|
+
assert_select "updated", Time.utc(2007, 1, 1).xmlschema
|
|
128
|
+
assert_select "updated", Time.utc(2007, 1, 2).xmlschema
|
|
129
|
+
end
|
|
130
|
+
end
|
|
131
|
+
|
|
132
|
+
def test_self_url_should_default_to_current_request_url
|
|
133
|
+
with_restful_routing(:scrolls) do
|
|
134
|
+
get :index, :id => "defaults"
|
|
135
|
+
assert_select "link[rel=self][href=http://www.nextangle.com/scrolls?id=defaults]"
|
|
136
|
+
end
|
|
137
|
+
end
|
|
138
|
+
|
|
139
|
+
def test_feed_id_should_be_a_valid_tag
|
|
140
|
+
with_restful_routing(:scrolls) do
|
|
141
|
+
get :index, :id => "defaults"
|
|
142
|
+
assert_select "id", :text => "tag:www.nextangle.com,2008:/scrolls?id=defaults"
|
|
143
|
+
end
|
|
144
|
+
end
|
|
145
|
+
|
|
146
|
+
def test_entry_id_should_be_a_valid_tag
|
|
147
|
+
with_restful_routing(:scrolls) do
|
|
148
|
+
get :index, :id => "defaults"
|
|
149
|
+
assert_select "entry id", :text => "tag:www.nextangle.com,2008:Scroll/1"
|
|
150
|
+
assert_select "entry id", :text => "tag:www.nextangle.com,2008:Scroll/2"
|
|
151
|
+
end
|
|
152
|
+
end
|
|
153
|
+
|
|
154
|
+
def test_feed_should_allow_nested_xml_blocks
|
|
155
|
+
with_restful_routing(:scrolls) do
|
|
156
|
+
get :index, :id => "xml_block"
|
|
157
|
+
assert_select "author name", :text => "DHH"
|
|
158
|
+
end
|
|
159
|
+
end
|
|
160
|
+
|
|
161
|
+
def test_feed_should_include_atomPub_namespace
|
|
162
|
+
with_restful_routing(:scrolls) do
|
|
163
|
+
get :index, :id => "feed_with_atomPub_namespace"
|
|
164
|
+
assert_match %r{xml:lang="en-US"}, @response.body
|
|
165
|
+
assert_match %r{xmlns="http://www.w3.org/2005/Atom"}, @response.body
|
|
166
|
+
assert_match %r{xmlns:app="http://www.w3.org/2007/app"}, @response.body
|
|
167
|
+
end
|
|
168
|
+
end
|
|
169
|
+
|
|
170
|
+
private
|
|
171
|
+
def with_restful_routing(resources)
|
|
172
|
+
with_routing do |set|
|
|
173
|
+
set.draw do |map|
|
|
174
|
+
map.resources(resources)
|
|
175
|
+
end
|
|
176
|
+
yield
|
|
177
|
+
end
|
|
178
|
+
end
|
|
179
|
+
end
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
require 'abstract_unit'
|
|
2
|
+
require 'action_view/helpers/benchmark_helper'
|
|
3
|
+
|
|
4
|
+
class BenchmarkHelperTest < ActionView::TestCase
|
|
5
|
+
tests ActionView::Helpers::BenchmarkHelper
|
|
6
|
+
|
|
7
|
+
class MockLogger
|
|
8
|
+
attr_reader :logged
|
|
9
|
+
|
|
10
|
+
def initialize
|
|
11
|
+
@logged = []
|
|
12
|
+
end
|
|
13
|
+
|
|
14
|
+
def method_missing(method, *args)
|
|
15
|
+
@logged << [method, args]
|
|
16
|
+
end
|
|
17
|
+
end
|
|
18
|
+
|
|
19
|
+
def controller
|
|
20
|
+
@controller ||= Struct.new(:logger).new(MockLogger.new)
|
|
21
|
+
end
|
|
22
|
+
|
|
23
|
+
def test_without_block
|
|
24
|
+
assert_raise(LocalJumpError) { benchmark }
|
|
25
|
+
assert controller.logger.logged.empty?
|
|
26
|
+
end
|
|
27
|
+
|
|
28
|
+
def test_defaults
|
|
29
|
+
i_was_run = false
|
|
30
|
+
benchmark { i_was_run = true }
|
|
31
|
+
assert i_was_run
|
|
32
|
+
assert 1, controller.logger.logged.size
|
|
33
|
+
assert_last_logged
|
|
34
|
+
end
|
|
35
|
+
|
|
36
|
+
def test_with_message
|
|
37
|
+
i_was_run = false
|
|
38
|
+
benchmark('test_run') { i_was_run = true }
|
|
39
|
+
assert i_was_run
|
|
40
|
+
assert 1, controller.logger.logged.size
|
|
41
|
+
assert_last_logged 'test_run'
|
|
42
|
+
end
|
|
43
|
+
|
|
44
|
+
def test_with_message_and_level
|
|
45
|
+
i_was_run = false
|
|
46
|
+
benchmark('debug_run', :debug) { i_was_run = true }
|
|
47
|
+
assert i_was_run
|
|
48
|
+
assert 1, controller.logger.logged.size
|
|
49
|
+
assert_last_logged 'debug_run', :debug
|
|
50
|
+
end
|
|
51
|
+
|
|
52
|
+
private
|
|
53
|
+
def assert_last_logged(message = 'Benchmarking', level = :info)
|
|
54
|
+
last = controller.logger.logged.last
|
|
55
|
+
assert 2, last.size
|
|
56
|
+
assert_equal level, last.first
|
|
57
|
+
assert 1, last[1].size
|
|
58
|
+
assert last[1][0] =~ /^#{message} \(.*\)$/
|
|
59
|
+
end
|
|
60
|
+
end
|
|
@@ -0,0 +1,1791 @@
|
|
|
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_month
|
|
157
|
+
expected = %(<select id="date_month" name="date[month]">\n)
|
|
158
|
+
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)
|
|
159
|
+
expected << "</select>\n"
|
|
160
|
+
|
|
161
|
+
assert_dom_equal expected, select_month(Time.mktime(2003, 8, 16))
|
|
162
|
+
assert_dom_equal expected, select_month(8)
|
|
163
|
+
end
|
|
164
|
+
|
|
165
|
+
def test_select_month_with_disabled
|
|
166
|
+
expected = %(<select id="date_month" name="date[month]" disabled="disabled">\n)
|
|
167
|
+
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)
|
|
168
|
+
expected << "</select>\n"
|
|
169
|
+
|
|
170
|
+
assert_dom_equal expected, select_month(Time.mktime(2003, 8, 16), :disabled => true)
|
|
171
|
+
assert_dom_equal expected, select_month(8, :disabled => true)
|
|
172
|
+
end
|
|
173
|
+
|
|
174
|
+
def test_select_month_with_field_name_override
|
|
175
|
+
expected = %(<select id="date_mois" name="date[mois]">\n)
|
|
176
|
+
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)
|
|
177
|
+
expected << "</select>\n"
|
|
178
|
+
|
|
179
|
+
assert_dom_equal expected, select_month(Time.mktime(2003, 8, 16), :field_name => 'mois')
|
|
180
|
+
assert_dom_equal expected, select_month(8, :field_name => 'mois')
|
|
181
|
+
end
|
|
182
|
+
|
|
183
|
+
def test_select_month_with_blank
|
|
184
|
+
expected = %(<select id="date_month" name="date[month]">\n)
|
|
185
|
+
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)
|
|
186
|
+
expected << "</select>\n"
|
|
187
|
+
|
|
188
|
+
assert_dom_equal expected, select_month(Time.mktime(2003, 8, 16), :include_blank => true)
|
|
189
|
+
assert_dom_equal expected, select_month(8, :include_blank => true)
|
|
190
|
+
end
|
|
191
|
+
|
|
192
|
+
def test_select_month_nil_with_blank
|
|
193
|
+
expected = %(<select id="date_month" name="date[month]">\n)
|
|
194
|
+
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)
|
|
195
|
+
expected << "</select>\n"
|
|
196
|
+
|
|
197
|
+
assert_dom_equal expected, select_month(nil, :include_blank => true)
|
|
198
|
+
end
|
|
199
|
+
|
|
200
|
+
def test_select_month_with_numbers
|
|
201
|
+
expected = %(<select id="date_month" name="date[month]">\n)
|
|
202
|
+
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)
|
|
203
|
+
expected << "</select>\n"
|
|
204
|
+
|
|
205
|
+
assert_dom_equal expected, select_month(Time.mktime(2003, 8, 16), :use_month_numbers => true)
|
|
206
|
+
assert_dom_equal expected, select_month(8, :use_month_numbers => true)
|
|
207
|
+
end
|
|
208
|
+
|
|
209
|
+
def test_select_month_with_numbers_and_names
|
|
210
|
+
expected = %(<select id="date_month" name="date[month]">\n)
|
|
211
|
+
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)
|
|
212
|
+
expected << "</select>\n"
|
|
213
|
+
|
|
214
|
+
assert_dom_equal expected, select_month(Time.mktime(2003, 8, 16), :add_month_numbers => true)
|
|
215
|
+
assert_dom_equal expected, select_month(8, :add_month_numbers => true)
|
|
216
|
+
end
|
|
217
|
+
|
|
218
|
+
def test_select_month_with_numbers_and_names_with_abbv
|
|
219
|
+
expected = %(<select id="date_month" name="date[month]">\n)
|
|
220
|
+
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)
|
|
221
|
+
expected << "</select>\n"
|
|
222
|
+
|
|
223
|
+
assert_dom_equal expected, select_month(Time.mktime(2003, 8, 16), :add_month_numbers => true, :use_short_month => true)
|
|
224
|
+
assert_dom_equal expected, select_month(8, :add_month_numbers => true, :use_short_month => true)
|
|
225
|
+
end
|
|
226
|
+
|
|
227
|
+
def test_select_month_with_abbv
|
|
228
|
+
expected = %(<select id="date_month" name="date[month]">\n)
|
|
229
|
+
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)
|
|
230
|
+
expected << "</select>\n"
|
|
231
|
+
|
|
232
|
+
assert_dom_equal expected, select_month(Time.mktime(2003, 8, 16), :use_short_month => true)
|
|
233
|
+
assert_dom_equal expected, select_month(8, :use_short_month => true)
|
|
234
|
+
end
|
|
235
|
+
|
|
236
|
+
def test_select_month_with_custom_names
|
|
237
|
+
month_names = %w(nil Januar Februar Marts April Maj Juni Juli August September Oktober November December)
|
|
238
|
+
|
|
239
|
+
expected = %(<select id="date_month" name="date[month]">\n)
|
|
240
|
+
1.upto(12) { |month| expected << %(<option value="#{month}"#{' selected="selected"' if month == 8}>#{month_names[month]}</option>\n) }
|
|
241
|
+
expected << "</select>\n"
|
|
242
|
+
|
|
243
|
+
assert_dom_equal expected, select_month(Time.mktime(2003, 8, 16), :use_month_names => month_names)
|
|
244
|
+
assert_dom_equal expected, select_month(8, :use_month_names => month_names)
|
|
245
|
+
end
|
|
246
|
+
|
|
247
|
+
def test_select_month_with_zero_indexed_custom_names
|
|
248
|
+
month_names = %w(Januar Februar Marts April Maj Juni Juli August September Oktober November December)
|
|
249
|
+
|
|
250
|
+
expected = %(<select id="date_month" name="date[month]">\n)
|
|
251
|
+
1.upto(12) { |month| expected << %(<option value="#{month}"#{' selected="selected"' if month == 8}>#{month_names[month-1]}</option>\n) }
|
|
252
|
+
expected << "</select>\n"
|
|
253
|
+
|
|
254
|
+
assert_dom_equal expected, select_month(Time.mktime(2003, 8, 16), :use_month_names => month_names)
|
|
255
|
+
assert_dom_equal expected, select_month(8, :use_month_names => month_names)
|
|
256
|
+
end
|
|
257
|
+
|
|
258
|
+
def test_select_month_with_hidden
|
|
259
|
+
assert_dom_equal "<input type=\"hidden\" id=\"date_month\" name=\"date[month]\" value=\"8\" />\n", select_month(8, :use_hidden => true)
|
|
260
|
+
end
|
|
261
|
+
|
|
262
|
+
def test_select_month_with_hidden_and_field_name
|
|
263
|
+
assert_dom_equal "<input type=\"hidden\" id=\"date_mois\" name=\"date[mois]\" value=\"8\" />\n", select_month(8, :use_hidden => true, :field_name => 'mois')
|
|
264
|
+
end
|
|
265
|
+
|
|
266
|
+
def test_select_month_with_html_options
|
|
267
|
+
expected = %(<select id="date_month" name="date[month]" class="selector" accesskey="M">\n)
|
|
268
|
+
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)
|
|
269
|
+
expected << "</select>\n"
|
|
270
|
+
|
|
271
|
+
assert_dom_equal expected, select_month(Time.mktime(2003, 8, 16), {}, :class => 'selector', :accesskey => 'M')
|
|
272
|
+
#result = select_month(Time.mktime(2003, 8, 16), {}, :class => 'selector', :accesskey => 'M')
|
|
273
|
+
#assert result.include?('<select id="date_month" name="date[month]"')
|
|
274
|
+
#assert result.include?('class="selector"')
|
|
275
|
+
#assert result.include?('accesskey="M"')
|
|
276
|
+
#assert result.include?('<option value="1">January')
|
|
277
|
+
end
|
|
278
|
+
|
|
279
|
+
def test_select_year
|
|
280
|
+
expected = %(<select id="date_year" name="date[year]">\n)
|
|
281
|
+
expected << %(<option value="2003" selected="selected">2003</option>\n<option value="2004">2004</option>\n<option value="2005">2005</option>\n)
|
|
282
|
+
expected << "</select>\n"
|
|
283
|
+
|
|
284
|
+
assert_dom_equal expected, select_year(Time.mktime(2003, 8, 16), :start_year => 2003, :end_year => 2005)
|
|
285
|
+
assert_dom_equal expected, select_year(2003, :start_year => 2003, :end_year => 2005)
|
|
286
|
+
end
|
|
287
|
+
|
|
288
|
+
def test_select_year_with_disabled
|
|
289
|
+
expected = %(<select id="date_year" name="date[year]" disabled="disabled">\n)
|
|
290
|
+
expected << %(<option value="2003" selected="selected">2003</option>\n<option value="2004">2004</option>\n<option value="2005">2005</option>\n)
|
|
291
|
+
expected << "</select>\n"
|
|
292
|
+
|
|
293
|
+
assert_dom_equal expected, select_year(Time.mktime(2003, 8, 16), :disabled => true, :start_year => 2003, :end_year => 2005)
|
|
294
|
+
assert_dom_equal expected, select_year(2003, :disabled => true, :start_year => 2003, :end_year => 2005)
|
|
295
|
+
end
|
|
296
|
+
|
|
297
|
+
def test_select_year_with_field_name_override
|
|
298
|
+
expected = %(<select id="date_annee" name="date[annee]">\n)
|
|
299
|
+
expected << %(<option value="2003" selected="selected">2003</option>\n<option value="2004">2004</option>\n<option value="2005">2005</option>\n)
|
|
300
|
+
expected << "</select>\n"
|
|
301
|
+
|
|
302
|
+
assert_dom_equal expected, select_year(Time.mktime(2003, 8, 16), :start_year => 2003, :end_year => 2005, :field_name => 'annee')
|
|
303
|
+
assert_dom_equal expected, select_year(2003, :start_year => 2003, :end_year => 2005, :field_name => 'annee')
|
|
304
|
+
end
|
|
305
|
+
|
|
306
|
+
def test_select_year_with_type_discarding
|
|
307
|
+
expected = %(<select id="date_year" name="date_year">\n)
|
|
308
|
+
expected << %(<option value="2003" selected="selected">2003</option>\n<option value="2004">2004</option>\n<option value="2005">2005</option>\n)
|
|
309
|
+
expected << "</select>\n"
|
|
310
|
+
|
|
311
|
+
assert_dom_equal expected, select_year(
|
|
312
|
+
Time.mktime(2003, 8, 16), :prefix => "date_year", :discard_type => true, :start_year => 2003, :end_year => 2005)
|
|
313
|
+
assert_dom_equal expected, select_year(
|
|
314
|
+
2003, :prefix => "date_year", :discard_type => true, :start_year => 2003, :end_year => 2005)
|
|
315
|
+
end
|
|
316
|
+
|
|
317
|
+
def test_select_year_descending
|
|
318
|
+
expected = %(<select id="date_year" name="date[year]">\n)
|
|
319
|
+
expected << %(<option value="2005" selected="selected">2005</option>\n<option value="2004">2004</option>\n<option value="2003">2003</option>\n)
|
|
320
|
+
expected << "</select>\n"
|
|
321
|
+
|
|
322
|
+
assert_dom_equal expected, select_year(Time.mktime(2005, 8, 16), :start_year => 2005, :end_year => 2003)
|
|
323
|
+
assert_dom_equal expected, select_year(2005, :start_year => 2005, :end_year => 2003)
|
|
324
|
+
end
|
|
325
|
+
|
|
326
|
+
def test_select_year_with_hidden
|
|
327
|
+
assert_dom_equal "<input type=\"hidden\" id=\"date_year\" name=\"date[year]\" value=\"2007\" />\n", select_year(2007, :use_hidden => true)
|
|
328
|
+
end
|
|
329
|
+
|
|
330
|
+
def test_select_year_with_hidden_and_field_name
|
|
331
|
+
assert_dom_equal "<input type=\"hidden\" id=\"date_anno\" name=\"date[anno]\" value=\"2007\" />\n", select_year(2007, :use_hidden => true, :field_name => 'anno')
|
|
332
|
+
end
|
|
333
|
+
|
|
334
|
+
def test_select_year_with_html_options
|
|
335
|
+
expected = %(<select id="date_year" name="date[year]" class="selector" accesskey="M">\n)
|
|
336
|
+
expected << %(<option value="2003" selected="selected">2003</option>\n<option value="2004">2004</option>\n<option value="2005">2005</option>\n)
|
|
337
|
+
expected << "</select>\n"
|
|
338
|
+
|
|
339
|
+
assert_dom_equal expected, select_year(Time.mktime(2003, 8, 16), {:start_year => 2003, :end_year => 2005}, :class => 'selector', :accesskey => 'M')
|
|
340
|
+
#result = select_year(Time.mktime(2003, 8, 16), {:start_year => 2003, :end_year => 2005}, :class => 'selector', :accesskey => 'M')
|
|
341
|
+
#assert result.include?('<select id="date_year" name="date[year]"')
|
|
342
|
+
#assert result.include?('class="selector"')
|
|
343
|
+
#assert result.include?('accesskey="M"')
|
|
344
|
+
#assert result.include?('<option value="2003"')
|
|
345
|
+
end
|
|
346
|
+
|
|
347
|
+
def test_select_hour
|
|
348
|
+
expected = %(<select id="date_hour" name="date[hour]">\n)
|
|
349
|
+
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)
|
|
350
|
+
expected << "</select>\n"
|
|
351
|
+
|
|
352
|
+
assert_dom_equal expected, select_hour(Time.mktime(2003, 8, 16, 8, 4, 18))
|
|
353
|
+
end
|
|
354
|
+
|
|
355
|
+
def test_select_hour_with_disabled
|
|
356
|
+
expected = %(<select id="date_hour" name="date[hour]" disabled="disabled">\n)
|
|
357
|
+
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)
|
|
358
|
+
expected << "</select>\n"
|
|
359
|
+
|
|
360
|
+
assert_dom_equal expected, select_hour(Time.mktime(2003, 8, 16, 8, 4, 18), :disabled => true)
|
|
361
|
+
end
|
|
362
|
+
|
|
363
|
+
def test_select_hour_with_field_name_override
|
|
364
|
+
expected = %(<select id="date_heure" name="date[heure]">\n)
|
|
365
|
+
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)
|
|
366
|
+
expected << "</select>\n"
|
|
367
|
+
|
|
368
|
+
assert_dom_equal expected, select_hour(Time.mktime(2003, 8, 16, 8, 4, 18), :field_name => 'heure')
|
|
369
|
+
end
|
|
370
|
+
|
|
371
|
+
def test_select_hour_with_blank
|
|
372
|
+
expected = %(<select id="date_hour" name="date[hour]">\n)
|
|
373
|
+
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)
|
|
374
|
+
expected << "</select>\n"
|
|
375
|
+
|
|
376
|
+
assert_dom_equal expected, select_hour(Time.mktime(2003, 8, 16, 8, 4, 18), :include_blank => true)
|
|
377
|
+
end
|
|
378
|
+
|
|
379
|
+
def test_select_hour_nil_with_blank
|
|
380
|
+
expected = %(<select id="date_hour" name="date[hour]">\n)
|
|
381
|
+
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)
|
|
382
|
+
expected << "</select>\n"
|
|
383
|
+
|
|
384
|
+
assert_dom_equal expected, select_hour(nil, :include_blank => true)
|
|
385
|
+
end
|
|
386
|
+
|
|
387
|
+
def test_select_hour_with_html_options
|
|
388
|
+
expected = %(<select id="date_hour" name="date[hour]" class="selector" accesskey="M">\n)
|
|
389
|
+
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)
|
|
390
|
+
expected << "</select>\n"
|
|
391
|
+
|
|
392
|
+
assert_dom_equal expected, select_hour(Time.mktime(2003, 8, 16, 8, 4, 18), {}, :class => 'selector', :accesskey => 'M')
|
|
393
|
+
end
|
|
394
|
+
|
|
395
|
+
def test_select_minute
|
|
396
|
+
expected = %(<select id="date_minute" name="date[minute]">\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" 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)
|
|
398
|
+
expected << "</select>\n"
|
|
399
|
+
|
|
400
|
+
assert_dom_equal expected, select_minute(Time.mktime(2003, 8, 16, 8, 4, 18))
|
|
401
|
+
end
|
|
402
|
+
|
|
403
|
+
def test_select_minute_with_disabled
|
|
404
|
+
expected = %(<select id="date_minute" name="date[minute]" 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" 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)
|
|
406
|
+
expected << "</select>\n"
|
|
407
|
+
|
|
408
|
+
assert_dom_equal expected, select_minute(Time.mktime(2003, 8, 16, 8, 4, 18), :disabled => true)
|
|
409
|
+
end
|
|
410
|
+
|
|
411
|
+
def test_select_minute_with_field_name_override
|
|
412
|
+
expected = %(<select id="date_minuto" name="date[minuto]">\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" 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)
|
|
414
|
+
expected << "</select>\n"
|
|
415
|
+
|
|
416
|
+
assert_dom_equal expected, select_minute(Time.mktime(2003, 8, 16, 8, 4, 18), :field_name => 'minuto')
|
|
417
|
+
end
|
|
418
|
+
|
|
419
|
+
def test_select_minute_with_blank
|
|
420
|
+
expected = %(<select id="date_minute" name="date[minute]">\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" 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)
|
|
422
|
+
expected << "</select>\n"
|
|
423
|
+
|
|
424
|
+
assert_dom_equal expected, select_minute(Time.mktime(2003, 8, 16, 8, 4, 18), :include_blank => true)
|
|
425
|
+
end
|
|
426
|
+
|
|
427
|
+
def test_select_minute_with_blank_and_step
|
|
428
|
+
expected = %(<select id="date_minute" name="date[minute]">\n)
|
|
429
|
+
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)
|
|
430
|
+
expected << "</select>\n"
|
|
431
|
+
|
|
432
|
+
assert_dom_equal expected, select_minute(Time.mktime(2003, 8, 16, 8, 4, 18), { :include_blank => true , :minute_step => 15 })
|
|
433
|
+
end
|
|
434
|
+
|
|
435
|
+
def test_select_minute_nil_with_blank
|
|
436
|
+
expected = %(<select id="date_minute" name="date[minute]">\n)
|
|
437
|
+
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)
|
|
438
|
+
expected << "</select>\n"
|
|
439
|
+
|
|
440
|
+
assert_dom_equal expected, select_minute(nil, :include_blank => true)
|
|
441
|
+
end
|
|
442
|
+
|
|
443
|
+
def test_select_minute_nil_with_blank_and_step
|
|
444
|
+
expected = %(<select id="date_minute" name="date[minute]">\n)
|
|
445
|
+
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)
|
|
446
|
+
expected << "</select>\n"
|
|
447
|
+
|
|
448
|
+
assert_dom_equal expected, select_minute(nil, { :include_blank => true , :minute_step => 15 })
|
|
449
|
+
end
|
|
450
|
+
|
|
451
|
+
def test_select_minute_with_hidden
|
|
452
|
+
assert_dom_equal "<input type=\"hidden\" id=\"date_minute\" name=\"date[minute]\" value=\"8\" />\n", select_minute(8, :use_hidden => true)
|
|
453
|
+
end
|
|
454
|
+
|
|
455
|
+
def test_select_minute_with_hidden_and_field_name
|
|
456
|
+
assert_dom_equal "<input type=\"hidden\" id=\"date_minuto\" name=\"date[minuto]\" value=\"8\" />\n", select_minute(8, :use_hidden => true, :field_name => 'minuto')
|
|
457
|
+
end
|
|
458
|
+
|
|
459
|
+
def test_select_minute_with_html_options
|
|
460
|
+
expected = expected = %(<select id="date_minute" name="date[minute]" class="selector" accesskey="M">\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), {}, :class => 'selector', :accesskey => 'M')
|
|
465
|
+
|
|
466
|
+
#result = select_minute(Time.mktime(2003, 8, 16, 8, 4, 18), {}, :class => 'selector', :accesskey => 'M')
|
|
467
|
+
#assert result.include?('<select id="date_minute" name="date[minute]"')
|
|
468
|
+
#assert result.include?('class="selector"')
|
|
469
|
+
#assert result.include?('accesskey="M"')
|
|
470
|
+
#assert result.include?('<option value="00">00')
|
|
471
|
+
end
|
|
472
|
+
|
|
473
|
+
def test_select_second
|
|
474
|
+
expected = %(<select id="date_second" name="date[second]">\n)
|
|
475
|
+
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)
|
|
476
|
+
expected << "</select>\n"
|
|
477
|
+
|
|
478
|
+
assert_dom_equal expected, select_second(Time.mktime(2003, 8, 16, 8, 4, 18))
|
|
479
|
+
end
|
|
480
|
+
|
|
481
|
+
def test_select_second_with_disabled
|
|
482
|
+
expected = %(<select id="date_second" name="date[second]" disabled="disabled">\n)
|
|
483
|
+
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)
|
|
484
|
+
expected << "</select>\n"
|
|
485
|
+
|
|
486
|
+
assert_dom_equal expected, select_second(Time.mktime(2003, 8, 16, 8, 4, 18), :disabled => true)
|
|
487
|
+
end
|
|
488
|
+
|
|
489
|
+
def test_select_second_with_field_name_override
|
|
490
|
+
expected = %(<select id="date_segundo" name="date[segundo]">\n)
|
|
491
|
+
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)
|
|
492
|
+
expected << "</select>\n"
|
|
493
|
+
|
|
494
|
+
assert_dom_equal expected, select_second(Time.mktime(2003, 8, 16, 8, 4, 18), :field_name => 'segundo')
|
|
495
|
+
end
|
|
496
|
+
|
|
497
|
+
def test_select_second_with_blank
|
|
498
|
+
expected = %(<select id="date_second" name="date[second]">\n)
|
|
499
|
+
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)
|
|
500
|
+
expected << "</select>\n"
|
|
501
|
+
|
|
502
|
+
assert_dom_equal expected, select_second(Time.mktime(2003, 8, 16, 8, 4, 18), :include_blank => true)
|
|
503
|
+
end
|
|
504
|
+
|
|
505
|
+
def test_select_second_nil_with_blank
|
|
506
|
+
expected = %(<select id="date_second" name="date[second]">\n)
|
|
507
|
+
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)
|
|
508
|
+
expected << "</select>\n"
|
|
509
|
+
|
|
510
|
+
assert_dom_equal expected, select_second(nil, :include_blank => true)
|
|
511
|
+
end
|
|
512
|
+
|
|
513
|
+
def test_select_second_with_html_options
|
|
514
|
+
expected = %(<select id="date_second" name="date[second]" class="selector" accesskey="M">\n)
|
|
515
|
+
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)
|
|
516
|
+
expected << "</select>\n"
|
|
517
|
+
|
|
518
|
+
assert_dom_equal expected, select_second(Time.mktime(2003, 8, 16, 8, 4, 18), {}, :class => 'selector', :accesskey => 'M')
|
|
519
|
+
|
|
520
|
+
#result = select_second(Time.mktime(2003, 8, 16, 8, 4, 18), {}, :class => 'selector', :accesskey => 'M')
|
|
521
|
+
#assert result.include?('<select id="date_second" name="date[second]"')
|
|
522
|
+
#assert result.include?('class="selector"')
|
|
523
|
+
#assert result.include?('accesskey="M"')
|
|
524
|
+
#assert result.include?('<option value="00">00')
|
|
525
|
+
end
|
|
526
|
+
|
|
527
|
+
def test_select_date
|
|
528
|
+
expected = %(<select id="date_first_year" name="date[first][year]">\n)
|
|
529
|
+
expected << %(<option value="2003" selected="selected">2003</option>\n<option value="2004">2004</option>\n<option value="2005">2005</option>\n)
|
|
530
|
+
expected << "</select>\n"
|
|
531
|
+
|
|
532
|
+
expected << %(<select id="date_first_month" name="date[first][month]">\n)
|
|
533
|
+
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)
|
|
534
|
+
expected << "</select>\n"
|
|
535
|
+
|
|
536
|
+
expected << %(<select id="date_first_day" name="date[first][day]">\n)
|
|
537
|
+
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)
|
|
538
|
+
expected << "</select>\n"
|
|
539
|
+
|
|
540
|
+
assert_dom_equal expected, select_date(Time.mktime(2003, 8, 16), :start_year => 2003, :end_year => 2005, :prefix => "date[first]")
|
|
541
|
+
end
|
|
542
|
+
|
|
543
|
+
def test_select_date_with_order
|
|
544
|
+
expected = %(<select id="date_first_month" name="date[first][month]">\n)
|
|
545
|
+
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)
|
|
546
|
+
expected << "</select>\n"
|
|
547
|
+
|
|
548
|
+
expected << %(<select id="date_first_day" name="date[first][day]">\n)
|
|
549
|
+
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)
|
|
550
|
+
expected << "</select>\n"
|
|
551
|
+
|
|
552
|
+
expected << %(<select id="date_first_year" name="date[first][year]">\n)
|
|
553
|
+
expected << %(<option value="2003" selected="selected">2003</option>\n<option value="2004">2004</option>\n<option value="2005">2005</option>\n)
|
|
554
|
+
expected << "</select>\n"
|
|
555
|
+
|
|
556
|
+
assert_dom_equal expected, select_date(Time.mktime(2003, 8, 16), :start_year => 2003, :end_year => 2005, :prefix => "date[first]", :order => [:month, :day, :year])
|
|
557
|
+
end
|
|
558
|
+
|
|
559
|
+
def test_select_date_with_incomplete_order
|
|
560
|
+
expected = %(<select id="date_first_day" name="date[first][day]">\n)
|
|
561
|
+
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)
|
|
562
|
+
expected << "</select>\n"
|
|
563
|
+
|
|
564
|
+
expected << %(<select id="date_first_year" name="date[first][year]">\n)
|
|
565
|
+
expected << %(<option value="2003" selected="selected">2003</option>\n<option value="2004">2004</option>\n<option value="2005">2005</option>\n)
|
|
566
|
+
expected << "</select>\n"
|
|
567
|
+
|
|
568
|
+
expected << %(<select id="date_first_month" name="date[first][month]">\n)
|
|
569
|
+
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)
|
|
570
|
+
expected << "</select>\n"
|
|
571
|
+
|
|
572
|
+
assert_dom_equal expected, select_date(Time.mktime(2003, 8, 16), :start_year => 2003, :end_year => 2005, :prefix => "date[first]", :order => [:day])
|
|
573
|
+
end
|
|
574
|
+
|
|
575
|
+
def test_select_date_with_disabled
|
|
576
|
+
expected = %(<select id="date_first_year" name="date[first][year]" disabled="disabled">\n)
|
|
577
|
+
expected << %(<option value="2003" selected="selected">2003</option>\n<option value="2004">2004</option>\n<option value="2005">2005</option>\n)
|
|
578
|
+
expected << "</select>\n"
|
|
579
|
+
|
|
580
|
+
expected << %(<select id="date_first_month" name="date[first][month]" disabled="disabled">\n)
|
|
581
|
+
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)
|
|
582
|
+
expected << "</select>\n"
|
|
583
|
+
|
|
584
|
+
expected << %(<select id="date_first_day" name="date[first][day]" disabled="disabled">\n)
|
|
585
|
+
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)
|
|
586
|
+
expected << "</select>\n"
|
|
587
|
+
|
|
588
|
+
assert_dom_equal expected, select_date(Time.mktime(2003, 8, 16), :start_year => 2003, :end_year => 2005, :prefix => "date[first]", :disabled => true)
|
|
589
|
+
end
|
|
590
|
+
|
|
591
|
+
def test_select_date_with_no_start_year
|
|
592
|
+
expected = %(<select id="date_first_year" name="date[first][year]">\n)
|
|
593
|
+
(Date.today.year-5).upto(Date.today.year+1) do |y|
|
|
594
|
+
if y == Date.today.year
|
|
595
|
+
expected << %(<option value="#{y}" selected="selected">#{y}</option>\n)
|
|
596
|
+
else
|
|
597
|
+
expected << %(<option value="#{y}">#{y}</option>\n)
|
|
598
|
+
end
|
|
599
|
+
end
|
|
600
|
+
expected << "</select>\n"
|
|
601
|
+
|
|
602
|
+
expected << %(<select id="date_first_month" name="date[first][month]">\n)
|
|
603
|
+
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)
|
|
604
|
+
expected << "</select>\n"
|
|
605
|
+
|
|
606
|
+
expected << %(<select id="date_first_day" name="date[first][day]">\n)
|
|
607
|
+
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)
|
|
608
|
+
expected << "</select>\n"
|
|
609
|
+
|
|
610
|
+
assert_dom_equal expected, select_date(
|
|
611
|
+
Time.mktime(Date.today.year, 8, 16), :end_year => Date.today.year+1, :prefix => "date[first]"
|
|
612
|
+
)
|
|
613
|
+
end
|
|
614
|
+
|
|
615
|
+
def test_select_date_with_no_end_year
|
|
616
|
+
expected = %(<select id="date_first_year" name="date[first][year]">\n)
|
|
617
|
+
2003.upto(2008) do |y|
|
|
618
|
+
if y == 2003
|
|
619
|
+
expected << %(<option value="#{y}" selected="selected">#{y}</option>\n)
|
|
620
|
+
else
|
|
621
|
+
expected << %(<option value="#{y}">#{y}</option>\n)
|
|
622
|
+
end
|
|
623
|
+
end
|
|
624
|
+
expected << "</select>\n"
|
|
625
|
+
|
|
626
|
+
expected << %(<select id="date_first_month" name="date[first][month]">\n)
|
|
627
|
+
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)
|
|
628
|
+
expected << "</select>\n"
|
|
629
|
+
|
|
630
|
+
expected << %(<select id="date_first_day" name="date[first][day]">\n)
|
|
631
|
+
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)
|
|
632
|
+
expected << "</select>\n"
|
|
633
|
+
|
|
634
|
+
assert_dom_equal expected, select_date(
|
|
635
|
+
Time.mktime(2003, 8, 16), :start_year => 2003, :prefix => "date[first]"
|
|
636
|
+
)
|
|
637
|
+
end
|
|
638
|
+
|
|
639
|
+
def test_select_date_with_no_start_or_end_year
|
|
640
|
+
expected = %(<select id="date_first_year" name="date[first][year]">\n)
|
|
641
|
+
(Date.today.year-5).upto(Date.today.year+5) do |y|
|
|
642
|
+
if y == Date.today.year
|
|
643
|
+
expected << %(<option value="#{y}" selected="selected">#{y}</option>\n)
|
|
644
|
+
else
|
|
645
|
+
expected << %(<option value="#{y}">#{y}</option>\n)
|
|
646
|
+
end
|
|
647
|
+
end
|
|
648
|
+
expected << "</select>\n"
|
|
649
|
+
|
|
650
|
+
expected << %(<select id="date_first_month" name="date[first][month]">\n)
|
|
651
|
+
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)
|
|
652
|
+
expected << "</select>\n"
|
|
653
|
+
|
|
654
|
+
expected << %(<select id="date_first_day" name="date[first][day]">\n)
|
|
655
|
+
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)
|
|
656
|
+
expected << "</select>\n"
|
|
657
|
+
|
|
658
|
+
assert_dom_equal expected, select_date(
|
|
659
|
+
Time.mktime(Date.today.year, 8, 16), :prefix => "date[first]"
|
|
660
|
+
)
|
|
661
|
+
end
|
|
662
|
+
|
|
663
|
+
def test_select_date_with_zero_value
|
|
664
|
+
expected = %(<select id="date_first_year" name="date[first][year]">\n)
|
|
665
|
+
expected << %(<option value="2003">2003</option>\n<option value="2004">2004</option>\n<option value="2005">2005</option>\n)
|
|
666
|
+
expected << "</select>\n"
|
|
667
|
+
|
|
668
|
+
expected << %(<select id="date_first_month" name="date[first][month]">\n)
|
|
669
|
+
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)
|
|
670
|
+
expected << "</select>\n"
|
|
671
|
+
|
|
672
|
+
expected << %(<select id="date_first_day" name="date[first][day]">\n)
|
|
673
|
+
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)
|
|
674
|
+
expected << "</select>\n"
|
|
675
|
+
|
|
676
|
+
assert_dom_equal expected, select_date(0, :start_year => 2003, :end_year => 2005, :prefix => "date[first]")
|
|
677
|
+
end
|
|
678
|
+
|
|
679
|
+
def test_select_date_with_zero_value_and_no_start_year
|
|
680
|
+
expected = %(<select id="date_first_year" name="date[first][year]">\n)
|
|
681
|
+
(Date.today.year-5).upto(Date.today.year+1) { |y| expected << %(<option value="#{y}">#{y}</option>\n) }
|
|
682
|
+
expected << "</select>\n"
|
|
683
|
+
|
|
684
|
+
expected << %(<select id="date_first_month" name="date[first][month]">\n)
|
|
685
|
+
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)
|
|
686
|
+
expected << "</select>\n"
|
|
687
|
+
|
|
688
|
+
expected << %(<select id="date_first_day" name="date[first][day]">\n)
|
|
689
|
+
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)
|
|
690
|
+
expected << "</select>\n"
|
|
691
|
+
|
|
692
|
+
assert_dom_equal expected, select_date(0, :end_year => Date.today.year+1, :prefix => "date[first]")
|
|
693
|
+
end
|
|
694
|
+
|
|
695
|
+
def test_select_date_with_zero_value_and_no_end_year
|
|
696
|
+
expected = %(<select id="date_first_year" name="date[first][year]">\n)
|
|
697
|
+
last_year = Time.now.year + 5
|
|
698
|
+
2003.upto(last_year) { |y| expected << %(<option value="#{y}">#{y}</option>\n) }
|
|
699
|
+
expected << "</select>\n"
|
|
700
|
+
|
|
701
|
+
expected << %(<select id="date_first_month" name="date[first][month]">\n)
|
|
702
|
+
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)
|
|
703
|
+
expected << "</select>\n"
|
|
704
|
+
|
|
705
|
+
expected << %(<select id="date_first_day" name="date[first][day]">\n)
|
|
706
|
+
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)
|
|
707
|
+
expected << "</select>\n"
|
|
708
|
+
|
|
709
|
+
assert_dom_equal expected, select_date(0, :start_year => 2003, :prefix => "date[first]")
|
|
710
|
+
end
|
|
711
|
+
|
|
712
|
+
def test_select_date_with_zero_value_and_no_start_and_end_year
|
|
713
|
+
expected = %(<select id="date_first_year" name="date[first][year]">\n)
|
|
714
|
+
(Date.today.year-5).upto(Date.today.year+5) { |y| expected << %(<option value="#{y}">#{y}</option>\n) }
|
|
715
|
+
expected << "</select>\n"
|
|
716
|
+
|
|
717
|
+
expected << %(<select id="date_first_month" name="date[first][month]">\n)
|
|
718
|
+
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)
|
|
719
|
+
expected << "</select>\n"
|
|
720
|
+
|
|
721
|
+
expected << %(<select id="date_first_day" name="date[first][day]">\n)
|
|
722
|
+
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)
|
|
723
|
+
expected << "</select>\n"
|
|
724
|
+
|
|
725
|
+
assert_dom_equal expected, select_date(0, :prefix => "date[first]")
|
|
726
|
+
end
|
|
727
|
+
|
|
728
|
+
def test_select_date_with_nil_value_and_no_start_and_end_year
|
|
729
|
+
expected = %(<select id="date_first_year" name="date[first][year]">\n)
|
|
730
|
+
(Date.today.year-5).upto(Date.today.year+5) { |y| expected << %(<option value="#{y}">#{y}</option>\n) }
|
|
731
|
+
expected << "</select>\n"
|
|
732
|
+
|
|
733
|
+
expected << %(<select id="date_first_month" name="date[first][month]">\n)
|
|
734
|
+
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)
|
|
735
|
+
expected << "</select>\n"
|
|
736
|
+
|
|
737
|
+
expected << %(<select id="date_first_day" name="date[first][day]">\n)
|
|
738
|
+
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)
|
|
739
|
+
expected << "</select>\n"
|
|
740
|
+
|
|
741
|
+
assert_dom_equal expected, select_date(nil, :prefix => "date[first]")
|
|
742
|
+
end
|
|
743
|
+
|
|
744
|
+
def test_select_date_with_html_options
|
|
745
|
+
expected = %(<select id="date_first_year" name="date[first][year]" class="selector">\n)
|
|
746
|
+
expected << %(<option value="2003" selected="selected">2003</option>\n<option value="2004">2004</option>\n<option value="2005">2005</option>\n)
|
|
747
|
+
expected << "</select>\n"
|
|
748
|
+
|
|
749
|
+
expected << %(<select id="date_first_month" name="date[first][month]" class="selector">\n)
|
|
750
|
+
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)
|
|
751
|
+
expected << "</select>\n"
|
|
752
|
+
|
|
753
|
+
expected << %(<select id="date_first_day" name="date[first][day]" class="selector">\n)
|
|
754
|
+
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)
|
|
755
|
+
expected << "</select>\n"
|
|
756
|
+
|
|
757
|
+
assert_dom_equal expected, select_date(Time.mktime(2003, 8, 16), {:start_year => 2003, :end_year => 2005, :prefix => "date[first]"}, :class => "selector")
|
|
758
|
+
end
|
|
759
|
+
|
|
760
|
+
def test_select_datetime
|
|
761
|
+
expected = %(<select id="date_first_year" name="date[first][year]">\n)
|
|
762
|
+
expected << %(<option value="2003" selected="selected">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" 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)
|
|
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" 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)
|
|
771
|
+
expected << "</select>\n"
|
|
772
|
+
|
|
773
|
+
expected << %(<select id="date_first_hour" name="date[first][hour]">\n)
|
|
774
|
+
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)
|
|
775
|
+
expected << "</select>\n"
|
|
776
|
+
|
|
777
|
+
expected << %(<select id="date_first_minute" name="date[first][minute]">\n)
|
|
778
|
+
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)
|
|
779
|
+
expected << "</select>\n"
|
|
780
|
+
|
|
781
|
+
assert_dom_equal expected, select_datetime(Time.mktime(2003, 8, 16, 8, 4, 18), :start_year => 2003, :end_year => 2005, :prefix => "date[first]")
|
|
782
|
+
end
|
|
783
|
+
|
|
784
|
+
def test_select_datetime_with_separators
|
|
785
|
+
expected = %(<select id="date_first_year" name="date[first][year]">\n)
|
|
786
|
+
expected << %(<option value="2003" selected="selected">2003</option>\n<option value="2004">2004</option>\n<option value="2005">2005</option>\n)
|
|
787
|
+
expected << "</select>\n"
|
|
788
|
+
|
|
789
|
+
expected << %(<select id="date_first_month" name="date[first][month]">\n)
|
|
790
|
+
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)
|
|
791
|
+
expected << "</select>\n"
|
|
792
|
+
|
|
793
|
+
expected << %(<select id="date_first_day" name="date[first][day]">\n)
|
|
794
|
+
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)
|
|
795
|
+
expected << "</select>\n"
|
|
796
|
+
|
|
797
|
+
expected << " — "
|
|
798
|
+
|
|
799
|
+
expected << %(<select id="date_first_hour" name="date[first][hour]">\n)
|
|
800
|
+
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)
|
|
801
|
+
expected << "</select>\n"
|
|
802
|
+
|
|
803
|
+
expected << " : "
|
|
804
|
+
|
|
805
|
+
expected << %(<select id="date_first_minute" name="date[first][minute]">\n)
|
|
806
|
+
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)
|
|
807
|
+
expected << "</select>\n"
|
|
808
|
+
|
|
809
|
+
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 => ' — ', :time_separator => ' : ')
|
|
810
|
+
end
|
|
811
|
+
|
|
812
|
+
def test_select_datetime_with_nil_value_and_no_start_and_end_year
|
|
813
|
+
expected = %(<select id="date_first_year" name="date[first][year]">\n)
|
|
814
|
+
(Date.today.year-5).upto(Date.today.year+5) { |y| expected << %(<option value="#{y}">#{y}</option>\n) }
|
|
815
|
+
expected << "</select>\n"
|
|
816
|
+
|
|
817
|
+
expected << %(<select id="date_first_month" name="date[first][month]">\n)
|
|
818
|
+
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)
|
|
819
|
+
expected << "</select>\n"
|
|
820
|
+
|
|
821
|
+
expected << %(<select id="date_first_day" name="date[first][day]">\n)
|
|
822
|
+
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)
|
|
823
|
+
expected << "</select>\n"
|
|
824
|
+
|
|
825
|
+
expected << %(<select id="date_first_hour" name="date[first][hour]">\n)
|
|
826
|
+
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)
|
|
827
|
+
expected << "</select>\n"
|
|
828
|
+
|
|
829
|
+
expected << %(<select id="date_first_minute" name="date[first][minute]">\n)
|
|
830
|
+
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)
|
|
831
|
+
expected << "</select>\n"
|
|
832
|
+
|
|
833
|
+
assert_dom_equal expected, select_datetime(nil, :prefix => "date[first]")
|
|
834
|
+
end
|
|
835
|
+
|
|
836
|
+
def test_select_datetime_with_html_options
|
|
837
|
+
expected = %(<select id="date_first_year" name="date[first][year]" class="selector">\n)
|
|
838
|
+
expected << %(<option value="2003" selected="selected">2003</option>\n<option value="2004">2004</option>\n<option value="2005">2005</option>\n)
|
|
839
|
+
expected << "</select>\n"
|
|
840
|
+
|
|
841
|
+
expected << %(<select id="date_first_month" name="date[first][month]" class="selector">\n)
|
|
842
|
+
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)
|
|
843
|
+
expected << "</select>\n"
|
|
844
|
+
|
|
845
|
+
expected << %(<select id="date_first_day" name="date[first][day]" class="selector">\n)
|
|
846
|
+
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)
|
|
847
|
+
expected << "</select>\n"
|
|
848
|
+
|
|
849
|
+
expected << %(<select id="date_first_hour" name="date[first][hour]" class="selector">\n)
|
|
850
|
+
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)
|
|
851
|
+
expected << "</select>\n"
|
|
852
|
+
|
|
853
|
+
expected << %(<select id="date_first_minute" name="date[first][minute]" class="selector">\n)
|
|
854
|
+
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)
|
|
855
|
+
expected << "</select>\n"
|
|
856
|
+
|
|
857
|
+
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')
|
|
858
|
+
end
|
|
859
|
+
|
|
860
|
+
def test_select_time
|
|
861
|
+
expected = %(<select id="date_hour" name="date[hour]">\n)
|
|
862
|
+
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)
|
|
863
|
+
expected << "</select>\n"
|
|
864
|
+
|
|
865
|
+
expected << %(<select id="date_minute" name="date[minute]">\n)
|
|
866
|
+
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)
|
|
867
|
+
expected << "</select>\n"
|
|
868
|
+
|
|
869
|
+
assert_dom_equal expected, select_time(Time.mktime(2003, 8, 16, 8, 4, 18))
|
|
870
|
+
assert_dom_equal expected, select_time(Time.mktime(2003, 8, 16, 8, 4, 18), :include_seconds => false)
|
|
871
|
+
end
|
|
872
|
+
|
|
873
|
+
def test_select_time_with_separator
|
|
874
|
+
expected = %(<select id="date_hour" name="date[hour]">\n)
|
|
875
|
+
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)
|
|
876
|
+
expected << "</select>\n"
|
|
877
|
+
|
|
878
|
+
expected << " : "
|
|
879
|
+
|
|
880
|
+
expected << %(<select id="date_minute" name="date[minute]">\n)
|
|
881
|
+
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)
|
|
882
|
+
expected << "</select>\n"
|
|
883
|
+
|
|
884
|
+
assert_dom_equal expected, select_time(Time.mktime(2003, 8, 16, 8, 4, 18), :time_separator => ' : ')
|
|
885
|
+
assert_dom_equal expected, select_time(Time.mktime(2003, 8, 16, 8, 4, 18), :time_separator => ' : ', :include_seconds => false)
|
|
886
|
+
end
|
|
887
|
+
|
|
888
|
+
def test_select_time_with_seconds
|
|
889
|
+
expected = %(<select id="date_hour" name="date[hour]">\n)
|
|
890
|
+
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)
|
|
891
|
+
expected << "</select>\n"
|
|
892
|
+
|
|
893
|
+
expected << %(<select id="date_minute" name="date[minute]">\n)
|
|
894
|
+
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)
|
|
895
|
+
expected << "</select>\n"
|
|
896
|
+
|
|
897
|
+
expected << %(<select id="date_second" name="date[second]">\n)
|
|
898
|
+
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)
|
|
899
|
+
expected << "</select>\n"
|
|
900
|
+
|
|
901
|
+
assert_dom_equal expected, select_time(Time.mktime(2003, 8, 16, 8, 4, 18), :include_seconds => true)
|
|
902
|
+
end
|
|
903
|
+
|
|
904
|
+
def test_select_time_with_seconds_and_separator
|
|
905
|
+
expected = %(<select id="date_hour" name="date[hour]">\n)
|
|
906
|
+
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)
|
|
907
|
+
expected << "</select>\n"
|
|
908
|
+
|
|
909
|
+
expected << " : "
|
|
910
|
+
|
|
911
|
+
expected << %(<select id="date_minute" name="date[minute]">\n)
|
|
912
|
+
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)
|
|
913
|
+
expected << "</select>\n"
|
|
914
|
+
|
|
915
|
+
expected << " : "
|
|
916
|
+
|
|
917
|
+
expected << %(<select id="date_second" name="date[second]">\n)
|
|
918
|
+
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)
|
|
919
|
+
expected << "</select>\n"
|
|
920
|
+
|
|
921
|
+
assert_dom_equal expected, select_time(Time.mktime(2003, 8, 16, 8, 4, 18), :include_seconds => true, :time_separator => ' : ')
|
|
922
|
+
end
|
|
923
|
+
|
|
924
|
+
def test_select_time_with_html_options
|
|
925
|
+
expected = %(<select id="date_hour" name="date[hour]" class="selector">\n)
|
|
926
|
+
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)
|
|
927
|
+
expected << "</select>\n"
|
|
928
|
+
|
|
929
|
+
expected << %(<select id="date_minute" name="date[minute]" class="selector">\n)
|
|
930
|
+
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)
|
|
931
|
+
expected << "</select>\n"
|
|
932
|
+
|
|
933
|
+
assert_dom_equal expected, select_time(Time.mktime(2003, 8, 16, 8, 4, 18), {}, :class => 'selector')
|
|
934
|
+
assert_dom_equal expected, select_time(Time.mktime(2003, 8, 16, 8, 4, 18), {:include_seconds => false}, :class => 'selector')
|
|
935
|
+
end
|
|
936
|
+
|
|
937
|
+
uses_mocha 'TestDatetimeAndTimeSelectUseTimeCurrentAsDefault' do
|
|
938
|
+
def test_select_datetime_uses_time_current_as_default
|
|
939
|
+
time = stub(:year => 2004, :month => 6, :day => 15, :hour => 16, :min => 35, :sec => 0)
|
|
940
|
+
Time.expects(:current).returns time
|
|
941
|
+
expects(:select_date).with(time, anything, anything).returns('')
|
|
942
|
+
expects(:select_time).with(time, anything, anything).returns('')
|
|
943
|
+
select_datetime
|
|
944
|
+
end
|
|
945
|
+
|
|
946
|
+
def test_select_time_uses_time_current_as_default
|
|
947
|
+
time = stub(:year => 2004, :month => 6, :day => 15, :hour => 16, :min => 35, :sec => 0)
|
|
948
|
+
Time.expects(:current).returns time
|
|
949
|
+
expects(:select_hour).with(time, anything, anything).returns('')
|
|
950
|
+
expects(:select_minute).with(time, anything, anything).returns('')
|
|
951
|
+
select_time
|
|
952
|
+
end
|
|
953
|
+
|
|
954
|
+
def test_select_date_uses_date_current_as_default
|
|
955
|
+
date = stub(:year => 2004, :month => 6, :day => 15)
|
|
956
|
+
Date.expects(:current).returns date
|
|
957
|
+
expects(:select_year).with(date, anything, anything).returns('')
|
|
958
|
+
expects(:select_month).with(date, anything, anything).returns('')
|
|
959
|
+
expects(:select_day).with(date, anything, anything).returns('')
|
|
960
|
+
select_date
|
|
961
|
+
end
|
|
962
|
+
end
|
|
963
|
+
|
|
964
|
+
def test_date_select
|
|
965
|
+
@post = Post.new
|
|
966
|
+
@post.written_on = Date.new(2004, 6, 15)
|
|
967
|
+
|
|
968
|
+
expected = %{<select id="post_written_on_1i" name="post[written_on(1i)]">\n}
|
|
969
|
+
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}
|
|
970
|
+
expected << "</select>\n"
|
|
971
|
+
|
|
972
|
+
expected << %{<select id="post_written_on_2i" name="post[written_on(2i)]">\n}
|
|
973
|
+
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}
|
|
974
|
+
expected << "</select>\n"
|
|
975
|
+
|
|
976
|
+
expected << %{<select id="post_written_on_3i" name="post[written_on(3i)]">\n}
|
|
977
|
+
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}
|
|
978
|
+
|
|
979
|
+
expected << "</select>\n"
|
|
980
|
+
|
|
981
|
+
assert_dom_equal expected, date_select("post", "written_on")
|
|
982
|
+
end
|
|
983
|
+
|
|
984
|
+
def test_date_select_without_day
|
|
985
|
+
@post = Post.new
|
|
986
|
+
@post.written_on = Date.new(2004, 6, 15)
|
|
987
|
+
|
|
988
|
+
expected = "<input type=\"hidden\" id=\"post_written_on_3i\" name=\"post[written_on(3i)]\" value=\"1\" />\n"
|
|
989
|
+
|
|
990
|
+
expected << %{<select id="post_written_on_2i" name="post[written_on(2i)]">\n}
|
|
991
|
+
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}
|
|
992
|
+
expected << "</select>\n"
|
|
993
|
+
|
|
994
|
+
expected << %{<select id="post_written_on_1i" name="post[written_on(1i)]">\n}
|
|
995
|
+
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}
|
|
996
|
+
expected << "</select>\n"
|
|
997
|
+
|
|
998
|
+
assert_dom_equal expected, date_select("post", "written_on", :order => [ :month, :year ])
|
|
999
|
+
end
|
|
1000
|
+
|
|
1001
|
+
def test_date_select_within_fields_for
|
|
1002
|
+
@post = Post.new
|
|
1003
|
+
@post.written_on = Date.new(2004, 6, 15)
|
|
1004
|
+
|
|
1005
|
+
_erbout = ''
|
|
1006
|
+
|
|
1007
|
+
fields_for :post, @post do |f|
|
|
1008
|
+
_erbout.concat f.date_select(:written_on)
|
|
1009
|
+
end
|
|
1010
|
+
|
|
1011
|
+
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"
|
|
1012
|
+
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"
|
|
1013
|
+
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"
|
|
1014
|
+
|
|
1015
|
+
assert_dom_equal(expected, _erbout)
|
|
1016
|
+
end
|
|
1017
|
+
|
|
1018
|
+
def test_date_select_with_index
|
|
1019
|
+
@post = Post.new
|
|
1020
|
+
@post.written_on = Date.new(2004, 6, 15)
|
|
1021
|
+
id = 456
|
|
1022
|
+
|
|
1023
|
+
expected = %{<select id="post_456_written_on_1i" name="post[#{id}][written_on(1i)]">\n}
|
|
1024
|
+
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}
|
|
1025
|
+
expected << "</select>\n"
|
|
1026
|
+
|
|
1027
|
+
expected << %{<select id="post_456_written_on_2i" name="post[#{id}][written_on(2i)]">\n}
|
|
1028
|
+
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}
|
|
1029
|
+
expected << "</select>\n"
|
|
1030
|
+
|
|
1031
|
+
expected << %{<select id="post_456_written_on_3i" name="post[#{id}][written_on(3i)]">\n}
|
|
1032
|
+
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}
|
|
1033
|
+
|
|
1034
|
+
expected << "</select>\n"
|
|
1035
|
+
|
|
1036
|
+
assert_dom_equal expected, date_select("post", "written_on", :index => id)
|
|
1037
|
+
end
|
|
1038
|
+
|
|
1039
|
+
def test_date_select_with_auto_index
|
|
1040
|
+
@post = Post.new
|
|
1041
|
+
@post.written_on = Date.new(2004, 6, 15)
|
|
1042
|
+
id = 123
|
|
1043
|
+
|
|
1044
|
+
expected = %{<select id="post_123_written_on_1i" name="post[#{id}][written_on(1i)]">\n}
|
|
1045
|
+
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}
|
|
1046
|
+
expected << "</select>\n"
|
|
1047
|
+
|
|
1048
|
+
expected << %{<select id="post_123_written_on_2i" name="post[#{id}][written_on(2i)]">\n}
|
|
1049
|
+
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}
|
|
1050
|
+
expected << "</select>\n"
|
|
1051
|
+
|
|
1052
|
+
expected << %{<select id="post_123_written_on_3i" name="post[#{id}][written_on(3i)]">\n}
|
|
1053
|
+
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}
|
|
1054
|
+
expected << "</select>\n"
|
|
1055
|
+
|
|
1056
|
+
assert_dom_equal expected, date_select("post[]", "written_on")
|
|
1057
|
+
end
|
|
1058
|
+
|
|
1059
|
+
def test_date_select_with_different_order
|
|
1060
|
+
@post = Post.new
|
|
1061
|
+
@post.written_on = Date.new(2004, 6, 15)
|
|
1062
|
+
|
|
1063
|
+
expected = %{<select id="post_written_on_3i" name="post[written_on(3i)]">\n}
|
|
1064
|
+
1.upto(31) { |i| expected << %(<option value="#{i}"#{' selected="selected"' if i == 15}>#{i}</option>\n) }
|
|
1065
|
+
expected << "</select>\n"
|
|
1066
|
+
|
|
1067
|
+
expected << %{<select id="post_written_on_2i" name="post[written_on(2i)]">\n}
|
|
1068
|
+
1.upto(12) { |i| expected << %(<option value="#{i}"#{' selected="selected"' if i == 6}>#{Date::MONTHNAMES[i]}</option>\n) }
|
|
1069
|
+
expected << "</select>\n"
|
|
1070
|
+
|
|
1071
|
+
expected << %{<select id="post_written_on_1i" name="post[written_on(1i)]">\n}
|
|
1072
|
+
1999.upto(2009) { |i| expected << %(<option value="#{i}"#{' selected="selected"' if i == 2004}>#{i}</option>\n) }
|
|
1073
|
+
expected << "</select>\n"
|
|
1074
|
+
|
|
1075
|
+
assert_dom_equal expected, date_select("post", "written_on", :order => [:day, :month, :year])
|
|
1076
|
+
end
|
|
1077
|
+
|
|
1078
|
+
def test_date_select_with_nil
|
|
1079
|
+
@post = Post.new
|
|
1080
|
+
|
|
1081
|
+
start_year = Time.now.year-5
|
|
1082
|
+
end_year = Time.now.year+5
|
|
1083
|
+
expected = %{<select id="post_written_on_1i" name="post[written_on(1i)]">\n}
|
|
1084
|
+
start_year.upto(end_year) { |i| expected << %(<option value="#{i}"#{' selected="selected"' if i == Time.now.year}>#{i}</option>\n) }
|
|
1085
|
+
expected << "</select>\n"
|
|
1086
|
+
|
|
1087
|
+
expected << %{<select id="post_written_on_2i" name="post[written_on(2i)]">\n}
|
|
1088
|
+
1.upto(12) { |i| expected << %(<option value="#{i}"#{' selected="selected"' if i == Time.now.month}>#{Date::MONTHNAMES[i]}</option>\n) }
|
|
1089
|
+
expected << "</select>\n"
|
|
1090
|
+
|
|
1091
|
+
expected << %{<select id="post_written_on_3i" name="post[written_on(3i)]">\n}
|
|
1092
|
+
1.upto(31) { |i| expected << %(<option value="#{i}"#{' selected="selected"' if i == Time.now.day}>#{i}</option>\n) }
|
|
1093
|
+
expected << "</select>\n"
|
|
1094
|
+
|
|
1095
|
+
assert_dom_equal expected, date_select("post", "written_on")
|
|
1096
|
+
end
|
|
1097
|
+
|
|
1098
|
+
def test_date_select_with_nil_and_blank
|
|
1099
|
+
@post = Post.new
|
|
1100
|
+
|
|
1101
|
+
start_year = Time.now.year-5
|
|
1102
|
+
end_year = Time.now.year+5
|
|
1103
|
+
expected = %{<select id="post_written_on_1i" name="post[written_on(1i)]">\n}
|
|
1104
|
+
expected << "<option value=\"\"></option>\n"
|
|
1105
|
+
start_year.upto(end_year) { |i| expected << %(<option value="#{i}">#{i}</option>\n) }
|
|
1106
|
+
expected << "</select>\n"
|
|
1107
|
+
|
|
1108
|
+
expected << %{<select id="post_written_on_2i" name="post[written_on(2i)]">\n}
|
|
1109
|
+
expected << "<option value=\"\"></option>\n"
|
|
1110
|
+
1.upto(12) { |i| expected << %(<option value="#{i}">#{Date::MONTHNAMES[i]}</option>\n) }
|
|
1111
|
+
expected << "</select>\n"
|
|
1112
|
+
|
|
1113
|
+
expected << %{<select id="post_written_on_3i" name="post[written_on(3i)]">\n}
|
|
1114
|
+
expected << "<option value=\"\"></option>\n"
|
|
1115
|
+
1.upto(31) { |i| expected << %(<option value="#{i}">#{i}</option>\n) }
|
|
1116
|
+
expected << "</select>\n"
|
|
1117
|
+
|
|
1118
|
+
assert_dom_equal expected, date_select("post", "written_on", :include_blank => true)
|
|
1119
|
+
end
|
|
1120
|
+
|
|
1121
|
+
def test_date_select_cant_override_discard_hour
|
|
1122
|
+
@post = Post.new
|
|
1123
|
+
@post.written_on = Date.new(2004, 6, 15)
|
|
1124
|
+
|
|
1125
|
+
expected = %{<select id="post_written_on_1i" name="post[written_on(1i)]">\n}
|
|
1126
|
+
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}
|
|
1127
|
+
expected << "</select>\n"
|
|
1128
|
+
|
|
1129
|
+
expected << %{<select id="post_written_on_2i" name="post[written_on(2i)]">\n}
|
|
1130
|
+
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}
|
|
1131
|
+
expected << "</select>\n"
|
|
1132
|
+
|
|
1133
|
+
expected << %{<select id="post_written_on_3i" name="post[written_on(3i)]">\n}
|
|
1134
|
+
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}
|
|
1135
|
+
expected << "</select>\n"
|
|
1136
|
+
|
|
1137
|
+
assert_dom_equal expected, date_select("post", "written_on", :discard_hour => false)
|
|
1138
|
+
end
|
|
1139
|
+
|
|
1140
|
+
def test_date_select_with_html_options
|
|
1141
|
+
@post = Post.new
|
|
1142
|
+
@post.written_on = Date.new(2004, 6, 15)
|
|
1143
|
+
|
|
1144
|
+
expected = %{<select id="post_written_on_1i" name="post[written_on(1i)]" class="selector">\n}
|
|
1145
|
+
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}
|
|
1146
|
+
expected << "</select>\n"
|
|
1147
|
+
|
|
1148
|
+
expected << %{<select id="post_written_on_2i" name="post[written_on(2i)]" class="selector">\n}
|
|
1149
|
+
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}
|
|
1150
|
+
expected << "</select>\n"
|
|
1151
|
+
|
|
1152
|
+
expected << %{<select id="post_written_on_3i" name="post[written_on(3i)]" class="selector">\n}
|
|
1153
|
+
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}
|
|
1154
|
+
|
|
1155
|
+
expected << "</select>\n"
|
|
1156
|
+
|
|
1157
|
+
assert_dom_equal expected, date_select("post", "written_on", {}, :class => 'selector')
|
|
1158
|
+
end
|
|
1159
|
+
|
|
1160
|
+
def test_date_select_with_html_options_within_fields_for
|
|
1161
|
+
@post = Post.new
|
|
1162
|
+
@post.written_on = Date.new(2004, 6, 15)
|
|
1163
|
+
|
|
1164
|
+
_erbout = ''
|
|
1165
|
+
|
|
1166
|
+
fields_for :post, @post do |f|
|
|
1167
|
+
_erbout.concat f.date_select(:written_on, {}, :class => 'selector')
|
|
1168
|
+
end
|
|
1169
|
+
|
|
1170
|
+
expected = %{<select id="post_written_on_1i" name="post[written_on(1i)]" class="selector">\n}
|
|
1171
|
+
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}
|
|
1172
|
+
expected << "</select>\n"
|
|
1173
|
+
|
|
1174
|
+
expected << %{<select id="post_written_on_2i" name="post[written_on(2i)]" class="selector">\n}
|
|
1175
|
+
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}
|
|
1176
|
+
expected << "</select>\n"
|
|
1177
|
+
|
|
1178
|
+
expected << %{<select id="post_written_on_3i" name="post[written_on(3i)]" class="selector">\n}
|
|
1179
|
+
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}
|
|
1180
|
+
|
|
1181
|
+
expected << "</select>\n"
|
|
1182
|
+
|
|
1183
|
+
assert_dom_equal expected, _erbout
|
|
1184
|
+
end
|
|
1185
|
+
|
|
1186
|
+
def test_time_select
|
|
1187
|
+
@post = Post.new
|
|
1188
|
+
@post.written_on = Time.local(2004, 6, 15, 15, 16, 35)
|
|
1189
|
+
|
|
1190
|
+
expected = %{<input type="hidden" id="post_written_on_1i" name="post[written_on(1i)]" value="2004" />\n}
|
|
1191
|
+
expected << %{<input type="hidden" id="post_written_on_2i" name="post[written_on(2i)]" value="6" />\n}
|
|
1192
|
+
expected << %{<input type="hidden" id="post_written_on_3i" name="post[written_on(3i)]" value="15" />\n}
|
|
1193
|
+
|
|
1194
|
+
expected << %(<select id="post_written_on_4i" name="post[written_on(4i)]">\n)
|
|
1195
|
+
0.upto(23) { |i| expected << %(<option value="#{leading_zero_on_single_digits(i)}"#{' selected="selected"' if i == 15}>#{leading_zero_on_single_digits(i)}</option>\n) }
|
|
1196
|
+
expected << "</select>\n"
|
|
1197
|
+
expected << " : "
|
|
1198
|
+
expected << %(<select id="post_written_on_5i" name="post[written_on(5i)]">\n)
|
|
1199
|
+
0.upto(59) { |i| expected << %(<option value="#{leading_zero_on_single_digits(i)}"#{' selected="selected"' if i == 16}>#{leading_zero_on_single_digits(i)}</option>\n) }
|
|
1200
|
+
expected << "</select>\n"
|
|
1201
|
+
|
|
1202
|
+
assert_dom_equal expected, time_select("post", "written_on")
|
|
1203
|
+
end
|
|
1204
|
+
|
|
1205
|
+
def test_time_select_with_seconds
|
|
1206
|
+
@post = Post.new
|
|
1207
|
+
@post.written_on = Time.local(2004, 6, 15, 15, 16, 35)
|
|
1208
|
+
|
|
1209
|
+
expected = %{<input type="hidden" id="post_written_on_1i" name="post[written_on(1i)]" value="2004" />\n}
|
|
1210
|
+
expected << %{<input type="hidden" id="post_written_on_2i" name="post[written_on(2i)]" value="6" />\n}
|
|
1211
|
+
expected << %{<input type="hidden" id="post_written_on_3i" name="post[written_on(3i)]" value="15" />\n}
|
|
1212
|
+
|
|
1213
|
+
expected << %(<select id="post_written_on_4i" name="post[written_on(4i)]">\n)
|
|
1214
|
+
0.upto(23) { |i| expected << %(<option value="#{leading_zero_on_single_digits(i)}"#{' selected="selected"' if i == 15}>#{leading_zero_on_single_digits(i)}</option>\n) }
|
|
1215
|
+
expected << "</select>\n"
|
|
1216
|
+
expected << " : "
|
|
1217
|
+
expected << %(<select id="post_written_on_5i" name="post[written_on(5i)]">\n)
|
|
1218
|
+
0.upto(59) { |i| expected << %(<option value="#{leading_zero_on_single_digits(i)}"#{' selected="selected"' if i == 16}>#{leading_zero_on_single_digits(i)}</option>\n) }
|
|
1219
|
+
expected << "</select>\n"
|
|
1220
|
+
expected << " : "
|
|
1221
|
+
expected << %(<select id="post_written_on_6i" name="post[written_on(6i)]">\n)
|
|
1222
|
+
0.upto(59) { |i| expected << %(<option value="#{leading_zero_on_single_digits(i)}"#{' selected="selected"' if i == 35}>#{leading_zero_on_single_digits(i)}</option>\n) }
|
|
1223
|
+
expected << "</select>\n"
|
|
1224
|
+
|
|
1225
|
+
assert_dom_equal expected, time_select("post", "written_on", :include_seconds => true)
|
|
1226
|
+
end
|
|
1227
|
+
|
|
1228
|
+
def test_time_select_with_html_options
|
|
1229
|
+
@post = Post.new
|
|
1230
|
+
@post.written_on = Time.local(2004, 6, 15, 15, 16, 35)
|
|
1231
|
+
|
|
1232
|
+
expected = %{<input type="hidden" id="post_written_on_1i" name="post[written_on(1i)]" value="2004" />\n}
|
|
1233
|
+
expected << %{<input type="hidden" id="post_written_on_2i" name="post[written_on(2i)]" value="6" />\n}
|
|
1234
|
+
expected << %{<input type="hidden" id="post_written_on_3i" name="post[written_on(3i)]" value="15" />\n}
|
|
1235
|
+
|
|
1236
|
+
expected << %(<select id="post_written_on_4i" name="post[written_on(4i)]" class="selector">\n)
|
|
1237
|
+
0.upto(23) { |i| expected << %(<option value="#{leading_zero_on_single_digits(i)}"#{' selected="selected"' if i == 15}>#{leading_zero_on_single_digits(i)}</option>\n) }
|
|
1238
|
+
expected << "</select>\n"
|
|
1239
|
+
expected << " : "
|
|
1240
|
+
expected << %(<select id="post_written_on_5i" name="post[written_on(5i)]" class="selector">\n)
|
|
1241
|
+
0.upto(59) { |i| expected << %(<option value="#{leading_zero_on_single_digits(i)}"#{' selected="selected"' if i == 16}>#{leading_zero_on_single_digits(i)}</option>\n) }
|
|
1242
|
+
expected << "</select>\n"
|
|
1243
|
+
|
|
1244
|
+
assert_dom_equal expected, time_select("post", "written_on", {}, :class => 'selector')
|
|
1245
|
+
end
|
|
1246
|
+
|
|
1247
|
+
def test_time_select_with_html_options_within_fields_for
|
|
1248
|
+
@post = Post.new
|
|
1249
|
+
@post.written_on = Time.local(2004, 6, 15, 15, 16, 35)
|
|
1250
|
+
|
|
1251
|
+
_erbout = ''
|
|
1252
|
+
|
|
1253
|
+
fields_for :post, @post do |f|
|
|
1254
|
+
_erbout.concat f.time_select(:written_on, {}, :class => 'selector')
|
|
1255
|
+
end
|
|
1256
|
+
|
|
1257
|
+
expected = %{<input type="hidden" id="post_written_on_1i" name="post[written_on(1i)]" value="2004" />\n}
|
|
1258
|
+
expected << %{<input type="hidden" id="post_written_on_2i" name="post[written_on(2i)]" value="6" />\n}
|
|
1259
|
+
expected << %{<input type="hidden" id="post_written_on_3i" name="post[written_on(3i)]" value="15" />\n}
|
|
1260
|
+
|
|
1261
|
+
expected << %(<select id="post_written_on_4i" name="post[written_on(4i)]" class="selector">\n)
|
|
1262
|
+
0.upto(23) { |i| expected << %(<option value="#{leading_zero_on_single_digits(i)}"#{' selected="selected"' if i == 15}>#{leading_zero_on_single_digits(i)}</option>\n) }
|
|
1263
|
+
expected << "</select>\n"
|
|
1264
|
+
expected << " : "
|
|
1265
|
+
expected << %(<select id="post_written_on_5i" name="post[written_on(5i)]" class="selector">\n)
|
|
1266
|
+
0.upto(59) { |i| expected << %(<option value="#{leading_zero_on_single_digits(i)}"#{' selected="selected"' if i == 16}>#{leading_zero_on_single_digits(i)}</option>\n) }
|
|
1267
|
+
expected << "</select>\n"
|
|
1268
|
+
|
|
1269
|
+
assert_dom_equal expected, _erbout
|
|
1270
|
+
end
|
|
1271
|
+
|
|
1272
|
+
def test_datetime_select
|
|
1273
|
+
@post = Post.new
|
|
1274
|
+
@post.updated_at = Time.local(2004, 6, 15, 16, 35)
|
|
1275
|
+
|
|
1276
|
+
expected = %{<select id="post_updated_at_1i" name="post[updated_at(1i)]">\n}
|
|
1277
|
+
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}
|
|
1278
|
+
expected << "</select>\n"
|
|
1279
|
+
|
|
1280
|
+
expected << %{<select id="post_updated_at_2i" name="post[updated_at(2i)]">\n}
|
|
1281
|
+
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}
|
|
1282
|
+
expected << "</select>\n"
|
|
1283
|
+
|
|
1284
|
+
expected << %{<select id="post_updated_at_3i" name="post[updated_at(3i)]">\n}
|
|
1285
|
+
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}
|
|
1286
|
+
expected << "</select>\n"
|
|
1287
|
+
|
|
1288
|
+
expected << " — "
|
|
1289
|
+
|
|
1290
|
+
expected << %{<select id="post_updated_at_4i" name="post[updated_at(4i)]">\n}
|
|
1291
|
+
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}
|
|
1292
|
+
expected << "</select>\n"
|
|
1293
|
+
expected << " : "
|
|
1294
|
+
expected << %{<select id="post_updated_at_5i" name="post[updated_at(5i)]">\n}
|
|
1295
|
+
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}
|
|
1296
|
+
expected << "</select>\n"
|
|
1297
|
+
|
|
1298
|
+
assert_dom_equal expected, datetime_select("post", "updated_at")
|
|
1299
|
+
end
|
|
1300
|
+
|
|
1301
|
+
uses_mocha 'TestDatetimeSelectDefaultsToTimeZoneNowWhenConfigTimeZoneIsSet' do
|
|
1302
|
+
def test_datetime_select_defaults_to_time_zone_now_when_config_time_zone_is_set
|
|
1303
|
+
time = stub(:year => 2004, :month => 6, :day => 15, :hour => 16, :min => 35, :sec => 0)
|
|
1304
|
+
time_zone = mock()
|
|
1305
|
+
time_zone.expects(:now).returns time
|
|
1306
|
+
Time.zone_default = time_zone
|
|
1307
|
+
@post = Post.new
|
|
1308
|
+
|
|
1309
|
+
expected = %{<select id="post_updated_at_1i" name="post[updated_at(1i)]">\n}
|
|
1310
|
+
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}
|
|
1311
|
+
expected << "</select>\n"
|
|
1312
|
+
|
|
1313
|
+
expected << %{<select id="post_updated_at_2i" name="post[updated_at(2i)]">\n}
|
|
1314
|
+
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}
|
|
1315
|
+
expected << "</select>\n"
|
|
1316
|
+
|
|
1317
|
+
expected << %{<select id="post_updated_at_3i" name="post[updated_at(3i)]">\n}
|
|
1318
|
+
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}
|
|
1319
|
+
expected << "</select>\n"
|
|
1320
|
+
|
|
1321
|
+
expected << " — "
|
|
1322
|
+
|
|
1323
|
+
expected << %{<select id="post_updated_at_4i" name="post[updated_at(4i)]">\n}
|
|
1324
|
+
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}
|
|
1325
|
+
expected << "</select>\n"
|
|
1326
|
+
expected << " : "
|
|
1327
|
+
expected << %{<select id="post_updated_at_5i" name="post[updated_at(5i)]">\n}
|
|
1328
|
+
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}
|
|
1329
|
+
expected << "</select>\n"
|
|
1330
|
+
|
|
1331
|
+
assert_dom_equal expected, datetime_select("post", "updated_at")
|
|
1332
|
+
ensure
|
|
1333
|
+
Time.zone_default = nil
|
|
1334
|
+
end
|
|
1335
|
+
end
|
|
1336
|
+
|
|
1337
|
+
def test_datetime_select_with_html_options_within_fields_for
|
|
1338
|
+
@post = Post.new
|
|
1339
|
+
@post.updated_at = Time.local(2004, 6, 15, 16, 35)
|
|
1340
|
+
|
|
1341
|
+
_erbout = ''
|
|
1342
|
+
|
|
1343
|
+
fields_for :post, @post do |f|
|
|
1344
|
+
_erbout.concat f.datetime_select(:updated_at, {}, :class => 'selector')
|
|
1345
|
+
end
|
|
1346
|
+
|
|
1347
|
+
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"
|
|
1348
|
+
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"
|
|
1349
|
+
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"
|
|
1350
|
+
expected << " — <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"
|
|
1351
|
+
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"
|
|
1352
|
+
|
|
1353
|
+
assert_dom_equal expected, _erbout
|
|
1354
|
+
end
|
|
1355
|
+
|
|
1356
|
+
def test_date_select_with_zero_value_and_no_start_year
|
|
1357
|
+
expected = %(<select id="date_first_year" name="date[first][year]">\n)
|
|
1358
|
+
(Date.today.year-5).upto(Date.today.year+1) { |y| expected << %(<option value="#{y}">#{y}</option>\n) }
|
|
1359
|
+
expected << "</select>\n"
|
|
1360
|
+
|
|
1361
|
+
expected << %(<select id="date_first_month" name="date[first][month]">\n)
|
|
1362
|
+
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)
|
|
1363
|
+
expected << "</select>\n"
|
|
1364
|
+
|
|
1365
|
+
expected << %(<select id="date_first_day" name="date[first][day]">\n)
|
|
1366
|
+
expected <<
|
|
1367
|
+
%(<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)
|
|
1368
|
+
expected << "</select>\n"
|
|
1369
|
+
|
|
1370
|
+
assert_dom_equal expected, select_date(0, :end_year => Date.today.year+1, :prefix => "date[first]")
|
|
1371
|
+
end
|
|
1372
|
+
|
|
1373
|
+
def test_date_select_with_zero_value_and_no_end_year
|
|
1374
|
+
expected = %(<select id="date_first_year" name="date[first][year]">\n)
|
|
1375
|
+
last_year = Time.now.year + 5
|
|
1376
|
+
2003.upto(last_year) { |y| expected << %(<option value="#{y}">#{y}</option>\n) }
|
|
1377
|
+
expected << "</select>\n"
|
|
1378
|
+
|
|
1379
|
+
expected << %(<select id="date_first_month" name="date[first][month]">\n)
|
|
1380
|
+
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)
|
|
1381
|
+
expected << "</select>\n"
|
|
1382
|
+
|
|
1383
|
+
expected << %(<select id="date_first_day" name="date[first][day]">\n)
|
|
1384
|
+
expected <<
|
|
1385
|
+
%(<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)
|
|
1386
|
+
expected << "</select>\n"
|
|
1387
|
+
|
|
1388
|
+
assert_dom_equal expected, select_date(0, :start_year => 2003, :prefix => "date[first]")
|
|
1389
|
+
end
|
|
1390
|
+
|
|
1391
|
+
def test_date_select_with_zero_value_and_no_start_and_end_year
|
|
1392
|
+
expected = %(<select id="date_first_year" name="date[first][year]">\n)
|
|
1393
|
+
(Date.today.year-5).upto(Date.today.year+5) { |y| expected << %(<option value="#{y}">#{y}</option>\n) }
|
|
1394
|
+
expected << "</select>\n"
|
|
1395
|
+
|
|
1396
|
+
expected << %(<select id="date_first_month" name="date[first][month]">\n)
|
|
1397
|
+
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)
|
|
1398
|
+
expected << "</select>\n"
|
|
1399
|
+
|
|
1400
|
+
expected << %(<select id="date_first_day" name="date[first][day]">\n)
|
|
1401
|
+
expected <<
|
|
1402
|
+
%(<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)
|
|
1403
|
+
expected << "</select>\n"
|
|
1404
|
+
|
|
1405
|
+
assert_dom_equal expected, select_date(0, :prefix => "date[first]")
|
|
1406
|
+
end
|
|
1407
|
+
|
|
1408
|
+
def test_date_select_with_nil_value_and_no_start_and_end_year
|
|
1409
|
+
expected = %(<select id="date_first_year" name="date[first][year]">\n)
|
|
1410
|
+
(Date.today.year-5).upto(Date.today.year+5) { |y| expected << %(<option value="#{y}">#{y}</option>\n) }
|
|
1411
|
+
expected << "</select>\n"
|
|
1412
|
+
|
|
1413
|
+
expected << %(<select id="date_first_month" name="date[first][month]">\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">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="date_first_day" name="date[first][day]">\n)
|
|
1418
|
+
expected <<
|
|
1419
|
+
%(<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)
|
|
1420
|
+
expected << "</select>\n"
|
|
1421
|
+
|
|
1422
|
+
assert_dom_equal expected, select_date(nil, :prefix => "date[first]")
|
|
1423
|
+
end
|
|
1424
|
+
|
|
1425
|
+
def test_datetime_select_with_nil_value_and_no_start_and_end_year
|
|
1426
|
+
expected = %(<select id="date_first_year" name="date[first][year]">\n)
|
|
1427
|
+
(Date.today.year-5).upto(Date.today.year+5) { |y| expected << %(<option value="#{y}">#{y}</option>\n) }
|
|
1428
|
+
expected << "</select>\n"
|
|
1429
|
+
|
|
1430
|
+
expected << %(<select id="date_first_month" name="date[first][month]">\n)
|
|
1431
|
+
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)
|
|
1432
|
+
expected << "</select>\n"
|
|
1433
|
+
|
|
1434
|
+
expected << %(<select id="date_first_day" name="date[first][day]">\n)
|
|
1435
|
+
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)
|
|
1436
|
+
expected << "</select>\n"
|
|
1437
|
+
|
|
1438
|
+
expected << %(<select id="date_first_hour" name="date[first][hour]">\n)
|
|
1439
|
+
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)
|
|
1440
|
+
expected << "</select>\n"
|
|
1441
|
+
|
|
1442
|
+
expected << %(<select id="date_first_minute" name="date[first][minute]">\n)
|
|
1443
|
+
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)
|
|
1444
|
+
expected << "</select>\n"
|
|
1445
|
+
|
|
1446
|
+
assert_dom_equal expected, select_datetime(nil, :prefix => "date[first]")
|
|
1447
|
+
end
|
|
1448
|
+
|
|
1449
|
+
def test_datetime_select_with_options_index
|
|
1450
|
+
@post = Post.new
|
|
1451
|
+
@post.updated_at = Time.local(2004, 6, 15, 16, 35)
|
|
1452
|
+
id = 456
|
|
1453
|
+
|
|
1454
|
+
expected = %{<select id="post_456_updated_at_1i" name="post[#{id}][updated_at(1i)]">\n}
|
|
1455
|
+
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}
|
|
1456
|
+
expected << "</select>\n"
|
|
1457
|
+
|
|
1458
|
+
expected << %{<select id="post_456_updated_at_2i" name="post[#{id}][updated_at(2i)]">\n}
|
|
1459
|
+
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}
|
|
1460
|
+
expected << "</select>\n"
|
|
1461
|
+
|
|
1462
|
+
expected << %{<select id="post_456_updated_at_3i" name="post[#{id}][updated_at(3i)]">\n}
|
|
1463
|
+
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}
|
|
1464
|
+
expected << "</select>\n"
|
|
1465
|
+
|
|
1466
|
+
expected << " — "
|
|
1467
|
+
|
|
1468
|
+
expected << %{<select id="post_456_updated_at_4i" name="post[#{id}][updated_at(4i)]">\n}
|
|
1469
|
+
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}
|
|
1470
|
+
expected << "</select>\n"
|
|
1471
|
+
expected << " : "
|
|
1472
|
+
expected << %{<select id="post_456_updated_at_5i" name="post[#{id}][updated_at(5i)]">\n}
|
|
1473
|
+
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}
|
|
1474
|
+
expected << "</select>\n"
|
|
1475
|
+
|
|
1476
|
+
assert_dom_equal expected, datetime_select("post", "updated_at", :index => id)
|
|
1477
|
+
end
|
|
1478
|
+
|
|
1479
|
+
def test_datetime_select_with_auto_index
|
|
1480
|
+
@post = Post.new
|
|
1481
|
+
@post.updated_at = Time.local(2004, 6, 15, 16, 35)
|
|
1482
|
+
id = @post.id
|
|
1483
|
+
|
|
1484
|
+
expected = %{<select id="post_123_updated_at_1i" name="post[#{id}][updated_at(1i)]">\n}
|
|
1485
|
+
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}
|
|
1486
|
+
expected << "</select>\n"
|
|
1487
|
+
|
|
1488
|
+
expected << %{<select id="post_123_updated_at_2i" name="post[#{id}][updated_at(2i)]">\n}
|
|
1489
|
+
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}
|
|
1490
|
+
expected << "</select>\n"
|
|
1491
|
+
|
|
1492
|
+
expected << %{<select id="post_123_updated_at_3i" name="post[#{id}][updated_at(3i)]">\n}
|
|
1493
|
+
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}
|
|
1494
|
+
expected << "</select>\n"
|
|
1495
|
+
|
|
1496
|
+
expected << " — "
|
|
1497
|
+
|
|
1498
|
+
expected << %{<select id="post_123_updated_at_4i" name="post[#{id}][updated_at(4i)]">\n}
|
|
1499
|
+
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}
|
|
1500
|
+
expected << "</select>\n"
|
|
1501
|
+
expected << " : "
|
|
1502
|
+
expected << %{<select id="post_123_updated_at_5i" name="post[#{id}][updated_at(5i)]">\n}
|
|
1503
|
+
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}
|
|
1504
|
+
expected << "</select>\n"
|
|
1505
|
+
|
|
1506
|
+
assert_dom_equal expected, datetime_select("post[]", "updated_at")
|
|
1507
|
+
end
|
|
1508
|
+
|
|
1509
|
+
def test_datetime_select_with_seconds
|
|
1510
|
+
@post = Post.new
|
|
1511
|
+
@post.updated_at = Time.local(2004, 6, 15, 15, 16, 35)
|
|
1512
|
+
|
|
1513
|
+
expected = %{<select id="post_updated_at_1i" name="post[updated_at(1i)]">\n}
|
|
1514
|
+
1999.upto(2009) { |i| expected << %(<option value="#{i}"#{' selected="selected"' if i == 2004}>#{i}</option>\n) }
|
|
1515
|
+
expected << "</select>\n"
|
|
1516
|
+
expected << %{<select id="post_updated_at_2i" name="post[updated_at(2i)]">\n}
|
|
1517
|
+
1.upto(12) { |i| expected << %(<option value="#{i}"#{' selected="selected"' if i == 6}>#{Date::MONTHNAMES[i]}</option>\n) }
|
|
1518
|
+
expected << "</select>\n"
|
|
1519
|
+
expected << %{<select id="post_updated_at_3i" name="post[updated_at(3i)]">\n}
|
|
1520
|
+
1.upto(31) { |i| expected << %(<option value="#{i}"#{' selected="selected"' if i == 15}>#{i}</option>\n) }
|
|
1521
|
+
expected << "</select>\n"
|
|
1522
|
+
|
|
1523
|
+
expected << " — "
|
|
1524
|
+
|
|
1525
|
+
expected << %{<select id="post_updated_at_4i" name="post[updated_at(4i)]">\n}
|
|
1526
|
+
0.upto(23) { |i| expected << %(<option value="#{leading_zero_on_single_digits(i)}"#{' selected="selected"' if i == 15}>#{leading_zero_on_single_digits(i)}</option>\n) }
|
|
1527
|
+
expected << "</select>\n"
|
|
1528
|
+
expected << " : "
|
|
1529
|
+
expected << %{<select id="post_updated_at_5i" name="post[updated_at(5i)]">\n}
|
|
1530
|
+
0.upto(59) { |i| expected << %(<option value="#{leading_zero_on_single_digits(i)}"#{' selected="selected"' if i == 16}>#{leading_zero_on_single_digits(i)}</option>\n) }
|
|
1531
|
+
expected << "</select>\n"
|
|
1532
|
+
expected << " : "
|
|
1533
|
+
expected << %{<select id="post_updated_at_6i" name="post[updated_at(6i)]">\n}
|
|
1534
|
+
0.upto(59) { |i| expected << %(<option value="#{leading_zero_on_single_digits(i)}"#{' selected="selected"' if i == 35}>#{leading_zero_on_single_digits(i)}</option>\n) }
|
|
1535
|
+
expected << "</select>\n"
|
|
1536
|
+
|
|
1537
|
+
assert_dom_equal expected, datetime_select("post", "updated_at", :include_seconds => true)
|
|
1538
|
+
end
|
|
1539
|
+
|
|
1540
|
+
def test_datetime_select_discard_year
|
|
1541
|
+
@post = Post.new
|
|
1542
|
+
@post.updated_at = Time.local(2004, 6, 15, 15, 16, 35)
|
|
1543
|
+
|
|
1544
|
+
expected = %{<input type="hidden" id="post_updated_at_1i" name="post[updated_at(1i)]" value="2004" />\n}
|
|
1545
|
+
expected << %{<select id="post_updated_at_2i" name="post[updated_at(2i)]">\n}
|
|
1546
|
+
1.upto(12) { |i| expected << %(<option value="#{i}"#{' selected="selected"' if i == 6}>#{Date::MONTHNAMES[i]}</option>\n) }
|
|
1547
|
+
expected << "</select>\n"
|
|
1548
|
+
expected << %{<select id="post_updated_at_3i" name="post[updated_at(3i)]">\n}
|
|
1549
|
+
1.upto(31) { |i| expected << %(<option value="#{i}"#{' selected="selected"' if i == 15}>#{i}</option>\n) }
|
|
1550
|
+
expected << "</select>\n"
|
|
1551
|
+
|
|
1552
|
+
expected << " — "
|
|
1553
|
+
|
|
1554
|
+
expected << %{<select id="post_updated_at_4i" name="post[updated_at(4i)]">\n}
|
|
1555
|
+
0.upto(23) { |i| expected << %(<option value="#{leading_zero_on_single_digits(i)}"#{' selected="selected"' if i == 15}>#{leading_zero_on_single_digits(i)}</option>\n) }
|
|
1556
|
+
expected << "</select>\n"
|
|
1557
|
+
expected << " : "
|
|
1558
|
+
expected << %{<select id="post_updated_at_5i" name="post[updated_at(5i)]">\n}
|
|
1559
|
+
0.upto(59) { |i| expected << %(<option value="#{leading_zero_on_single_digits(i)}"#{' selected="selected"' if i == 16}>#{leading_zero_on_single_digits(i)}</option>\n) }
|
|
1560
|
+
expected << "</select>\n"
|
|
1561
|
+
|
|
1562
|
+
assert_dom_equal expected, datetime_select("post", "updated_at", :discard_year => true)
|
|
1563
|
+
end
|
|
1564
|
+
|
|
1565
|
+
def test_datetime_select_discard_month
|
|
1566
|
+
@post = Post.new
|
|
1567
|
+
@post.updated_at = Time.local(2004, 6, 15, 15, 16, 35)
|
|
1568
|
+
|
|
1569
|
+
expected = %{<select id="post_updated_at_1i" name="post[updated_at(1i)]">\n}
|
|
1570
|
+
1999.upto(2009) { |i| expected << %(<option value="#{i}"#{' selected="selected"' if i == 2004}>#{i}</option>\n) }
|
|
1571
|
+
expected << "</select>\n"
|
|
1572
|
+
expected << %{<input type="hidden" id="post_updated_at_2i" name="post[updated_at(2i)]" value="6" />\n}
|
|
1573
|
+
expected << %{<input type="hidden" id="post_updated_at_3i" name="post[updated_at(3i)]" value="15" />\n}
|
|
1574
|
+
|
|
1575
|
+
expected << " — "
|
|
1576
|
+
|
|
1577
|
+
expected << %{<select id="post_updated_at_4i" name="post[updated_at(4i)]">\n}
|
|
1578
|
+
0.upto(23) { |i| expected << %(<option value="#{leading_zero_on_single_digits(i)}"#{' selected="selected"' if i == 15}>#{leading_zero_on_single_digits(i)}</option>\n) }
|
|
1579
|
+
expected << "</select>\n"
|
|
1580
|
+
expected << " : "
|
|
1581
|
+
expected << %{<select id="post_updated_at_5i" name="post[updated_at(5i)]">\n}
|
|
1582
|
+
0.upto(59) { |i| expected << %(<option value="#{leading_zero_on_single_digits(i)}"#{' selected="selected"' if i == 16}>#{leading_zero_on_single_digits(i)}</option>\n) }
|
|
1583
|
+
expected << "</select>\n"
|
|
1584
|
+
|
|
1585
|
+
assert_dom_equal expected, datetime_select("post", "updated_at", :discard_month => true)
|
|
1586
|
+
end
|
|
1587
|
+
|
|
1588
|
+
def test_datetime_select_discard_year_and_month
|
|
1589
|
+
@post = Post.new
|
|
1590
|
+
@post.updated_at = Time.local(2004, 6, 15, 15, 16, 35)
|
|
1591
|
+
|
|
1592
|
+
expected = %{<input type="hidden" id="post_updated_at_1i" name="post[updated_at(1i)]" value="2004" />\n}
|
|
1593
|
+
expected << %{<input type="hidden" id="post_updated_at_2i" name="post[updated_at(2i)]" value="6" />\n}
|
|
1594
|
+
expected << %{<input type="hidden" id="post_updated_at_3i" name="post[updated_at(3i)]" value="15" />\n}
|
|
1595
|
+
|
|
1596
|
+
expected << %{<select id="post_updated_at_4i" name="post[updated_at(4i)]">\n}
|
|
1597
|
+
0.upto(23) { |i| expected << %(<option value="#{leading_zero_on_single_digits(i)}"#{' selected="selected"' if i == 15}>#{leading_zero_on_single_digits(i)}</option>\n) }
|
|
1598
|
+
expected << "</select>\n"
|
|
1599
|
+
expected << " : "
|
|
1600
|
+
expected << %{<select id="post_updated_at_5i" name="post[updated_at(5i)]">\n}
|
|
1601
|
+
0.upto(59) { |i| expected << %(<option value="#{leading_zero_on_single_digits(i)}"#{' selected="selected"' if i == 16}>#{leading_zero_on_single_digits(i)}</option>\n) }
|
|
1602
|
+
expected << "</select>\n"
|
|
1603
|
+
|
|
1604
|
+
assert_dom_equal expected, datetime_select("post", "updated_at", :discard_year => true, :discard_month => true)
|
|
1605
|
+
end
|
|
1606
|
+
|
|
1607
|
+
def test_datetime_select_invalid_order
|
|
1608
|
+
@post = Post.new
|
|
1609
|
+
@post.updated_at = Time.local(2004, 6, 15, 15, 16, 35)
|
|
1610
|
+
|
|
1611
|
+
expected = %{<select id="post_updated_at_3i" name="post[updated_at(3i)]">\n}
|
|
1612
|
+
1.upto(31) { |i| expected << %(<option value="#{i}"#{' selected="selected"' if i == 15}>#{i}</option>\n) }
|
|
1613
|
+
expected << "</select>\n"
|
|
1614
|
+
expected << %{<select id="post_updated_at_2i" name="post[updated_at(2i)]">\n}
|
|
1615
|
+
1.upto(12) { |i| expected << %(<option value="#{i}"#{' selected="selected"' if i == 6}>#{Date::MONTHNAMES[i]}</option>\n) }
|
|
1616
|
+
expected << "</select>\n"
|
|
1617
|
+
expected << %{<select id="post_updated_at_1i" name="post[updated_at(1i)]">\n}
|
|
1618
|
+
1999.upto(2009) { |i| expected << %(<option value="#{i}"#{' selected="selected"' if i == 2004}>#{i}</option>\n) }
|
|
1619
|
+
expected << "</select>\n"
|
|
1620
|
+
|
|
1621
|
+
expected << " — "
|
|
1622
|
+
|
|
1623
|
+
expected << %{<select id="post_updated_at_4i" name="post[updated_at(4i)]">\n}
|
|
1624
|
+
0.upto(23) { |i| expected << %(<option value="#{leading_zero_on_single_digits(i)}"#{' selected="selected"' if i == 15}>#{leading_zero_on_single_digits(i)}</option>\n) }
|
|
1625
|
+
expected << "</select>\n"
|
|
1626
|
+
expected << " : "
|
|
1627
|
+
expected << %{<select id="post_updated_at_5i" name="post[updated_at(5i)]">\n}
|
|
1628
|
+
0.upto(59) { |i| expected << %(<option value="#{leading_zero_on_single_digits(i)}"#{' selected="selected"' if i == 16}>#{leading_zero_on_single_digits(i)}</option>\n) }
|
|
1629
|
+
expected << "</select>\n"
|
|
1630
|
+
|
|
1631
|
+
assert_dom_equal expected, datetime_select("post", "updated_at", :order => [:minute, :day, :hour, :month, :year, :second])
|
|
1632
|
+
end
|
|
1633
|
+
|
|
1634
|
+
def test_datetime_select_discard_with_order
|
|
1635
|
+
@post = Post.new
|
|
1636
|
+
@post.updated_at = Time.local(2004, 6, 15, 15, 16, 35)
|
|
1637
|
+
|
|
1638
|
+
expected = %{<input type="hidden" id="post_updated_at_1i" name="post[updated_at(1i)]" value="2004" />\n}
|
|
1639
|
+
expected << %{<select id="post_updated_at_3i" name="post[updated_at(3i)]">\n}
|
|
1640
|
+
1.upto(31) { |i| expected << %(<option value="#{i}"#{' selected="selected"' if i == 15}>#{i}</option>\n) }
|
|
1641
|
+
expected << "</select>\n"
|
|
1642
|
+
expected << %{<select id="post_updated_at_2i" name="post[updated_at(2i)]">\n}
|
|
1643
|
+
1.upto(12) { |i| expected << %(<option value="#{i}"#{' selected="selected"' if i == 6}>#{Date::MONTHNAMES[i]}</option>\n) }
|
|
1644
|
+
expected << "</select>\n"
|
|
1645
|
+
|
|
1646
|
+
expected << " — "
|
|
1647
|
+
|
|
1648
|
+
expected << %{<select id="post_updated_at_4i" name="post[updated_at(4i)]">\n}
|
|
1649
|
+
0.upto(23) { |i| expected << %(<option value="#{leading_zero_on_single_digits(i)}"#{' selected="selected"' if i == 15}>#{leading_zero_on_single_digits(i)}</option>\n) }
|
|
1650
|
+
expected << "</select>\n"
|
|
1651
|
+
expected << " : "
|
|
1652
|
+
expected << %{<select id="post_updated_at_5i" name="post[updated_at(5i)]">\n}
|
|
1653
|
+
0.upto(59) { |i| expected << %(<option value="#{leading_zero_on_single_digits(i)}"#{' selected="selected"' if i == 16}>#{leading_zero_on_single_digits(i)}</option>\n) }
|
|
1654
|
+
expected << "</select>\n"
|
|
1655
|
+
|
|
1656
|
+
assert_dom_equal expected, datetime_select("post", "updated_at", :order => [:day, :month])
|
|
1657
|
+
end
|
|
1658
|
+
|
|
1659
|
+
def test_datetime_select_with_default_value_as_time
|
|
1660
|
+
@post = Post.new
|
|
1661
|
+
@post.updated_at = nil
|
|
1662
|
+
|
|
1663
|
+
expected = %{<select id="post_updated_at_1i" name="post[updated_at(1i)]">\n}
|
|
1664
|
+
2001.upto(2011) { |i| expected << %(<option value="#{i}"#{' selected="selected"' if i == 2006}>#{i}</option>\n) }
|
|
1665
|
+
expected << "</select>\n"
|
|
1666
|
+
expected << %{<select id="post_updated_at_2i" name="post[updated_at(2i)]">\n}
|
|
1667
|
+
1.upto(12) { |i| expected << %(<option value="#{i}"#{' selected="selected"' if i == 9}>#{Date::MONTHNAMES[i]}</option>\n) }
|
|
1668
|
+
expected << "</select>\n"
|
|
1669
|
+
expected << %{<select id="post_updated_at_3i" name="post[updated_at(3i)]">\n}
|
|
1670
|
+
1.upto(31) { |i| expected << %(<option value="#{i}"#{' selected="selected"' if i == 19}>#{i}</option>\n) }
|
|
1671
|
+
expected << "</select>\n"
|
|
1672
|
+
|
|
1673
|
+
expected << " — "
|
|
1674
|
+
|
|
1675
|
+
expected << %{<select id="post_updated_at_4i" name="post[updated_at(4i)]">\n}
|
|
1676
|
+
0.upto(23) { |i| expected << %(<option value="#{leading_zero_on_single_digits(i)}"#{' selected="selected"' if i == 15}>#{leading_zero_on_single_digits(i)}</option>\n) }
|
|
1677
|
+
expected << "</select>\n"
|
|
1678
|
+
expected << " : "
|
|
1679
|
+
expected << %{<select id="post_updated_at_5i" name="post[updated_at(5i)]">\n}
|
|
1680
|
+
0.upto(59) { |i| expected << %(<option value="#{leading_zero_on_single_digits(i)}"#{' selected="selected"' if i == 16}>#{leading_zero_on_single_digits(i)}</option>\n) }
|
|
1681
|
+
expected << "</select>\n"
|
|
1682
|
+
|
|
1683
|
+
assert_dom_equal expected, datetime_select("post", "updated_at", :default => Time.local(2006, 9, 19, 15, 16, 35))
|
|
1684
|
+
end
|
|
1685
|
+
|
|
1686
|
+
def test_include_blank_overrides_default_option
|
|
1687
|
+
@post = Post.new
|
|
1688
|
+
@post.updated_at = nil
|
|
1689
|
+
|
|
1690
|
+
expected = %{<select id="post_updated_at_1i" name="post[updated_at(1i)]">\n}
|
|
1691
|
+
expected << %(<option value=""></option>\n)
|
|
1692
|
+
(Time.now.year - 5).upto(Time.now.year + 5) { |i| expected << %(<option value="#{i}">#{i}</option>\n) }
|
|
1693
|
+
expected << "</select>\n"
|
|
1694
|
+
expected << %{<select id="post_updated_at_2i" name="post[updated_at(2i)]">\n}
|
|
1695
|
+
expected << %(<option value=""></option>\n)
|
|
1696
|
+
1.upto(12) { |i| expected << %(<option value="#{i}">#{Date::MONTHNAMES[i]}</option>\n) }
|
|
1697
|
+
expected << "</select>\n"
|
|
1698
|
+
expected << %{<select id="post_updated_at_3i" name="post[updated_at(3i)]">\n}
|
|
1699
|
+
expected << %(<option value=""></option>\n)
|
|
1700
|
+
1.upto(31) { |i| expected << %(<option value="#{i}">#{i}</option>\n) }
|
|
1701
|
+
expected << "</select>\n"
|
|
1702
|
+
|
|
1703
|
+
assert_dom_equal expected, date_select("post", "updated_at", :default => Time.local(2006, 9, 19, 15, 16, 35), :include_blank => true)
|
|
1704
|
+
end
|
|
1705
|
+
|
|
1706
|
+
def test_datetime_select_with_default_value_as_hash
|
|
1707
|
+
@post = Post.new
|
|
1708
|
+
@post.updated_at = nil
|
|
1709
|
+
|
|
1710
|
+
expected = %{<select id="post_updated_at_1i" name="post[updated_at(1i)]">\n}
|
|
1711
|
+
(Time.now.year - 5).upto(Time.now.year + 5) { |i| expected << %(<option value="#{i}"#{' selected="selected"' if i == Time.now.year}>#{i}</option>\n) }
|
|
1712
|
+
expected << "</select>\n"
|
|
1713
|
+
expected << %{<select id="post_updated_at_2i" name="post[updated_at(2i)]">\n}
|
|
1714
|
+
1.upto(12) { |i| expected << %(<option value="#{i}"#{' selected="selected"' if i == 10}>#{Date::MONTHNAMES[i]}</option>\n) }
|
|
1715
|
+
expected << "</select>\n"
|
|
1716
|
+
expected << %{<select id="post_updated_at_3i" name="post[updated_at(3i)]">\n}
|
|
1717
|
+
1.upto(31) { |i| expected << %(<option value="#{i}"#{' selected="selected"' if i == Time.now.day}>#{i}</option>\n) }
|
|
1718
|
+
expected << "</select>\n"
|
|
1719
|
+
|
|
1720
|
+
expected << " — "
|
|
1721
|
+
|
|
1722
|
+
expected << %{<select id="post_updated_at_4i" name="post[updated_at(4i)]">\n}
|
|
1723
|
+
0.upto(23) { |i| expected << %(<option value="#{leading_zero_on_single_digits(i)}"#{' selected="selected"' if i == 9}>#{leading_zero_on_single_digits(i)}</option>\n) }
|
|
1724
|
+
expected << "</select>\n"
|
|
1725
|
+
expected << " : "
|
|
1726
|
+
expected << %{<select id="post_updated_at_5i" name="post[updated_at(5i)]">\n}
|
|
1727
|
+
0.upto(59) { |i| expected << %(<option value="#{leading_zero_on_single_digits(i)}"#{' selected="selected"' if i == 42}>#{leading_zero_on_single_digits(i)}</option>\n) }
|
|
1728
|
+
expected << "</select>\n"
|
|
1729
|
+
|
|
1730
|
+
assert_dom_equal expected, datetime_select("post", "updated_at", :default => { :month => 10, :minute => 42, :hour => 9 })
|
|
1731
|
+
end
|
|
1732
|
+
|
|
1733
|
+
def test_datetime_select_with_html_options
|
|
1734
|
+
@post = Post.new
|
|
1735
|
+
@post.updated_at = Time.local(2004, 6, 15, 16, 35)
|
|
1736
|
+
|
|
1737
|
+
expected = %{<select id="post_updated_at_1i" name="post[updated_at(1i)]" class="selector">\n}
|
|
1738
|
+
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}
|
|
1739
|
+
expected << "</select>\n"
|
|
1740
|
+
|
|
1741
|
+
expected << %{<select id="post_updated_at_2i" name="post[updated_at(2i)]" class="selector">\n}
|
|
1742
|
+
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}
|
|
1743
|
+
expected << "</select>\n"
|
|
1744
|
+
|
|
1745
|
+
expected << %{<select id="post_updated_at_3i" name="post[updated_at(3i)]" class="selector">\n}
|
|
1746
|
+
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}
|
|
1747
|
+
expected << "</select>\n"
|
|
1748
|
+
|
|
1749
|
+
expected << " — "
|
|
1750
|
+
|
|
1751
|
+
expected << %{<select id="post_updated_at_4i" name="post[updated_at(4i)]" class="selector">\n}
|
|
1752
|
+
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}
|
|
1753
|
+
expected << "</select>\n"
|
|
1754
|
+
expected << " : "
|
|
1755
|
+
expected << %{<select id="post_updated_at_5i" name="post[updated_at(5i)]" class="selector">\n}
|
|
1756
|
+
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}
|
|
1757
|
+
expected << "</select>\n"
|
|
1758
|
+
|
|
1759
|
+
assert_dom_equal expected, datetime_select("post", "updated_at", {}, :class => 'selector')
|
|
1760
|
+
end
|
|
1761
|
+
|
|
1762
|
+
uses_mocha 'TestInstanceTagDefaultTimeFromOptions' do
|
|
1763
|
+
def test_instance_tag_default_time_from_options_uses_time_current_as_default_when_hash_passed_as_arg
|
|
1764
|
+
dummy_instance_tag = ActionView::Helpers::InstanceTag.new(1,2,3)
|
|
1765
|
+
Time.expects(:current).returns Time.now
|
|
1766
|
+
dummy_instance_tag.send!(:default_time_from_options, :hour => 2)
|
|
1767
|
+
end
|
|
1768
|
+
|
|
1769
|
+
def test_instance_tag_default_time_from_options_respects_hash_arg_settings_when_time_falls_in_system_local_dst_spring_gap
|
|
1770
|
+
with_env_tz('US/Central') do
|
|
1771
|
+
dummy_instance_tag = ActionView::Helpers::InstanceTag.new(1,2,3)
|
|
1772
|
+
Time.stubs(:now).returns Time.local(2006, 4, 2, 1)
|
|
1773
|
+
assert_equal 2, dummy_instance_tag.send!(:default_time_from_options, :hour => 2).hour
|
|
1774
|
+
end
|
|
1775
|
+
end
|
|
1776
|
+
|
|
1777
|
+
def test_instance_tag_default_time_from_options_handles_far_future_date
|
|
1778
|
+
dummy_instance_tag = ActionView::Helpers::InstanceTag.new(1,2,3)
|
|
1779
|
+
time = dummy_instance_tag.send!(:default_time_from_options, :year => 2050, :month => 2, :day => 10, :hour => 15, :min => 30, :sec => 45)
|
|
1780
|
+
assert_equal 2050, time.year
|
|
1781
|
+
end
|
|
1782
|
+
end
|
|
1783
|
+
|
|
1784
|
+
protected
|
|
1785
|
+
def with_env_tz(new_tz = 'US/Eastern')
|
|
1786
|
+
old_tz, ENV['TZ'] = ENV['TZ'], new_tz
|
|
1787
|
+
yield
|
|
1788
|
+
ensure
|
|
1789
|
+
old_tz ? ENV['TZ'] = old_tz : ENV.delete('TZ')
|
|
1790
|
+
end
|
|
1791
|
+
end
|