actionpack 1.12.5 → 1.13.0
Sign up to get free protection for your applications and to get access to all the features.
Potentially problematic release.
This version of actionpack might be problematic. Click here for more details.
- data/CHANGELOG +517 -15
- data/MIT-LICENSE +1 -1
- data/README +18 -20
- data/Rakefile +7 -4
- data/examples/address_book_controller.rb +3 -3
- data/examples/blog_controller.cgi +3 -3
- data/examples/debate_controller.cgi +5 -5
- data/lib/action_controller.rb +2 -2
- data/lib/action_controller/assertions.rb +73 -311
- data/lib/action_controller/{deprecated_assertions.rb → assertions/deprecated_assertions.rb} +32 -8
- data/lib/action_controller/assertions/dom_assertions.rb +25 -0
- data/lib/action_controller/assertions/model_assertions.rb +12 -0
- data/lib/action_controller/assertions/response_assertions.rb +140 -0
- data/lib/action_controller/assertions/routing_assertions.rb +82 -0
- data/lib/action_controller/assertions/selector_assertions.rb +571 -0
- data/lib/action_controller/assertions/tag_assertions.rb +117 -0
- data/lib/action_controller/base.rb +334 -163
- data/lib/action_controller/benchmarking.rb +3 -6
- data/lib/action_controller/caching.rb +83 -22
- data/lib/action_controller/cgi_ext/cgi_ext.rb +0 -7
- data/lib/action_controller/cgi_ext/cgi_methods.rb +167 -173
- data/lib/action_controller/cgi_ext/raw_post_data_fix.rb +43 -22
- data/lib/action_controller/cgi_process.rb +50 -27
- data/lib/action_controller/components.rb +21 -25
- data/lib/action_controller/cookies.rb +10 -9
- data/lib/action_controller/{dependencies.rb → deprecated_dependencies.rb} +9 -27
- data/lib/action_controller/filters.rb +448 -225
- data/lib/action_controller/flash.rb +24 -20
- data/lib/action_controller/helpers.rb +2 -5
- data/lib/action_controller/integration.rb +40 -16
- data/lib/action_controller/layout.rb +11 -8
- data/lib/action_controller/macros/auto_complete.rb +3 -2
- data/lib/action_controller/macros/in_place_editing.rb +3 -2
- data/lib/action_controller/mime_responds.rb +41 -29
- data/lib/action_controller/mime_type.rb +68 -10
- data/lib/action_controller/pagination.rb +4 -3
- data/lib/action_controller/request.rb +22 -14
- data/lib/action_controller/rescue.rb +25 -22
- data/lib/action_controller/resources.rb +302 -0
- data/lib/action_controller/response.rb +20 -2
- data/lib/action_controller/response.rb.rej +17 -0
- data/lib/action_controller/routing.rb +1165 -567
- data/lib/action_controller/scaffolding.rb +30 -31
- data/lib/action_controller/session/active_record_store.rb +2 -0
- data/lib/action_controller/session/drb_store.rb +4 -0
- data/lib/action_controller/session/mem_cache_store.rb +4 -0
- data/lib/action_controller/session_management.rb +6 -9
- data/lib/action_controller/status_codes.rb +89 -0
- data/lib/action_controller/streaming.rb +6 -15
- data/lib/action_controller/templates/rescues/_request_and_response.rhtml +5 -5
- data/lib/action_controller/templates/rescues/diagnostics.rhtml +2 -2
- data/lib/action_controller/templates/rescues/routing_error.rhtml +4 -4
- data/lib/action_controller/templates/rescues/template_error.rhtml +1 -1
- data/lib/action_controller/templates/scaffolds/list.rhtml +1 -1
- data/lib/action_controller/test_process.rb +52 -30
- data/lib/action_controller/url_rewriter.rb +63 -29
- data/lib/action_controller/vendor/html-scanner/html/document.rb +1 -0
- data/lib/action_controller/vendor/html-scanner/html/node.rb +3 -4
- data/lib/action_controller/vendor/html-scanner/html/selector.rb +822 -0
- data/lib/action_controller/verification.rb +22 -11
- data/lib/action_pack.rb +1 -1
- data/lib/action_pack/version.rb +2 -2
- data/lib/action_view.rb +1 -1
- data/lib/action_view/base.rb +46 -43
- data/lib/action_view/compiled_templates.rb +1 -1
- data/lib/action_view/helpers/active_record_helper.rb +54 -17
- data/lib/action_view/helpers/asset_tag_helper.rb +97 -46
- data/lib/action_view/helpers/capture_helper.rb +1 -1
- data/lib/action_view/helpers/date_helper.rb +258 -136
- data/lib/action_view/helpers/debug_helper.rb +1 -1
- data/lib/action_view/helpers/deprecated_helper.rb +34 -0
- data/lib/action_view/helpers/form_helper.rb +75 -35
- data/lib/action_view/helpers/form_options_helper.rb +7 -5
- data/lib/action_view/helpers/form_tag_helper.rb +44 -6
- data/lib/action_view/helpers/java_script_macros_helper.rb +59 -46
- data/lib/action_view/helpers/javascript_helper.rb +71 -10
- data/lib/action_view/helpers/javascripts/controls.js +41 -23
- data/lib/action_view/helpers/javascripts/dragdrop.js +105 -76
- data/lib/action_view/helpers/javascripts/effects.js +293 -163
- data/lib/action_view/helpers/javascripts/prototype.js +897 -389
- data/lib/action_view/helpers/javascripts/prototype.js.rej +561 -0
- data/lib/action_view/helpers/number_helper.rb +111 -65
- data/lib/action_view/helpers/prototype_helper.rb +84 -109
- data/lib/action_view/helpers/scriptaculous_helper.rb +5 -0
- data/lib/action_view/helpers/tag_helper.rb +69 -16
- data/lib/action_view/helpers/text_helper.rb +149 -112
- data/lib/action_view/helpers/url_helper.rb +200 -107
- data/lib/action_view/template_error.rb +66 -42
- data/test/abstract_unit.rb +4 -2
- data/test/active_record_unit.rb +84 -56
- data/test/activerecord/active_record_assertions_test.rb +26 -18
- data/test/activerecord/active_record_store_test.rb +4 -36
- data/test/activerecord/pagination_test.rb +1 -6
- data/test/controller/action_pack_assertions_test.rb +230 -113
- data/test/controller/addresses_render_test.rb +2 -6
- data/test/controller/assert_select_test.rb +576 -0
- data/test/controller/base_test.rb +73 -3
- data/test/controller/caching_test.rb +228 -0
- data/test/controller/capture_test.rb +12 -10
- data/test/controller/cgi_test.rb +89 -12
- data/test/controller/components_test.rb +24 -2
- 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 +33 -25
- data/test/controller/deprecated_instance_variables_test.rb +48 -0
- data/test/controller/deprecation/deprecated_base_methods_test.rb +60 -0
- data/test/controller/fake_controllers.rb +0 -1
- data/test/controller/filters_test.rb +301 -16
- data/test/controller/flash_test.rb +19 -2
- data/test/controller/helper_test.rb +2 -2
- data/test/controller/integration_test.rb +154 -0
- data/test/controller/layout_test.rb +115 -1
- data/test/controller/mime_responds_test.rb +94 -0
- data/test/controller/mime_type_test.rb +9 -0
- data/test/controller/new_render_test.rb +161 -11
- data/test/controller/raw_post_test.rb +52 -15
- data/test/controller/redirect_test.rb +27 -14
- data/test/controller/render_test.rb +76 -29
- data/test/controller/request_test.rb +55 -4
- data/test/controller/resources_test.rb +274 -0
- data/test/controller/routing_test.rb +1533 -824
- data/test/controller/selector_test.rb +628 -0
- data/test/controller/send_file_test.rb +9 -1
- data/test/controller/session_management_test.rb +51 -0
- data/test/controller/test_test.rb +113 -29
- data/test/controller/url_rewriter_test.rb +86 -17
- data/test/controller/verification_test.rb +19 -17
- data/test/controller/webservice_test.rb +0 -7
- data/test/fixtures/content_type/render_default_content_types_for_respond_to.rhtml +1 -0
- data/test/fixtures/content_type/render_default_for_rhtml.rhtml +1 -0
- data/test/fixtures/content_type/render_default_for_rjs.rjs +1 -0
- data/test/fixtures/content_type/render_default_for_rxml.rxml +1 -0
- data/test/fixtures/deprecated_instance_variables/_cookies_ivar.rhtml +1 -0
- data/test/fixtures/deprecated_instance_variables/_cookies_method.rhtml +1 -0
- data/test/fixtures/deprecated_instance_variables/_flash_ivar.rhtml +1 -0
- data/test/fixtures/deprecated_instance_variables/_flash_method.rhtml +1 -0
- data/test/fixtures/deprecated_instance_variables/_headers_ivar.rhtml +1 -0
- data/test/fixtures/deprecated_instance_variables/_headers_method.rhtml +1 -0
- data/test/fixtures/deprecated_instance_variables/_params_ivar.rhtml +1 -0
- data/test/fixtures/deprecated_instance_variables/_params_method.rhtml +1 -0
- data/test/fixtures/deprecated_instance_variables/_request_ivar.rhtml +1 -0
- data/test/fixtures/deprecated_instance_variables/_request_method.rhtml +1 -0
- data/test/fixtures/deprecated_instance_variables/_response_ivar.rhtml +1 -0
- data/test/fixtures/deprecated_instance_variables/_response_method.rhtml +1 -0
- data/test/fixtures/deprecated_instance_variables/_session_ivar.rhtml +1 -0
- data/test/fixtures/deprecated_instance_variables/_session_method.rhtml +1 -0
- data/test/fixtures/multipart/binary_file +0 -0
- data/test/fixtures/public/javascripts/application.js +1 -0
- data/test/fixtures/test/_hello.rxml +1 -0
- data/test/fixtures/test/hello_world_container.rxml +3 -0
- data/test/fixtures/topic.rb +2 -2
- data/test/template/active_record_helper_test.rb +83 -12
- data/test/template/asset_tag_helper_test.rb +75 -95
- data/test/template/compiled_templates_test.rb +1 -0
- data/test/template/date_helper_test.rb +873 -181
- data/test/template/deprecated_helper_test.rb +36 -0
- data/test/template/deprecated_instance_variables_test.rb +43 -0
- data/test/template/form_helper_test.rb +77 -1
- data/test/template/form_options_helper_test.rb +4 -0
- data/test/template/form_tag_helper_test.rb +66 -2
- data/test/template/java_script_macros_helper_test.rb +4 -1
- data/test/template/javascript_helper_test.rb +29 -0
- data/test/template/number_helper_test.rb +63 -27
- data/test/template/prototype_helper_test.rb +77 -34
- data/test/template/tag_helper_test.rb +34 -6
- data/test/template/text_helper_test.rb +69 -34
- data/test/template/url_helper_test.rb +168 -16
- data/test/testing_sandbox.rb +7 -22
- metadata +66 -20
- data/filler.txt +0 -50
- data/lib/action_controller/code_generation.rb +0 -235
- data/lib/action_controller/vendor/xml_simple.rb +0 -1019
- data/test/controller/caching_filestore.rb +0 -74
- data/test/fixtures/application_root/app/controllers/a_class_that_contains_a_controller/poorly_placed_controller.rb +0 -7
- data/test/fixtures/application_root/app/controllers/module_that_holds_controllers/nested_controller.rb +0 -3
- data/test/fixtures/application_root/app/models/a_class_that_contains_a_controller.rb +0 -7
- data/test/fixtures/dont_load.rb +0 -3
@@ -1,5 +1,6 @@
|
|
1
1
|
require 'test/unit'
|
2
2
|
require File.dirname(__FILE__) + '/../../lib/action_view/helpers/date_helper'
|
3
|
+
require File.dirname(__FILE__) + '/../../lib/action_view/compiled_templates'
|
3
4
|
require File.dirname(__FILE__) + "/../abstract_unit"
|
4
5
|
|
5
6
|
class CompiledTemplateTests < Test::Unit::TestCase
|
@@ -6,56 +6,101 @@ class DateHelperTest < Test::Unit::TestCase
|
|
6
6
|
include ActionView::Helpers::FormHelper
|
7
7
|
|
8
8
|
silence_warnings do
|
9
|
-
Post = Struct.new("Post", :written_on, :updated_at)
|
9
|
+
Post = Struct.new("Post", :id, :written_on, :updated_at)
|
10
|
+
Post.class_eval do
|
11
|
+
def id
|
12
|
+
123
|
13
|
+
end
|
14
|
+
def id_before_type_cast
|
15
|
+
123
|
16
|
+
end
|
17
|
+
end
|
10
18
|
end
|
11
19
|
|
12
20
|
def test_distance_in_words
|
13
|
-
from = Time.mktime(2004, 3, 6, 21,
|
14
|
-
|
15
|
-
|
16
|
-
assert_equal "5
|
17
|
-
assert_equal "
|
18
|
-
assert_equal "
|
19
|
-
assert_equal "
|
20
|
-
assert_equal "
|
21
|
-
|
22
|
-
|
23
|
-
assert_equal "
|
24
|
-
assert_equal "less than
|
25
|
-
assert_equal "less than
|
26
|
-
assert_equal "
|
27
|
-
assert_equal "
|
28
|
-
|
29
|
-
|
30
|
-
assert_equal "
|
31
|
-
assert_equal "
|
32
|
-
assert_equal "
|
33
|
-
|
21
|
+
from = Time.mktime(2004, 3, 6, 21, 45, 0)
|
22
|
+
|
23
|
+
# 0..1 with include_seconds
|
24
|
+
assert_equal "less than 5 seconds", distance_of_time_in_words(from, from + 0.seconds, true)
|
25
|
+
assert_equal "less than 5 seconds", distance_of_time_in_words(from, from + 4.seconds, true)
|
26
|
+
assert_equal "less than 10 seconds", distance_of_time_in_words(from, from + 5.seconds, true)
|
27
|
+
assert_equal "less than 10 seconds", distance_of_time_in_words(from, from + 9.seconds, true)
|
28
|
+
assert_equal "less than 20 seconds", distance_of_time_in_words(from, from + 10.seconds, true)
|
29
|
+
assert_equal "less than 20 seconds", distance_of_time_in_words(from, from + 19.seconds, true)
|
30
|
+
assert_equal "half a minute", distance_of_time_in_words(from, from + 20.seconds, true)
|
31
|
+
assert_equal "half a minute", distance_of_time_in_words(from, from + 39.seconds, true)
|
32
|
+
assert_equal "less than a minute", distance_of_time_in_words(from, from + 40.seconds, true)
|
33
|
+
assert_equal "less than a minute", distance_of_time_in_words(from, from + 59.seconds, true)
|
34
|
+
assert_equal "1 minute", distance_of_time_in_words(from, from + 60.seconds, true)
|
35
|
+
assert_equal "1 minute", distance_of_time_in_words(from, from + 89.seconds, true)
|
36
|
+
|
37
|
+
# First case 0..1
|
38
|
+
assert_equal "less than a minute", distance_of_time_in_words(from, from + 0.seconds)
|
39
|
+
assert_equal "less than a minute", distance_of_time_in_words(from, from + 29.seconds)
|
40
|
+
assert_equal "1 minute", distance_of_time_in_words(from, from + 30.seconds)
|
41
|
+
assert_equal "1 minute", distance_of_time_in_words(from, from + 1.minutes + 29.seconds)
|
42
|
+
|
43
|
+
# 2..44
|
44
|
+
assert_equal "2 minutes", distance_of_time_in_words(from, from + 1.minutes + 30.seconds)
|
45
|
+
assert_equal "44 minutes", distance_of_time_in_words(from, from + 44.minutes + 29.seconds)
|
46
|
+
|
47
|
+
# 45..89
|
48
|
+
assert_equal "about 1 hour", distance_of_time_in_words(from, from + 44.minutes + 30.seconds)
|
49
|
+
assert_equal "about 1 hour", distance_of_time_in_words(from, from + 89.minutes + 29.seconds)
|
50
|
+
|
51
|
+
# 90..1439
|
52
|
+
assert_equal "about 2 hours", distance_of_time_in_words(from, from + 89.minutes + 30.seconds)
|
53
|
+
assert_equal "about 24 hours", distance_of_time_in_words(from, from + 23.hours + 59.minutes + 29.seconds)
|
54
|
+
|
55
|
+
# 1440..2879
|
56
|
+
assert_equal "1 day", distance_of_time_in_words(from, from + 23.hours + 59.minutes + 30.seconds)
|
57
|
+
assert_equal "1 day", distance_of_time_in_words(from, from + 47.hours + 59.minutes + 29.seconds)
|
58
|
+
|
59
|
+
# 2880..43199
|
60
|
+
assert_equal "2 days", distance_of_time_in_words(from, from + 47.hours + 59.minutes + 30.seconds)
|
61
|
+
assert_equal "29 days", distance_of_time_in_words(from, from + 29.days + 23.hours + 59.minutes + 29.seconds)
|
62
|
+
|
63
|
+
# 43200..86399
|
64
|
+
assert_equal "about 1 month", distance_of_time_in_words(from, from + 29.days + 23.hours + 59.minutes + 30.seconds)
|
65
|
+
assert_equal "about 1 month", distance_of_time_in_words(from, from + 59.days + 23.hours + 59.minutes + 29.seconds)
|
66
|
+
|
67
|
+
# 86400..525959
|
68
|
+
assert_equal "2 months", distance_of_time_in_words(from, from + 59.days + 23.hours + 59.minutes + 30.seconds)
|
69
|
+
assert_equal "12 months", distance_of_time_in_words(from, from + 1.years - 31.seconds)
|
70
|
+
|
71
|
+
# 525960..1051919
|
72
|
+
assert_equal "about 1 year", distance_of_time_in_words(from, from + 1.years - 30.seconds)
|
73
|
+
assert_equal "about 1 year", distance_of_time_in_words(from, from + 2.years - 31.seconds)
|
74
|
+
|
75
|
+
# > 1051920
|
76
|
+
assert_equal "over 2 years", distance_of_time_in_words(from, from + 2.years - 30.seconds)
|
77
|
+
assert_equal "over 10 years", distance_of_time_in_words(from, from + 10.years)
|
78
|
+
|
34
79
|
# test to < from
|
35
|
-
assert_equal "about 4 hours", distance_of_time_in_words(
|
36
|
-
assert_equal "less than 20 seconds", distance_of_time_in_words(
|
37
|
-
|
80
|
+
assert_equal "about 4 hours", distance_of_time_in_words(from + 4.hours, from)
|
81
|
+
assert_equal "less than 20 seconds", distance_of_time_in_words(from + 19.seconds, from, true)
|
82
|
+
|
38
83
|
# test with integers
|
39
|
-
assert_equal "less than a minute", distance_of_time_in_words(
|
84
|
+
assert_equal "less than a minute", distance_of_time_in_words(59)
|
40
85
|
assert_equal "about 1 hour", distance_of_time_in_words(60*60)
|
41
|
-
|
42
|
-
# more cumbersome test with integers
|
43
|
-
assert_equal "less than a minute", distance_of_time_in_words(0, 50)
|
86
|
+
assert_equal "less than a minute", distance_of_time_in_words(0, 59)
|
44
87
|
assert_equal "about 1 hour", distance_of_time_in_words(60*60, 0)
|
45
|
-
|
46
88
|
end
|
47
89
|
|
48
|
-
def
|
90
|
+
def test_distance_in_words_with_dates
|
49
91
|
start_date = Date.new 1975, 1, 31
|
50
|
-
end_date = Date.new 1977,
|
51
|
-
|
52
|
-
|
92
|
+
end_date = Date.new 1977, 1, 31
|
93
|
+
assert_equal("over 2 years", distance_of_time_in_words(start_date, end_date))
|
94
|
+
end
|
95
|
+
|
96
|
+
def test_time_ago_in_words
|
97
|
+
t = Time.now - 1.years
|
98
|
+
assert_equal "about 1 year", time_ago_in_words(t)
|
53
99
|
end
|
54
100
|
|
55
101
|
def test_select_day
|
56
|
-
expected = %(<select name="date[day]">\n)
|
57
|
-
expected <<
|
58
|
-
%(<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)
|
102
|
+
expected = %(<select id="date_day" name="date[day]">\n)
|
103
|
+
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)
|
59
104
|
expected << "</select>\n"
|
60
105
|
|
61
106
|
assert_equal expected, select_day(Time.mktime(2003, 8, 16))
|
@@ -63,26 +108,24 @@ class DateHelperTest < Test::Unit::TestCase
|
|
63
108
|
end
|
64
109
|
|
65
110
|
def test_select_day_with_blank
|
66
|
-
expected = %(<select name="date[day]">\n)
|
67
|
-
expected <<
|
68
|
-
%(<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)
|
111
|
+
expected = %(<select id="date_day" name="date[day]">\n)
|
112
|
+
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)
|
69
113
|
expected << "</select>\n"
|
70
114
|
|
71
115
|
assert_equal expected, select_day(Time.mktime(2003, 8, 16), :include_blank => true)
|
72
116
|
assert_equal expected, select_day(16, :include_blank => true)
|
73
117
|
end
|
74
|
-
|
118
|
+
|
75
119
|
def test_select_day_nil_with_blank
|
76
|
-
expected = %(<select name="date[day]">\n)
|
77
|
-
expected <<
|
78
|
-
%(<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)
|
120
|
+
expected = %(<select id="date_day" name="date[day]">\n)
|
121
|
+
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)
|
79
122
|
expected << "</select>\n"
|
80
123
|
|
81
124
|
assert_equal expected, select_day(nil, :include_blank => true)
|
82
125
|
end
|
83
126
|
|
84
127
|
def test_select_month
|
85
|
-
expected = %(<select name="date[month]">\n)
|
128
|
+
expected = %(<select id="date_month" name="date[month]">\n)
|
86
129
|
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)
|
87
130
|
expected << "</select>\n"
|
88
131
|
|
@@ -91,7 +134,7 @@ class DateHelperTest < Test::Unit::TestCase
|
|
91
134
|
end
|
92
135
|
|
93
136
|
def test_select_month_with_disabled
|
94
|
-
expected = %(<select name="date[month]" disabled="disabled">\n)
|
137
|
+
expected = %(<select id="date_month" name="date[month]" disabled="disabled">\n)
|
95
138
|
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)
|
96
139
|
expected << "</select>\n"
|
97
140
|
|
@@ -100,7 +143,7 @@ class DateHelperTest < Test::Unit::TestCase
|
|
100
143
|
end
|
101
144
|
|
102
145
|
def test_select_month_with_field_name_override
|
103
|
-
expected = %(<select name="date[mois]">\n)
|
146
|
+
expected = %(<select id="date_mois" name="date[mois]">\n)
|
104
147
|
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)
|
105
148
|
expected << "</select>\n"
|
106
149
|
|
@@ -109,7 +152,7 @@ class DateHelperTest < Test::Unit::TestCase
|
|
109
152
|
end
|
110
153
|
|
111
154
|
def test_select_month_with_blank
|
112
|
-
expected = %(<select name="date[month]">\n)
|
155
|
+
expected = %(<select id="date_month" name="date[month]">\n)
|
113
156
|
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)
|
114
157
|
expected << "</select>\n"
|
115
158
|
|
@@ -118,7 +161,7 @@ class DateHelperTest < Test::Unit::TestCase
|
|
118
161
|
end
|
119
162
|
|
120
163
|
def test_select_month_nil_with_blank
|
121
|
-
expected = %(<select name="date[month]">\n)
|
164
|
+
expected = %(<select id="date_month" name="date[month]">\n)
|
122
165
|
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)
|
123
166
|
expected << "</select>\n"
|
124
167
|
|
@@ -126,7 +169,7 @@ class DateHelperTest < Test::Unit::TestCase
|
|
126
169
|
end
|
127
170
|
|
128
171
|
def test_select_month_with_numbers
|
129
|
-
expected = %(<select name="date[month]">\n)
|
172
|
+
expected = %(<select id="date_month" name="date[month]">\n)
|
130
173
|
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)
|
131
174
|
expected << "</select>\n"
|
132
175
|
|
@@ -135,7 +178,7 @@ class DateHelperTest < Test::Unit::TestCase
|
|
135
178
|
end
|
136
179
|
|
137
180
|
def test_select_month_with_numbers_and_names
|
138
|
-
expected = %(<select name="date[month]">\n)
|
181
|
+
expected = %(<select id="date_month" name="date[month]">\n)
|
139
182
|
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)
|
140
183
|
expected << "</select>\n"
|
141
184
|
|
@@ -144,7 +187,7 @@ class DateHelperTest < Test::Unit::TestCase
|
|
144
187
|
end
|
145
188
|
|
146
189
|
def test_select_month_with_numbers_and_names_with_abbv
|
147
|
-
expected = %(<select name="date[month]">\n)
|
190
|
+
expected = %(<select id="date_month" name="date[month]">\n)
|
148
191
|
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)
|
149
192
|
expected << "</select>\n"
|
150
193
|
|
@@ -153,7 +196,7 @@ class DateHelperTest < Test::Unit::TestCase
|
|
153
196
|
end
|
154
197
|
|
155
198
|
def test_select_month_with_abbv
|
156
|
-
expected = %(<select name="date[month]">\n)
|
199
|
+
expected = %(<select id="date_month" name="date[month]">\n)
|
157
200
|
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)
|
158
201
|
expected << "</select>\n"
|
159
202
|
|
@@ -161,95 +204,117 @@ class DateHelperTest < Test::Unit::TestCase
|
|
161
204
|
assert_equal expected, select_month(8, :use_short_month => true)
|
162
205
|
end
|
163
206
|
|
207
|
+
def test_select_month_with_custom_names
|
208
|
+
month_names = %w(nil Januar Februar Marts April Maj Juni Juli August September Oktober November December)
|
209
|
+
|
210
|
+
expected = %(<select id="date_month" name="date[month]">\n)
|
211
|
+
1.upto(12) { |month| expected << %(<option value="#{month}"#{' selected="selected"' if month == 8}>#{month_names[month]}</option>\n) }
|
212
|
+
expected << "</select>\n"
|
213
|
+
|
214
|
+
assert_equal expected, select_month(Time.mktime(2003, 8, 16), :use_month_names => month_names)
|
215
|
+
assert_equal expected, select_month(8, :use_month_names => month_names)
|
216
|
+
end
|
217
|
+
|
218
|
+
def test_select_month_with_zero_indexed_custom_names
|
219
|
+
month_names = %w(Januar Februar Marts April Maj Juni Juli August September Oktober November December)
|
220
|
+
|
221
|
+
expected = %(<select id="date_month" name="date[month]">\n)
|
222
|
+
1.upto(12) { |month| expected << %(<option value="#{month}"#{' selected="selected"' if month == 8}>#{month_names[month-1]}</option>\n) }
|
223
|
+
expected << "</select>\n"
|
224
|
+
|
225
|
+
assert_equal expected, select_month(Time.mktime(2003, 8, 16), :use_month_names => month_names)
|
226
|
+
assert_equal expected, select_month(8, :use_month_names => month_names)
|
227
|
+
end
|
228
|
+
|
164
229
|
def test_select_year
|
165
|
-
expected = %(<select name="date[year]">\n)
|
230
|
+
expected = %(<select id="date_year" name="date[year]">\n)
|
166
231
|
expected << %(<option value="2003" selected="selected">2003</option>\n<option value="2004">2004</option>\n<option value="2005">2005</option>\n)
|
167
232
|
expected << "</select>\n"
|
168
|
-
|
233
|
+
|
169
234
|
assert_equal expected, select_year(Time.mktime(2003, 8, 16), :start_year => 2003, :end_year => 2005)
|
170
235
|
assert_equal expected, select_year(2003, :start_year => 2003, :end_year => 2005)
|
171
236
|
end
|
172
237
|
|
173
238
|
def test_select_year_with_disabled
|
174
|
-
expected = %(<select name="date[year]" disabled="disabled">\n)
|
239
|
+
expected = %(<select id="date_year" name="date[year]" disabled="disabled">\n)
|
175
240
|
expected << %(<option value="2003" selected="selected">2003</option>\n<option value="2004">2004</option>\n<option value="2005">2005</option>\n)
|
176
241
|
expected << "</select>\n"
|
177
|
-
|
242
|
+
|
178
243
|
assert_equal expected, select_year(Time.mktime(2003, 8, 16), :disabled => true, :start_year => 2003, :end_year => 2005)
|
179
244
|
assert_equal expected, select_year(2003, :disabled => true, :start_year => 2003, :end_year => 2005)
|
180
245
|
end
|
181
246
|
|
182
247
|
def test_select_year_with_field_name_override
|
183
|
-
expected = %(<select name="date[annee]">\n)
|
248
|
+
expected = %(<select id="date_annee" name="date[annee]">\n)
|
184
249
|
expected << %(<option value="2003" selected="selected">2003</option>\n<option value="2004">2004</option>\n<option value="2005">2005</option>\n)
|
185
250
|
expected << "</select>\n"
|
186
|
-
|
251
|
+
|
187
252
|
assert_equal expected, select_year(Time.mktime(2003, 8, 16), :start_year => 2003, :end_year => 2005, :field_name => 'annee')
|
188
253
|
assert_equal expected, select_year(2003, :start_year => 2003, :end_year => 2005, :field_name => 'annee')
|
189
254
|
end
|
190
|
-
|
255
|
+
|
191
256
|
def test_select_year_with_type_discarding
|
192
|
-
expected = %(<select name="date_year">\n)
|
257
|
+
expected = %(<select id="date_year" name="date_year">\n)
|
193
258
|
expected << %(<option value="2003" selected="selected">2003</option>\n<option value="2004">2004</option>\n<option value="2005">2005</option>\n)
|
194
259
|
expected << "</select>\n"
|
195
|
-
|
260
|
+
|
196
261
|
assert_equal expected, select_year(
|
197
262
|
Time.mktime(2003, 8, 16), :prefix => "date_year", :discard_type => true, :start_year => 2003, :end_year => 2005)
|
198
263
|
assert_equal expected, select_year(
|
199
264
|
2003, :prefix => "date_year", :discard_type => true, :start_year => 2003, :end_year => 2005)
|
200
265
|
end
|
201
|
-
|
266
|
+
|
202
267
|
def test_select_year_descending
|
203
|
-
expected = %(<select name="date[year]">\n)
|
268
|
+
expected = %(<select id="date_year" name="date[year]">\n)
|
204
269
|
expected << %(<option value="2005" selected="selected">2005</option>\n<option value="2004">2004</option>\n<option value="2003">2003</option>\n)
|
205
270
|
expected << "</select>\n"
|
206
|
-
|
271
|
+
|
207
272
|
assert_equal expected, select_year(Time.mktime(2005, 8, 16), :start_year => 2005, :end_year => 2003)
|
208
273
|
assert_equal expected, select_year(2005, :start_year => 2005, :end_year => 2003)
|
209
274
|
end
|
210
275
|
|
211
276
|
def test_select_hour
|
212
|
-
expected = %(<select name="date[hour]">\n)
|
277
|
+
expected = %(<select id="date_hour" name="date[hour]">\n)
|
213
278
|
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)
|
214
279
|
expected << "</select>\n"
|
215
|
-
|
280
|
+
|
216
281
|
assert_equal expected, select_hour(Time.mktime(2003, 8, 16, 8, 4, 18))
|
217
282
|
end
|
218
283
|
|
219
284
|
def test_select_hour_with_disabled
|
220
|
-
expected = %(<select name="date[hour]" disabled="disabled">\n)
|
285
|
+
expected = %(<select id="date_hour" name="date[hour]" disabled="disabled">\n)
|
221
286
|
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)
|
222
287
|
expected << "</select>\n"
|
223
|
-
|
288
|
+
|
224
289
|
assert_equal expected, select_hour(Time.mktime(2003, 8, 16, 8, 4, 18), :disabled => true)
|
225
290
|
end
|
226
|
-
|
291
|
+
|
227
292
|
def test_select_hour_with_field_name_override
|
228
|
-
expected = %(<select name="date[heure]">\n)
|
293
|
+
expected = %(<select id="date_heure" name="date[heure]">\n)
|
229
294
|
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)
|
230
295
|
expected << "</select>\n"
|
231
|
-
|
296
|
+
|
232
297
|
assert_equal expected, select_hour(Time.mktime(2003, 8, 16, 8, 4, 18), :field_name => 'heure')
|
233
298
|
end
|
234
299
|
|
235
300
|
def test_select_hour_with_blank
|
236
|
-
expected = %(<select name="date[hour]">\n)
|
301
|
+
expected = %(<select id="date_hour" name="date[hour]">\n)
|
237
302
|
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)
|
238
303
|
expected << "</select>\n"
|
239
|
-
|
304
|
+
|
240
305
|
assert_equal expected, select_hour(Time.mktime(2003, 8, 16, 8, 4, 18), :include_blank => true)
|
241
306
|
end
|
242
307
|
|
243
308
|
def test_select_hour_nil_with_blank
|
244
|
-
expected = %(<select name="date[hour]">\n)
|
309
|
+
expected = %(<select id="date_hour" name="date[hour]">\n)
|
245
310
|
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)
|
246
311
|
expected << "</select>\n"
|
247
|
-
|
312
|
+
|
248
313
|
assert_equal expected, select_hour(nil, :include_blank => true)
|
249
314
|
end
|
250
315
|
|
251
316
|
def test_select_minute
|
252
|
-
expected = %(<select name="date[minute]">\n)
|
317
|
+
expected = %(<select id="date_minute" name="date[minute]">\n)
|
253
318
|
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)
|
254
319
|
expected << "</select>\n"
|
255
320
|
|
@@ -257,7 +322,7 @@ class DateHelperTest < Test::Unit::TestCase
|
|
257
322
|
end
|
258
323
|
|
259
324
|
def test_select_minute_with_disabled
|
260
|
-
expected = %(<select name="date[minute]" disabled="disabled">\n)
|
325
|
+
expected = %(<select id="date_minute" name="date[minute]" disabled="disabled">\n)
|
261
326
|
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)
|
262
327
|
expected << "</select>\n"
|
263
328
|
|
@@ -265,7 +330,7 @@ class DateHelperTest < Test::Unit::TestCase
|
|
265
330
|
end
|
266
331
|
|
267
332
|
def test_select_minute_with_field_name_override
|
268
|
-
expected = %(<select name="date[minuto]">\n)
|
333
|
+
expected = %(<select id="date_minuto" name="date[minuto]">\n)
|
269
334
|
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)
|
270
335
|
expected << "</select>\n"
|
271
336
|
|
@@ -273,7 +338,7 @@ class DateHelperTest < Test::Unit::TestCase
|
|
273
338
|
end
|
274
339
|
|
275
340
|
def test_select_minute_with_blank
|
276
|
-
expected = %(<select name="date[minute]">\n)
|
341
|
+
expected = %(<select id="date_minute" name="date[minute]">\n)
|
277
342
|
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)
|
278
343
|
expected << "</select>\n"
|
279
344
|
|
@@ -281,7 +346,7 @@ class DateHelperTest < Test::Unit::TestCase
|
|
281
346
|
end
|
282
347
|
|
283
348
|
def test_select_minute_with_blank_and_step
|
284
|
-
expected = %(<select name="date[minute]">\n)
|
349
|
+
expected = %(<select id="date_minute" name="date[minute]">\n)
|
285
350
|
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)
|
286
351
|
expected << "</select>\n"
|
287
352
|
|
@@ -289,7 +354,7 @@ class DateHelperTest < Test::Unit::TestCase
|
|
289
354
|
end
|
290
355
|
|
291
356
|
def test_select_minute_nil_with_blank
|
292
|
-
expected = %(<select name="date[minute]">\n)
|
357
|
+
expected = %(<select id="date_minute" name="date[minute]">\n)
|
293
358
|
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)
|
294
359
|
expected << "</select>\n"
|
295
360
|
|
@@ -297,39 +362,39 @@ class DateHelperTest < Test::Unit::TestCase
|
|
297
362
|
end
|
298
363
|
|
299
364
|
def test_select_minute_nil_with_blank_and_step
|
300
|
-
expected = %(<select name="date[minute]">\n)
|
365
|
+
expected = %(<select id="date_minute" name="date[minute]">\n)
|
301
366
|
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)
|
302
367
|
expected << "</select>\n"
|
303
368
|
|
304
369
|
assert_equal expected, select_minute(nil, { :include_blank => true , :minute_step => 15 })
|
305
370
|
end
|
306
|
-
|
371
|
+
|
307
372
|
def test_select_second
|
308
|
-
expected = %(<select name="date[second]">\n)
|
373
|
+
expected = %(<select id="date_second" name="date[second]">\n)
|
309
374
|
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)
|
310
375
|
expected << "</select>\n"
|
311
376
|
|
312
377
|
assert_equal expected, select_second(Time.mktime(2003, 8, 16, 8, 4, 18))
|
313
378
|
end
|
314
|
-
|
379
|
+
|
315
380
|
def test_select_second_with_disabled
|
316
|
-
expected = %(<select name="date[second]" disabled="disabled">\n)
|
381
|
+
expected = %(<select id="date_second" name="date[second]" disabled="disabled">\n)
|
317
382
|
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)
|
318
383
|
expected << "</select>\n"
|
319
384
|
|
320
385
|
assert_equal expected, select_second(Time.mktime(2003, 8, 16, 8, 4, 18), :disabled => true)
|
321
386
|
end
|
322
|
-
|
387
|
+
|
323
388
|
def test_select_second_with_field_name_override
|
324
|
-
expected = %(<select name="date[segundo]">\n)
|
389
|
+
expected = %(<select id="date_segundo" name="date[segundo]">\n)
|
325
390
|
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)
|
326
391
|
expected << "</select>\n"
|
327
392
|
|
328
393
|
assert_equal expected, select_second(Time.mktime(2003, 8, 16, 8, 4, 18), :field_name => 'segundo')
|
329
394
|
end
|
330
|
-
|
395
|
+
|
331
396
|
def test_select_second_with_blank
|
332
|
-
expected = %(<select name="date[second]">\n)
|
397
|
+
expected = %(<select id="date_second" name="date[second]">\n)
|
333
398
|
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)
|
334
399
|
expected << "</select>\n"
|
335
400
|
|
@@ -337,53 +402,81 @@ class DateHelperTest < Test::Unit::TestCase
|
|
337
402
|
end
|
338
403
|
|
339
404
|
def test_select_second_nil_with_blank
|
340
|
-
expected = %(<select name="date[second]">\n)
|
405
|
+
expected = %(<select id="date_second" name="date[second]">\n)
|
341
406
|
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)
|
342
407
|
expected << "</select>\n"
|
343
408
|
|
344
409
|
assert_equal expected, select_second(nil, :include_blank => true)
|
345
410
|
end
|
346
|
-
|
411
|
+
|
347
412
|
def test_select_date
|
348
|
-
expected = %(<select name="date[first][year]">\n)
|
413
|
+
expected = %(<select id="date_first_year" name="date[first][year]">\n)
|
349
414
|
expected << %(<option value="2003" selected="selected">2003</option>\n<option value="2004">2004</option>\n<option value="2005">2005</option>\n)
|
350
415
|
expected << "</select>\n"
|
351
416
|
|
352
|
-
expected << %(<select name="date[first][month]">\n)
|
417
|
+
expected << %(<select id="date_first_month" name="date[first][month]">\n)
|
353
418
|
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)
|
354
419
|
expected << "</select>\n"
|
355
420
|
|
356
|
-
expected << %(<select name="date[first][day]">\n)
|
357
|
-
expected <<
|
358
|
-
%(<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)
|
421
|
+
expected << %(<select id="date_first_day" name="date[first][day]">\n)
|
422
|
+
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)
|
359
423
|
expected << "</select>\n"
|
360
|
-
|
361
|
-
assert_equal expected, select_date(
|
362
|
-
|
363
|
-
|
424
|
+
|
425
|
+
assert_equal expected, select_date(Time.mktime(2003, 8, 16), :start_year => 2003, :end_year => 2005, :prefix => "date[first]")
|
426
|
+
end
|
427
|
+
|
428
|
+
def test_select_date_with_order
|
429
|
+
expected = %(<select id="date_first_month" name="date[first][month]">\n)
|
430
|
+
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)
|
431
|
+
expected << "</select>\n"
|
432
|
+
|
433
|
+
expected << %(<select id="date_first_day" name="date[first][day]">\n)
|
434
|
+
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)
|
435
|
+
expected << "</select>\n"
|
436
|
+
|
437
|
+
expected << %(<select id="date_first_year" name="date[first][year]">\n)
|
438
|
+
expected << %(<option value="2003" selected="selected">2003</option>\n<option value="2004">2004</option>\n<option value="2005">2005</option>\n)
|
439
|
+
expected << "</select>\n"
|
440
|
+
|
441
|
+
assert_equal expected, select_date(Time.mktime(2003, 8, 16), :start_year => 2003, :end_year => 2005, :prefix => "date[first]", :order => [:month, :day, :year])
|
442
|
+
end
|
443
|
+
|
444
|
+
def test_select_date_with_incomplete_order
|
445
|
+
expected = %(<select id="date_first_day" name="date[first][day]">\n)
|
446
|
+
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)
|
447
|
+
expected << "</select>\n"
|
448
|
+
|
449
|
+
expected << %(<select id="date_first_year" name="date[first][year]">\n)
|
450
|
+
expected << %(<option value="2003" selected="selected">2003</option>\n<option value="2004">2004</option>\n<option value="2005">2005</option>\n)
|
451
|
+
expected << "</select>\n"
|
452
|
+
|
453
|
+
expected << %(<select id="date_first_month" name="date[first][month]">\n)
|
454
|
+
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)
|
455
|
+
expected << "</select>\n"
|
456
|
+
|
457
|
+
assert_equal expected, select_date(Time.mktime(2003, 8, 16), :start_year => 2003, :end_year => 2005, :prefix => "date[first]", :order => [:day])
|
364
458
|
end
|
365
459
|
|
366
460
|
def test_select_date_with_disabled
|
367
|
-
expected = %(<select name="date[first][year]" disabled="disabled">\n)
|
461
|
+
expected = %(<select id="date_first_year" name="date[first][year]" disabled="disabled">\n)
|
368
462
|
expected << %(<option value="2003" selected="selected">2003</option>\n<option value="2004">2004</option>\n<option value="2005">2005</option>\n)
|
369
463
|
expected << "</select>\n"
|
370
464
|
|
371
|
-
expected << %(<select name="date[first][month]" disabled="disabled">\n)
|
465
|
+
expected << %(<select id="date_first_month" name="date[first][month]" disabled="disabled">\n)
|
372
466
|
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)
|
373
467
|
expected << "</select>\n"
|
374
468
|
|
375
|
-
expected << %(<select name="date[first][day]" disabled="disabled">\n)
|
469
|
+
expected << %(<select id="date_first_day" name="date[first][day]" disabled="disabled">\n)
|
376
470
|
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)
|
377
471
|
expected << "</select>\n"
|
378
|
-
|
472
|
+
|
379
473
|
assert_equal expected, select_date(Time.mktime(2003, 8, 16), :start_year => 2003, :end_year => 2005, :prefix => "date[first]", :disabled => true)
|
380
474
|
end
|
381
475
|
|
382
|
-
|
383
476
|
def test_select_date_with_no_start_year
|
384
|
-
expected = %(<select name="date[first][year]">\n)
|
477
|
+
expected = %(<select id="date_first_year" name="date[first][year]">\n)
|
385
478
|
(Date.today.year-5).upto(Date.today.year+1) do |y|
|
386
|
-
if y == Date.today.year
|
479
|
+
if y == Date.today.year
|
387
480
|
expected << %(<option value="#{y}" selected="selected">#{y}</option>\n)
|
388
481
|
else
|
389
482
|
expected << %(<option value="#{y}">#{y}</option>\n)
|
@@ -391,22 +484,21 @@ class DateHelperTest < Test::Unit::TestCase
|
|
391
484
|
end
|
392
485
|
expected << "</select>\n"
|
393
486
|
|
394
|
-
expected << %(<select name="date[first][month]">\n)
|
487
|
+
expected << %(<select id="date_first_month" name="date[first][month]">\n)
|
395
488
|
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)
|
396
489
|
expected << "</select>\n"
|
397
490
|
|
398
|
-
expected << %(<select name="date[first][day]">\n)
|
399
|
-
expected <<
|
400
|
-
%(<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)
|
491
|
+
expected << %(<select id="date_first_day" name="date[first][day]">\n)
|
492
|
+
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)
|
401
493
|
expected << "</select>\n"
|
402
|
-
|
494
|
+
|
403
495
|
assert_equal expected, select_date(
|
404
496
|
Time.mktime(Date.today.year, 8, 16), :end_year => Date.today.year+1, :prefix => "date[first]"
|
405
497
|
)
|
406
498
|
end
|
407
499
|
|
408
500
|
def test_select_date_with_no_end_year
|
409
|
-
expected = %(<select name="date[first][year]">\n)
|
501
|
+
expected = %(<select id="date_first_year" name="date[first][year]">\n)
|
410
502
|
2003.upto(2008) do |y|
|
411
503
|
if y == 2003
|
412
504
|
expected << %(<option value="#{y}" selected="selected">#{y}</option>\n)
|
@@ -416,24 +508,23 @@ class DateHelperTest < Test::Unit::TestCase
|
|
416
508
|
end
|
417
509
|
expected << "</select>\n"
|
418
510
|
|
419
|
-
expected << %(<select name="date[first][month]">\n)
|
511
|
+
expected << %(<select id="date_first_month" name="date[first][month]">\n)
|
420
512
|
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)
|
421
513
|
expected << "</select>\n"
|
422
514
|
|
423
|
-
expected << %(<select name="date[first][day]">\n)
|
424
|
-
expected <<
|
425
|
-
%(<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)
|
515
|
+
expected << %(<select id="date_first_day" name="date[first][day]">\n)
|
516
|
+
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)
|
426
517
|
expected << "</select>\n"
|
427
|
-
|
518
|
+
|
428
519
|
assert_equal expected, select_date(
|
429
520
|
Time.mktime(2003, 8, 16), :start_year => 2003, :prefix => "date[first]"
|
430
521
|
)
|
431
522
|
end
|
432
523
|
|
433
524
|
def test_select_date_with_no_start_or_end_year
|
434
|
-
expected = %(<select name="date[first][year]">\n)
|
525
|
+
expected = %(<select id="date_first_year" name="date[first][year]">\n)
|
435
526
|
(Date.today.year-5).upto(Date.today.year+5) do |y|
|
436
|
-
if y == Date.today.year
|
527
|
+
if y == Date.today.year
|
437
528
|
expected << %(<option value="#{y}" selected="selected">#{y}</option>\n)
|
438
529
|
else
|
439
530
|
expected << %(<option value="#{y}">#{y}</option>\n)
|
@@ -441,190 +532,791 @@ class DateHelperTest < Test::Unit::TestCase
|
|
441
532
|
end
|
442
533
|
expected << "</select>\n"
|
443
534
|
|
444
|
-
expected << %(<select name="date[first][month]">\n)
|
535
|
+
expected << %(<select id="date_first_month" name="date[first][month]">\n)
|
445
536
|
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)
|
446
537
|
expected << "</select>\n"
|
447
538
|
|
448
|
-
expected << %(<select name="date[first][day]">\n)
|
449
|
-
expected <<
|
450
|
-
%(<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)
|
539
|
+
expected << %(<select id="date_first_day" name="date[first][day]">\n)
|
540
|
+
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)
|
451
541
|
expected << "</select>\n"
|
452
|
-
|
542
|
+
|
453
543
|
assert_equal expected, select_date(
|
454
544
|
Time.mktime(Date.today.year, 8, 16), :prefix => "date[first]"
|
455
545
|
)
|
456
546
|
end
|
457
547
|
|
548
|
+
def test_select_date_with_zero_value
|
549
|
+
expected = %(<select id="date_first_year" name="date[first][year]">\n)
|
550
|
+
expected << %(<option value="2003">2003</option>\n<option value="2004">2004</option>\n<option value="2005">2005</option>\n)
|
551
|
+
expected << "</select>\n"
|
552
|
+
|
553
|
+
expected << %(<select id="date_first_month" name="date[first][month]">\n)
|
554
|
+
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)
|
555
|
+
expected << "</select>\n"
|
556
|
+
|
557
|
+
expected << %(<select id="date_first_day" name="date[first][day]">\n)
|
558
|
+
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)
|
559
|
+
expected << "</select>\n"
|
560
|
+
|
561
|
+
assert_equal expected, select_date(0, :start_year => 2003, :end_year => 2005, :prefix => "date[first]")
|
562
|
+
end
|
563
|
+
|
564
|
+
def test_select_date_with_zero_value_and_no_start_year
|
565
|
+
expected = %(<select id="date_first_year" name="date[first][year]">\n)
|
566
|
+
(Date.today.year-5).upto(Date.today.year+1) { |y| expected << %(<option value="#{y}">#{y}</option>\n) }
|
567
|
+
expected << "</select>\n"
|
568
|
+
|
569
|
+
expected << %(<select id="date_first_month" name="date[first][month]">\n)
|
570
|
+
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)
|
571
|
+
expected << "</select>\n"
|
572
|
+
|
573
|
+
expected << %(<select id="date_first_day" name="date[first][day]">\n)
|
574
|
+
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)
|
575
|
+
expected << "</select>\n"
|
576
|
+
|
577
|
+
assert_equal expected, select_date(0, :end_year => Date.today.year+1, :prefix => "date[first]")
|
578
|
+
end
|
579
|
+
|
580
|
+
def test_select_date_with_zero_value_and_no_end_year
|
581
|
+
expected = %(<select id="date_first_year" name="date[first][year]">\n)
|
582
|
+
last_year = Time.now.year + 5
|
583
|
+
2003.upto(last_year) { |y| expected << %(<option value="#{y}">#{y}</option>\n) }
|
584
|
+
expected << "</select>\n"
|
585
|
+
|
586
|
+
expected << %(<select id="date_first_month" name="date[first][month]">\n)
|
587
|
+
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)
|
588
|
+
expected << "</select>\n"
|
589
|
+
|
590
|
+
expected << %(<select id="date_first_day" name="date[first][day]">\n)
|
591
|
+
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)
|
592
|
+
expected << "</select>\n"
|
593
|
+
|
594
|
+
assert_equal expected, select_date(0, :start_year => 2003, :prefix => "date[first]")
|
595
|
+
end
|
596
|
+
|
597
|
+
def test_select_date_with_zero_value_and_no_start_and_end_year
|
598
|
+
expected = %(<select id="date_first_year" name="date[first][year]">\n)
|
599
|
+
(Date.today.year-5).upto(Date.today.year+5) { |y| expected << %(<option value="#{y}">#{y}</option>\n) }
|
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">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">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_equal expected, select_date(0, :prefix => "date[first]")
|
611
|
+
end
|
612
|
+
|
613
|
+
def test_select_date_with_nil_value_and_no_start_and_end_year
|
614
|
+
expected = %(<select id="date_first_year" name="date[first][year]">\n)
|
615
|
+
(Date.today.year-5).upto(Date.today.year+5) { |y| expected << %(<option value="#{y}">#{y}</option>\n) }
|
616
|
+
expected << "</select>\n"
|
617
|
+
|
618
|
+
expected << %(<select id="date_first_month" name="date[first][month]">\n)
|
619
|
+
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)
|
620
|
+
expected << "</select>\n"
|
621
|
+
|
622
|
+
expected << %(<select id="date_first_day" name="date[first][day]">\n)
|
623
|
+
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)
|
624
|
+
expected << "</select>\n"
|
625
|
+
|
626
|
+
assert_equal expected, select_date(nil, :prefix => "date[first]")
|
627
|
+
end
|
628
|
+
|
629
|
+
def test_select_datetime
|
630
|
+
expected = %(<select id="date_first_year" name="date[first][year]">\n)
|
631
|
+
expected << %(<option value="2003" selected="selected">2003</option>\n<option value="2004">2004</option>\n<option value="2005">2005</option>\n)
|
632
|
+
expected << "</select>\n"
|
633
|
+
|
634
|
+
expected << %(<select id="date_first_month" name="date[first][month]">\n)
|
635
|
+
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)
|
636
|
+
expected << "</select>\n"
|
637
|
+
|
638
|
+
expected << %(<select id="date_first_day" name="date[first][day]">\n)
|
639
|
+
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)
|
640
|
+
expected << "</select>\n"
|
641
|
+
|
642
|
+
expected << %(<select id="date_first_hour" name="date[first][hour]">\n)
|
643
|
+
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)
|
644
|
+
expected << "</select>\n"
|
645
|
+
|
646
|
+
expected << %(<select id="date_first_minute" name="date[first][minute]">\n)
|
647
|
+
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)
|
648
|
+
expected << "</select>\n"
|
649
|
+
|
650
|
+
assert_equal expected, select_datetime(Time.mktime(2003, 8, 16, 8, 4, 18), :start_year => 2003, :end_year => 2005, :prefix => "date[first]")
|
651
|
+
end
|
652
|
+
|
653
|
+
def test_select_datetime_with_separators
|
654
|
+
expected = %(<select id="date_first_year" name="date[first][year]">\n)
|
655
|
+
expected << %(<option value="2003" selected="selected">2003</option>\n<option value="2004">2004</option>\n<option value="2005">2005</option>\n)
|
656
|
+
expected << "</select>\n"
|
657
|
+
|
658
|
+
expected << %(<select id="date_first_month" name="date[first][month]">\n)
|
659
|
+
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)
|
660
|
+
expected << "</select>\n"
|
661
|
+
|
662
|
+
expected << %(<select id="date_first_day" name="date[first][day]">\n)
|
663
|
+
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)
|
664
|
+
expected << "</select>\n"
|
665
|
+
|
666
|
+
expected << " — "
|
667
|
+
|
668
|
+
expected << %(<select id="date_first_hour" name="date[first][hour]">\n)
|
669
|
+
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)
|
670
|
+
expected << "</select>\n"
|
671
|
+
|
672
|
+
expected << " : "
|
673
|
+
|
674
|
+
expected << %(<select id="date_first_minute" name="date[first][minute]">\n)
|
675
|
+
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)
|
676
|
+
expected << "</select>\n"
|
677
|
+
|
678
|
+
assert_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 => ' : ')
|
679
|
+
end
|
680
|
+
|
681
|
+
def test_select_datetime_with_nil_value_and_no_start_and_end_year
|
682
|
+
expected = %(<select id="date_first_year" name="date[first][year]">\n)
|
683
|
+
(Date.today.year-5).upto(Date.today.year+5) { |y| expected << %(<option value="#{y}">#{y}</option>\n) }
|
684
|
+
expected << "</select>\n"
|
685
|
+
|
686
|
+
expected << %(<select id="date_first_month" name="date[first][month]">\n)
|
687
|
+
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)
|
688
|
+
expected << "</select>\n"
|
689
|
+
|
690
|
+
expected << %(<select id="date_first_day" name="date[first][day]">\n)
|
691
|
+
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)
|
692
|
+
expected << "</select>\n"
|
693
|
+
|
694
|
+
expected << %(<select id="date_first_hour" name="date[first][hour]">\n)
|
695
|
+
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)
|
696
|
+
expected << "</select>\n"
|
697
|
+
|
698
|
+
expected << %(<select id="date_first_minute" name="date[first][minute]">\n)
|
699
|
+
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)
|
700
|
+
expected << "</select>\n"
|
701
|
+
|
702
|
+
assert_equal expected, select_datetime(nil, :prefix => "date[first]")
|
703
|
+
end
|
704
|
+
|
705
|
+
def test_select_time
|
706
|
+
expected = %(<select id="date_hour" name="date[hour]">\n)
|
707
|
+
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)
|
708
|
+
expected << "</select>\n"
|
709
|
+
|
710
|
+
expected << %(<select id="date_minute" name="date[minute]">\n)
|
711
|
+
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)
|
712
|
+
expected << "</select>\n"
|
713
|
+
|
714
|
+
assert_equal expected, select_time(Time.mktime(2003, 8, 16, 8, 4, 18))
|
715
|
+
assert_equal expected, select_time(Time.mktime(2003, 8, 16, 8, 4, 18), :include_seconds => false)
|
716
|
+
end
|
717
|
+
|
718
|
+
def test_select_time_with_separator
|
719
|
+
expected = %(<select id="date_hour" name="date[hour]">\n)
|
720
|
+
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)
|
721
|
+
expected << "</select>\n"
|
722
|
+
|
723
|
+
expected << " : "
|
724
|
+
|
725
|
+
expected << %(<select id="date_minute" name="date[minute]">\n)
|
726
|
+
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)
|
727
|
+
expected << "</select>\n"
|
728
|
+
|
729
|
+
assert_equal expected, select_time(Time.mktime(2003, 8, 16, 8, 4, 18), :time_separator => ' : ')
|
730
|
+
assert_equal expected, select_time(Time.mktime(2003, 8, 16, 8, 4, 18), :time_separator => ' : ', :include_seconds => false)
|
731
|
+
end
|
732
|
+
|
458
733
|
def test_select_time_with_seconds
|
459
|
-
expected = %(<select name="date[hour]">\n)
|
734
|
+
expected = %(<select id="date_hour" name="date[hour]">\n)
|
460
735
|
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)
|
461
736
|
expected << "</select>\n"
|
462
737
|
|
463
|
-
expected << %(<select name="date[minute]">\n)
|
738
|
+
expected << %(<select id="date_minute" name="date[minute]">\n)
|
464
739
|
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)
|
465
740
|
expected << "</select>\n"
|
466
741
|
|
467
|
-
expected << %(<select name="date[second]">\n)
|
742
|
+
expected << %(<select id="date_second" name="date[second]">\n)
|
468
743
|
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)
|
469
744
|
expected << "</select>\n"
|
470
|
-
|
745
|
+
|
471
746
|
assert_equal expected, select_time(Time.mktime(2003, 8, 16, 8, 4, 18), :include_seconds => true)
|
472
747
|
end
|
473
748
|
|
474
|
-
def
|
475
|
-
expected = %(<select name="date[hour]">\n)
|
749
|
+
def test_select_time_with_seconds_and_separator
|
750
|
+
expected = %(<select id="date_hour" name="date[hour]">\n)
|
476
751
|
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)
|
477
752
|
expected << "</select>\n"
|
478
753
|
|
479
|
-
expected <<
|
754
|
+
expected << " : "
|
755
|
+
|
756
|
+
expected << %(<select id="date_minute" name="date[minute]">\n)
|
480
757
|
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)
|
481
758
|
expected << "</select>\n"
|
482
759
|
|
483
|
-
|
484
|
-
|
760
|
+
expected << " : "
|
761
|
+
|
762
|
+
expected << %(<select id="date_second" name="date[second]">\n)
|
763
|
+
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)
|
764
|
+
expected << "</select>\n"
|
765
|
+
|
766
|
+
assert_equal expected, select_time(Time.mktime(2003, 8, 16, 8, 4, 18), :include_seconds => true, :time_separator => ' : ')
|
485
767
|
end
|
486
768
|
|
487
|
-
def
|
488
|
-
|
489
|
-
|
769
|
+
def test_date_select
|
770
|
+
@post = Post.new
|
771
|
+
@post.written_on = Date.new(2004, 6, 15)
|
772
|
+
|
773
|
+
expected = %{<select id="post_written_on_1i" name="post[written_on(1i)]">\n}
|
774
|
+
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}
|
490
775
|
expected << "</select>\n"
|
491
776
|
|
492
|
-
expected << %
|
493
|
-
expected << %
|
777
|
+
expected << %{<select id="post_written_on_2i" name="post[written_on(2i)]">\n}
|
778
|
+
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}
|
494
779
|
expected << "</select>\n"
|
495
780
|
|
496
|
-
expected << %
|
497
|
-
expected <<
|
498
|
-
|
781
|
+
expected << %{<select id="post_written_on_3i" name="post[written_on(3i)]">\n}
|
782
|
+
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}
|
783
|
+
|
499
784
|
expected << "</select>\n"
|
500
|
-
|
501
|
-
assert_equal expected,
|
785
|
+
|
786
|
+
assert_equal expected, date_select("post", "written_on")
|
502
787
|
end
|
503
788
|
|
504
789
|
def test_date_select_within_fields_for
|
505
790
|
@post = Post.new
|
506
791
|
@post.written_on = Date.new(2004, 6, 15)
|
507
|
-
|
792
|
+
|
508
793
|
_erbout = ''
|
509
|
-
|
794
|
+
|
510
795
|
fields_for :post, @post do |f|
|
511
796
|
_erbout.concat f.date_select(:written_on)
|
512
797
|
end
|
513
|
-
|
514
|
-
expected = "<select 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" +
|
515
|
-
"<select 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" +
|
516
|
-
"<select 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"
|
517
798
|
|
518
|
-
|
799
|
+
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"
|
800
|
+
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"
|
801
|
+
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"
|
802
|
+
|
803
|
+
assert_dom_equal(expected, _erbout)
|
804
|
+
end
|
805
|
+
|
806
|
+
def test_date_select_with_index
|
807
|
+
@post = Post.new
|
808
|
+
@post.written_on = Date.new(2004, 6, 15)
|
809
|
+
id = 456
|
810
|
+
|
811
|
+
expected = %{<select id="post_456_written_on_1i" name="post[#{id}][written_on(1i)]">\n}
|
812
|
+
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}
|
813
|
+
expected << "</select>\n"
|
814
|
+
|
815
|
+
expected << %{<select id="post_456_written_on_2i" name="post[#{id}][written_on(2i)]">\n}
|
816
|
+
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}
|
817
|
+
expected << "</select>\n"
|
818
|
+
|
819
|
+
expected << %{<select id="post_456_written_on_3i" name="post[#{id}][written_on(3i)]">\n}
|
820
|
+
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}
|
821
|
+
|
822
|
+
expected << "</select>\n"
|
823
|
+
|
824
|
+
assert_equal expected, date_select("post", "written_on", :index => id)
|
825
|
+
end
|
826
|
+
|
827
|
+
def test_date_select_with_auto_index
|
828
|
+
@post = Post.new
|
829
|
+
@post.written_on = Date.new(2004, 6, 15)
|
830
|
+
id = 123
|
831
|
+
|
832
|
+
expected = %{<select id="post_123_written_on_1i" name="post[#{id}][written_on(1i)]">\n}
|
833
|
+
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}
|
834
|
+
expected << "</select>\n"
|
835
|
+
|
836
|
+
expected << %{<select id="post_123_written_on_2i" name="post[#{id}][written_on(2i)]">\n}
|
837
|
+
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}
|
838
|
+
expected << "</select>\n"
|
839
|
+
|
840
|
+
expected << %{<select id="post_123_written_on_3i" name="post[#{id}][written_on(3i)]">\n}
|
841
|
+
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}
|
842
|
+
expected << "</select>\n"
|
843
|
+
|
844
|
+
assert_equal expected, date_select("post[]", "written_on")
|
845
|
+
end
|
846
|
+
|
847
|
+
def test_date_select_with_different_order
|
848
|
+
@post = Post.new
|
849
|
+
@post.written_on = Date.new(2004, 6, 15)
|
850
|
+
|
851
|
+
expected = %{<select id="post_written_on_3i" name="post[written_on(3i)]">\n}
|
852
|
+
1.upto(31) { |i| expected << %(<option value="#{i}"#{' selected="selected"' if i == 15}>#{i}</option>\n) }
|
853
|
+
expected << "</select>\n"
|
854
|
+
|
855
|
+
expected << %{<select id="post_written_on_2i" name="post[written_on(2i)]">\n}
|
856
|
+
1.upto(12) { |i| expected << %(<option value="#{i}"#{' selected="selected"' if i == 6}>#{Date::MONTHNAMES[i]}</option>\n) }
|
857
|
+
expected << "</select>\n"
|
858
|
+
|
859
|
+
expected << %{<select id="post_written_on_1i" name="post[written_on(1i)]">\n}
|
860
|
+
1999.upto(2009) { |i| expected << %(<option value="#{i}"#{' selected="selected"' if i == 2004}>#{i}</option>\n) }
|
861
|
+
expected << "</select>\n"
|
862
|
+
|
863
|
+
assert_equal expected, date_select("post", "written_on", :order => [:day, :month, :year])
|
864
|
+
end
|
865
|
+
|
866
|
+
def test_date_select_with_nil
|
867
|
+
@post = Post.new
|
868
|
+
|
869
|
+
start_year = Time.now.year-5
|
870
|
+
end_year = Time.now.year+5
|
871
|
+
expected = %{<select id="post_written_on_1i" name="post[written_on(1i)]">\n}
|
872
|
+
start_year.upto(end_year) { |i| expected << %(<option value="#{i}"#{' selected="selected"' if i == Time.now.year}>#{i}</option>\n) }
|
873
|
+
expected << "</select>\n"
|
874
|
+
|
875
|
+
expected << %{<select id="post_written_on_2i" name="post[written_on(2i)]">\n}
|
876
|
+
1.upto(12) { |i| expected << %(<option value="#{i}"#{' selected="selected"' if i == Time.now.month}>#{Date::MONTHNAMES[i]}</option>\n) }
|
877
|
+
expected << "</select>\n"
|
878
|
+
|
879
|
+
expected << %{<select id="post_written_on_3i" name="post[written_on(3i)]">\n}
|
880
|
+
1.upto(31) { |i| expected << %(<option value="#{i}"#{' selected="selected"' if i == Time.now.day}>#{i}</option>\n) }
|
881
|
+
expected << "</select>\n"
|
882
|
+
|
883
|
+
assert_equal expected, date_select("post", "written_on")
|
884
|
+
end
|
885
|
+
|
886
|
+
def test_date_select_with_nil_and_blank
|
887
|
+
@post = Post.new
|
888
|
+
|
889
|
+
start_year = Time.now.year-5
|
890
|
+
end_year = Time.now.year+5
|
891
|
+
expected = %{<select id="post_written_on_1i" name="post[written_on(1i)]">\n}
|
892
|
+
expected << "<option value=\"\"></option>\n"
|
893
|
+
start_year.upto(end_year) { |i| expected << %(<option value="#{i}">#{i}</option>\n) }
|
894
|
+
expected << "</select>\n"
|
895
|
+
|
896
|
+
expected << %{<select id="post_written_on_2i" name="post[written_on(2i)]">\n}
|
897
|
+
expected << "<option value=\"\"></option>\n"
|
898
|
+
1.upto(12) { |i| expected << %(<option value="#{i}">#{Date::MONTHNAMES[i]}</option>\n) }
|
899
|
+
expected << "</select>\n"
|
900
|
+
|
901
|
+
expected << %{<select id="post_written_on_3i" name="post[written_on(3i)]">\n}
|
902
|
+
expected << "<option value=\"\"></option>\n"
|
903
|
+
1.upto(31) { |i| expected << %(<option value="#{i}">#{i}</option>\n) }
|
904
|
+
expected << "</select>\n"
|
905
|
+
|
906
|
+
assert_equal expected, date_select("post", "written_on", :include_blank => true)
|
907
|
+
end
|
908
|
+
|
909
|
+
def test_date_select_cant_override_discard_hour
|
910
|
+
@post = Post.new
|
911
|
+
@post.written_on = Date.new(2004, 6, 15)
|
912
|
+
|
913
|
+
expected = %{<select id="post_written_on_1i" name="post[written_on(1i)]">\n}
|
914
|
+
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}
|
915
|
+
expected << "</select>\n"
|
916
|
+
|
917
|
+
expected << %{<select id="post_written_on_2i" name="post[written_on(2i)]">\n}
|
918
|
+
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}
|
919
|
+
expected << "</select>\n"
|
920
|
+
|
921
|
+
expected << %{<select id="post_written_on_3i" name="post[written_on(3i)]">\n}
|
922
|
+
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}
|
923
|
+
expected << "</select>\n"
|
924
|
+
|
925
|
+
assert_equal expected, date_select("post", "written_on", :discard_hour => false)
|
926
|
+
end
|
927
|
+
|
928
|
+
def test_time_select
|
929
|
+
@post = Post.new
|
930
|
+
@post.written_on = Time.local(2004, 6, 15, 15, 16, 35)
|
931
|
+
|
932
|
+
expected = %{<input type="hidden" id="post_written_on_1i" name="post[written_on(1i)]" value="2004" />\n}
|
933
|
+
expected << %{<input type="hidden" id="post_written_on_2i" name="post[written_on(2i)]" value="6" />\n}
|
934
|
+
expected << %{<input type="hidden" id="post_written_on_3i" name="post[written_on(3i)]" value="15" />\n}
|
935
|
+
|
936
|
+
expected << %(<select id="post_written_on_4i" name="post[written_on(4i)]">\n)
|
937
|
+
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) }
|
938
|
+
expected << "</select>\n"
|
939
|
+
expected << " : "
|
940
|
+
expected << %(<select id="post_written_on_5i" name="post[written_on(5i)]">\n)
|
941
|
+
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) }
|
942
|
+
expected << "</select>\n"
|
943
|
+
|
944
|
+
assert_equal expected, time_select("post", "written_on")
|
945
|
+
end
|
946
|
+
|
947
|
+
def test_time_select_with_seconds
|
948
|
+
@post = Post.new
|
949
|
+
@post.written_on = Time.local(2004, 6, 15, 15, 16, 35)
|
950
|
+
|
951
|
+
expected = %{<input type="hidden" id="post_written_on_1i" name="post[written_on(1i)]" value="2004" />\n}
|
952
|
+
expected << %{<input type="hidden" id="post_written_on_2i" name="post[written_on(2i)]" value="6" />\n}
|
953
|
+
expected << %{<input type="hidden" id="post_written_on_3i" name="post[written_on(3i)]" value="15" />\n}
|
954
|
+
|
955
|
+
expected << %(<select id="post_written_on_4i" name="post[written_on(4i)]">\n)
|
956
|
+
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) }
|
957
|
+
expected << "</select>\n"
|
958
|
+
expected << " : "
|
959
|
+
expected << %(<select id="post_written_on_5i" name="post[written_on(5i)]">\n)
|
960
|
+
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) }
|
961
|
+
expected << "</select>\n"
|
962
|
+
expected << " : "
|
963
|
+
expected << %(<select id="post_written_on_6i" name="post[written_on(6i)]">\n)
|
964
|
+
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) }
|
965
|
+
expected << "</select>\n"
|
966
|
+
|
967
|
+
assert_equal expected, time_select("post", "written_on", :include_seconds => true)
|
968
|
+
end
|
969
|
+
|
970
|
+
def test_datetime_select
|
971
|
+
@post = Post.new
|
972
|
+
@post.updated_at = Time.local(2004, 6, 15, 16, 35)
|
973
|
+
|
974
|
+
expected = %{<select id="post_updated_at_1i" name="post[updated_at(1i)]">\n}
|
975
|
+
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}
|
976
|
+
expected << "</select>\n"
|
977
|
+
|
978
|
+
expected << %{<select id="post_updated_at_2i" name="post[updated_at(2i)]">\n}
|
979
|
+
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}
|
980
|
+
expected << "</select>\n"
|
981
|
+
|
982
|
+
expected << %{<select id="post_updated_at_3i" name="post[updated_at(3i)]">\n}
|
983
|
+
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}
|
984
|
+
expected << "</select>\n"
|
985
|
+
|
986
|
+
expected << " — "
|
987
|
+
|
988
|
+
expected << %{<select id="post_updated_at_4i" name="post[updated_at(4i)]">\n}
|
989
|
+
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}
|
990
|
+
expected << "</select>\n"
|
991
|
+
expected << " : "
|
992
|
+
expected << %{<select id="post_updated_at_5i" name="post[updated_at(5i)]">\n}
|
993
|
+
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}
|
994
|
+
expected << "</select>\n"
|
995
|
+
|
996
|
+
assert_equal expected, datetime_select("post", "updated_at")
|
519
997
|
end
|
520
998
|
|
521
999
|
def test_datetime_select_within_fields_for
|
522
1000
|
@post = Post.new
|
523
1001
|
@post.updated_at = Time.local(2004, 6, 15, 16, 35)
|
524
|
-
|
1002
|
+
|
525
1003
|
_erbout = ''
|
526
|
-
|
1004
|
+
|
527
1005
|
fields_for :post, @post do |f|
|
528
1006
|
_erbout.concat f.datetime_select(:updated_at)
|
529
1007
|
end
|
530
|
-
|
531
|
-
expected = "<select name='post[updated_at(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<select name='post[updated_at(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<select name='post[updated_at(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 — <select name='post[updated_at(4i)]'>\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 : <select name='post[updated_at(5i)]'>\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"
|
532
1008
|
|
533
|
-
|
1009
|
+
expected = "<select id='post_updated_at_1i' name='post[updated_at(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"
|
1010
|
+
expected << "<select id='post_updated_at_2i' name='post[updated_at(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"
|
1011
|
+
expected << "<select id='post_updated_at_3i' name='post[updated_at(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"
|
1012
|
+
expected << " — <select id='post_updated_at_4i' name='post[updated_at(4i)]'>\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"
|
1013
|
+
expected << " : <select id='post_updated_at_5i' name='post[updated_at(5i)]'>\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"
|
1014
|
+
|
1015
|
+
assert_dom_equal(expected, _erbout)
|
534
1016
|
end
|
535
1017
|
|
536
1018
|
def test_date_select_with_zero_value_and_no_start_year
|
537
|
-
expected = %(<select name="date[first][year]">\n)
|
1019
|
+
expected = %(<select id="date_first_year" name="date[first][year]">\n)
|
538
1020
|
(Date.today.year-5).upto(Date.today.year+1) { |y| expected << %(<option value="#{y}">#{y}</option>\n) }
|
539
1021
|
expected << "</select>\n"
|
540
1022
|
|
541
|
-
expected << %(<select name="date[first][month]">\n)
|
1023
|
+
expected << %(<select id="date_first_month" name="date[first][month]">\n)
|
542
1024
|
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)
|
543
1025
|
expected << "</select>\n"
|
544
1026
|
|
545
|
-
expected << %(<select name="date[first][day]">\n)
|
1027
|
+
expected << %(<select id="date_first_day" name="date[first][day]">\n)
|
546
1028
|
expected <<
|
547
1029
|
%(<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)
|
548
1030
|
expected << "</select>\n"
|
549
|
-
|
1031
|
+
|
550
1032
|
assert_equal expected, select_date(0, :end_year => Date.today.year+1, :prefix => "date[first]")
|
551
1033
|
end
|
552
1034
|
|
553
1035
|
def test_date_select_with_zero_value_and_no_end_year
|
554
|
-
expected = %(<select name="date[first][year]">\n)
|
1036
|
+
expected = %(<select id="date_first_year" name="date[first][year]">\n)
|
555
1037
|
last_year = Time.now.year + 5
|
556
1038
|
2003.upto(last_year) { |y| expected << %(<option value="#{y}">#{y}</option>\n) }
|
557
1039
|
expected << "</select>\n"
|
558
1040
|
|
559
|
-
expected << %(<select name="date[first][month]">\n)
|
1041
|
+
expected << %(<select id="date_first_month" name="date[first][month]">\n)
|
560
1042
|
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)
|
561
1043
|
expected << "</select>\n"
|
562
1044
|
|
563
|
-
expected << %(<select name="date[first][day]">\n)
|
1045
|
+
expected << %(<select id="date_first_day" name="date[first][day]">\n)
|
564
1046
|
expected <<
|
565
1047
|
%(<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)
|
566
1048
|
expected << "</select>\n"
|
567
|
-
|
1049
|
+
|
568
1050
|
assert_equal expected, select_date(0, :start_year => 2003, :prefix => "date[first]")
|
569
1051
|
end
|
570
|
-
|
1052
|
+
|
571
1053
|
def test_date_select_with_zero_value_and_no_start_and_end_year
|
572
|
-
expected = %(<select name="date[first][year]">\n)
|
1054
|
+
expected = %(<select id="date_first_year" name="date[first][year]">\n)
|
573
1055
|
(Date.today.year-5).upto(Date.today.year+5) { |y| expected << %(<option value="#{y}">#{y}</option>\n) }
|
574
1056
|
expected << "</select>\n"
|
575
1057
|
|
576
|
-
expected << %(<select name="date[first][month]">\n)
|
1058
|
+
expected << %(<select id="date_first_month" name="date[first][month]">\n)
|
577
1059
|
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)
|
578
1060
|
expected << "</select>\n"
|
579
1061
|
|
580
|
-
expected << %(<select name="date[first][day]">\n)
|
1062
|
+
expected << %(<select id="date_first_day" name="date[first][day]">\n)
|
581
1063
|
expected <<
|
582
1064
|
%(<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)
|
583
1065
|
expected << "</select>\n"
|
584
|
-
|
1066
|
+
|
585
1067
|
assert_equal expected, select_date(0, :prefix => "date[first]")
|
586
1068
|
end
|
587
1069
|
|
588
1070
|
def test_date_select_with_nil_value_and_no_start_and_end_year
|
589
|
-
expected = %(<select name="date[first][year]">\n)
|
1071
|
+
expected = %(<select id="date_first_year" name="date[first][year]">\n)
|
590
1072
|
(Date.today.year-5).upto(Date.today.year+5) { |y| expected << %(<option value="#{y}">#{y}</option>\n) }
|
591
1073
|
expected << "</select>\n"
|
592
1074
|
|
593
|
-
expected << %(<select name="date[first][month]">\n)
|
1075
|
+
expected << %(<select id="date_first_month" name="date[first][month]">\n)
|
594
1076
|
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)
|
595
1077
|
expected << "</select>\n"
|
596
1078
|
|
597
|
-
expected << %(<select name="date[first][day]">\n)
|
1079
|
+
expected << %(<select id="date_first_day" name="date[first][day]">\n)
|
598
1080
|
expected <<
|
599
1081
|
%(<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)
|
600
1082
|
expected << "</select>\n"
|
601
|
-
|
1083
|
+
|
602
1084
|
assert_equal expected, select_date(nil, :prefix => "date[first]")
|
603
1085
|
end
|
604
1086
|
|
605
1087
|
def test_datetime_select_with_nil_value_and_no_start_and_end_year
|
606
|
-
expected = %(<select name="date[first][year]">\n)
|
1088
|
+
expected = %(<select id="date_first_year" name="date[first][year]">\n)
|
607
1089
|
(Date.today.year-5).upto(Date.today.year+5) { |y| expected << %(<option value="#{y}">#{y}</option>\n) }
|
608
1090
|
expected << "</select>\n"
|
609
1091
|
|
610
|
-
expected << %(<select name="date[first][month]">\n)
|
1092
|
+
expected << %(<select id="date_first_month" name="date[first][month]">\n)
|
611
1093
|
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)
|
612
1094
|
expected << "</select>\n"
|
613
1095
|
|
614
|
-
expected << %(<select name="date[first][day]">\n)
|
1096
|
+
expected << %(<select id="date_first_day" name="date[first][day]">\n)
|
615
1097
|
expected <<
|
616
1098
|
%(<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)
|
617
1099
|
expected << "</select>\n"
|
618
|
-
|
619
|
-
expected << %(<select name="date[first][hour]">\n)
|
1100
|
+
|
1101
|
+
expected << %(<select id="date_first_hour" name="date[first][hour]">\n)
|
620
1102
|
expected << %(<option value="00">00</option>\n<option value="01">01</option>\n<option value="02">02</option>\n<option value="03">03</option>\n<option value="04">04</option>\n<option value="05">05</option>\n<option value="06">06</option>\n<option value="07">07</option>\n<option value="08">08</option>\n<option value="09">09</option>\n<option value="10">10</option>\n<option value="11">11</option>\n<option value="12">12</option>\n<option value="13">13</option>\n<option value="14">14</option>\n<option value="15">15</option>\n<option value="16">16</option>\n<option value="17">17</option>\n<option value="18">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)
|
621
1103
|
expected << "</select>\n"
|
622
1104
|
|
623
|
-
expected << %(<select name="date[first][minute]">\n)
|
1105
|
+
expected << %(<select id="date_first_minute" name="date[first][minute]">\n)
|
624
1106
|
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)
|
625
1107
|
expected << "</select>\n"
|
626
1108
|
|
627
1109
|
assert_equal expected, select_datetime(nil, :prefix => "date[first]")
|
628
1110
|
end
|
629
1111
|
|
1112
|
+
|
1113
|
+
def test_datetime_select_with_options_index
|
1114
|
+
@post = Post.new
|
1115
|
+
@post.updated_at = Time.local(2004, 6, 15, 16, 35)
|
1116
|
+
id = 456
|
1117
|
+
|
1118
|
+
expected = %{<select id="post_456_updated_at_1i" name="post[#{id}][updated_at(1i)]">\n}
|
1119
|
+
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}
|
1120
|
+
expected << "</select>\n"
|
1121
|
+
|
1122
|
+
expected << %{<select id="post_456_updated_at_2i" name="post[#{id}][updated_at(2i)]">\n}
|
1123
|
+
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}
|
1124
|
+
expected << "</select>\n"
|
1125
|
+
|
1126
|
+
expected << %{<select id="post_456_updated_at_3i" name="post[#{id}][updated_at(3i)]">\n}
|
1127
|
+
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}
|
1128
|
+
expected << "</select>\n"
|
1129
|
+
|
1130
|
+
expected << " — "
|
1131
|
+
|
1132
|
+
expected << %{<select id="post_456_updated_at_4i" name="post[#{id}][updated_at(4i)]">\n}
|
1133
|
+
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}
|
1134
|
+
expected << "</select>\n"
|
1135
|
+
expected << " : "
|
1136
|
+
expected << %{<select id="post_456_updated_at_5i" name="post[#{id}][updated_at(5i)]">\n}
|
1137
|
+
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}
|
1138
|
+
expected << "</select>\n"
|
1139
|
+
|
1140
|
+
assert_equal expected, datetime_select("post", "updated_at", :index => id)
|
1141
|
+
end
|
1142
|
+
|
1143
|
+
def test_datetime_select_with_auto_index
|
1144
|
+
@post = Post.new
|
1145
|
+
@post.updated_at = Time.local(2004, 6, 15, 16, 35)
|
1146
|
+
id = @post.id
|
1147
|
+
|
1148
|
+
expected = %{<select id="post_123_updated_at_1i" name="post[#{id}][updated_at(1i)]">\n}
|
1149
|
+
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}
|
1150
|
+
expected << "</select>\n"
|
1151
|
+
|
1152
|
+
expected << %{<select id="post_123_updated_at_2i" name="post[#{id}][updated_at(2i)]">\n}
|
1153
|
+
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}
|
1154
|
+
expected << "</select>\n"
|
1155
|
+
|
1156
|
+
expected << %{<select id="post_123_updated_at_3i" name="post[#{id}][updated_at(3i)]">\n}
|
1157
|
+
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}
|
1158
|
+
expected << "</select>\n"
|
1159
|
+
|
1160
|
+
expected << " — "
|
1161
|
+
|
1162
|
+
expected << %{<select id="post_123_updated_at_4i" name="post[#{id}][updated_at(4i)]">\n}
|
1163
|
+
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}
|
1164
|
+
expected << "</select>\n"
|
1165
|
+
expected << " : "
|
1166
|
+
expected << %{<select id="post_123_updated_at_5i" name="post[#{id}][updated_at(5i)]">\n}
|
1167
|
+
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}
|
1168
|
+
expected << "</select>\n"
|
1169
|
+
|
1170
|
+
assert_equal expected, datetime_select("post[]", "updated_at")
|
1171
|
+
end
|
1172
|
+
|
1173
|
+
def test_datetime_select_with_seconds
|
1174
|
+
@post = Post.new
|
1175
|
+
@post.updated_at = Time.local(2004, 6, 15, 15, 16, 35)
|
1176
|
+
|
1177
|
+
expected = %{<select id="post_updated_at_1i" name="post[updated_at(1i)]">\n}
|
1178
|
+
1999.upto(2009) { |i| expected << %(<option value="#{i}"#{' selected="selected"' if i == 2004}>#{i}</option>\n) }
|
1179
|
+
expected << "</select>\n"
|
1180
|
+
expected << %{<select id="post_updated_at_2i" name="post[updated_at(2i)]">\n}
|
1181
|
+
1.upto(12) { |i| expected << %(<option value="#{i}"#{' selected="selected"' if i == 6}>#{Date::MONTHNAMES[i]}</option>\n) }
|
1182
|
+
expected << "</select>\n"
|
1183
|
+
expected << %{<select id="post_updated_at_3i" name="post[updated_at(3i)]">\n}
|
1184
|
+
1.upto(31) { |i| expected << %(<option value="#{i}"#{' selected="selected"' if i == 15}>#{i}</option>\n) }
|
1185
|
+
expected << "</select>\n"
|
1186
|
+
|
1187
|
+
expected << " — "
|
1188
|
+
|
1189
|
+
expected << %{<select id="post_updated_at_4i" name="post[updated_at(4i)]">\n}
|
1190
|
+
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) }
|
1191
|
+
expected << "</select>\n"
|
1192
|
+
expected << " : "
|
1193
|
+
expected << %{<select id="post_updated_at_5i" name="post[updated_at(5i)]">\n}
|
1194
|
+
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) }
|
1195
|
+
expected << "</select>\n"
|
1196
|
+
expected << " : "
|
1197
|
+
expected << %{<select id="post_updated_at_6i" name="post[updated_at(6i)]">\n}
|
1198
|
+
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) }
|
1199
|
+
expected << "</select>\n"
|
1200
|
+
|
1201
|
+
assert_equal expected, datetime_select("post", "updated_at", :include_seconds => true)
|
1202
|
+
end
|
1203
|
+
|
1204
|
+
def test_datetime_select_discard_year
|
1205
|
+
@post = Post.new
|
1206
|
+
@post.updated_at = Time.local(2004, 6, 15, 15, 16, 35)
|
1207
|
+
|
1208
|
+
expected = %{<input type="hidden" id="post_updated_at_1i" name="post[updated_at(1i)]" value="2004" />\n}
|
1209
|
+
expected << %{<select id="post_updated_at_2i" name="post[updated_at(2i)]">\n}
|
1210
|
+
1.upto(12) { |i| expected << %(<option value="#{i}"#{' selected="selected"' if i == 6}>#{Date::MONTHNAMES[i]}</option>\n) }
|
1211
|
+
expected << "</select>\n"
|
1212
|
+
expected << %{<select id="post_updated_at_3i" name="post[updated_at(3i)]">\n}
|
1213
|
+
1.upto(31) { |i| expected << %(<option value="#{i}"#{' selected="selected"' if i == 15}>#{i}</option>\n) }
|
1214
|
+
expected << "</select>\n"
|
1215
|
+
|
1216
|
+
expected << " — "
|
1217
|
+
|
1218
|
+
expected << %{<select id="post_updated_at_4i" name="post[updated_at(4i)]">\n}
|
1219
|
+
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) }
|
1220
|
+
expected << "</select>\n"
|
1221
|
+
expected << " : "
|
1222
|
+
expected << %{<select id="post_updated_at_5i" name="post[updated_at(5i)]">\n}
|
1223
|
+
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) }
|
1224
|
+
expected << "</select>\n"
|
1225
|
+
|
1226
|
+
assert_equal expected, datetime_select("post", "updated_at", :discard_year => true)
|
1227
|
+
end
|
1228
|
+
|
1229
|
+
def test_datetime_select_discard_month
|
1230
|
+
@post = Post.new
|
1231
|
+
@post.updated_at = Time.local(2004, 6, 15, 15, 16, 35)
|
1232
|
+
|
1233
|
+
expected = %{<select id="post_updated_at_1i" name="post[updated_at(1i)]">\n}
|
1234
|
+
1999.upto(2009) { |i| expected << %(<option value="#{i}"#{' selected="selected"' if i == 2004}>#{i}</option>\n) }
|
1235
|
+
expected << "</select>\n"
|
1236
|
+
expected << %{<input type="hidden" id="post_updated_at_2i" name="post[updated_at(2i)]" value="6" />\n}
|
1237
|
+
expected << %{<input type="hidden" id="post_updated_at_3i" name="post[updated_at(3i)]" value="15" />\n}
|
1238
|
+
|
1239
|
+
expected << " — "
|
1240
|
+
|
1241
|
+
expected << %{<select id="post_updated_at_4i" name="post[updated_at(4i)]">\n}
|
1242
|
+
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) }
|
1243
|
+
expected << "</select>\n"
|
1244
|
+
expected << " : "
|
1245
|
+
expected << %{<select id="post_updated_at_5i" name="post[updated_at(5i)]">\n}
|
1246
|
+
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) }
|
1247
|
+
expected << "</select>\n"
|
1248
|
+
|
1249
|
+
assert_equal expected, datetime_select("post", "updated_at", :discard_month => true)
|
1250
|
+
end
|
1251
|
+
|
1252
|
+
def test_datetime_select_discard_year_and_month
|
1253
|
+
@post = Post.new
|
1254
|
+
@post.updated_at = Time.local(2004, 6, 15, 15, 16, 35)
|
1255
|
+
|
1256
|
+
expected = %{<input type="hidden" id="post_updated_at_1i" name="post[updated_at(1i)]" value="2004" />\n}
|
1257
|
+
expected << %{<input type="hidden" id="post_updated_at_2i" name="post[updated_at(2i)]" value="6" />\n}
|
1258
|
+
expected << %{<input type="hidden" id="post_updated_at_3i" name="post[updated_at(3i)]" value="15" />\n}
|
1259
|
+
|
1260
|
+
expected << %{<select id="post_updated_at_4i" name="post[updated_at(4i)]">\n}
|
1261
|
+
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) }
|
1262
|
+
expected << "</select>\n"
|
1263
|
+
expected << " : "
|
1264
|
+
expected << %{<select id="post_updated_at_5i" name="post[updated_at(5i)]">\n}
|
1265
|
+
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) }
|
1266
|
+
expected << "</select>\n"
|
1267
|
+
|
1268
|
+
assert_equal expected, datetime_select("post", "updated_at", :discard_year => true, :discard_month => true)
|
1269
|
+
end
|
1270
|
+
|
1271
|
+
def test_datetime_select_invalid_order
|
1272
|
+
@post = Post.new
|
1273
|
+
@post.updated_at = Time.local(2004, 6, 15, 15, 16, 35)
|
1274
|
+
|
1275
|
+
expected = %{<select id="post_updated_at_3i" name="post[updated_at(3i)]">\n}
|
1276
|
+
1.upto(31) { |i| expected << %(<option value="#{i}"#{' selected="selected"' if i == 15}>#{i}</option>\n) }
|
1277
|
+
expected << "</select>\n"
|
1278
|
+
expected << %{<select id="post_updated_at_2i" name="post[updated_at(2i)]">\n}
|
1279
|
+
1.upto(12) { |i| expected << %(<option value="#{i}"#{' selected="selected"' if i == 6}>#{Date::MONTHNAMES[i]}</option>\n) }
|
1280
|
+
expected << "</select>\n"
|
1281
|
+
expected << %{<select id="post_updated_at_1i" name="post[updated_at(1i)]">\n}
|
1282
|
+
1999.upto(2009) { |i| expected << %(<option value="#{i}"#{' selected="selected"' if i == 2004}>#{i}</option>\n) }
|
1283
|
+
expected << "</select>\n"
|
1284
|
+
|
1285
|
+
expected << " — "
|
1286
|
+
|
1287
|
+
expected << %{<select id="post_updated_at_4i" name="post[updated_at(4i)]">\n}
|
1288
|
+
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) }
|
1289
|
+
expected << "</select>\n"
|
1290
|
+
expected << " : "
|
1291
|
+
expected << %{<select id="post_updated_at_5i" name="post[updated_at(5i)]">\n}
|
1292
|
+
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) }
|
1293
|
+
expected << "</select>\n"
|
1294
|
+
|
1295
|
+
assert_equal expected, datetime_select("post", "updated_at", :order => [:minute, :day, :hour, :month, :year, :second])
|
1296
|
+
end
|
1297
|
+
|
1298
|
+
def test_datetime_select_discard_with_order
|
1299
|
+
@post = Post.new
|
1300
|
+
@post.updated_at = Time.local(2004, 6, 15, 15, 16, 35)
|
1301
|
+
|
1302
|
+
expected = %{<input type="hidden" id="post_updated_at_1i" name="post[updated_at(1i)]" value="2004" />\n}
|
1303
|
+
expected << %{<select id="post_updated_at_3i" name="post[updated_at(3i)]">\n}
|
1304
|
+
1.upto(31) { |i| expected << %(<option value="#{i}"#{' selected="selected"' if i == 15}>#{i}</option>\n) }
|
1305
|
+
expected << "</select>\n"
|
1306
|
+
expected << %{<select id="post_updated_at_2i" name="post[updated_at(2i)]">\n}
|
1307
|
+
1.upto(12) { |i| expected << %(<option value="#{i}"#{' selected="selected"' if i == 6}>#{Date::MONTHNAMES[i]}</option>\n) }
|
1308
|
+
expected << "</select>\n"
|
1309
|
+
|
1310
|
+
expected << " — "
|
1311
|
+
|
1312
|
+
expected << %{<select id="post_updated_at_4i" name="post[updated_at(4i)]">\n}
|
1313
|
+
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) }
|
1314
|
+
expected << "</select>\n"
|
1315
|
+
expected << " : "
|
1316
|
+
expected << %{<select id="post_updated_at_5i" name="post[updated_at(5i)]">\n}
|
1317
|
+
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) }
|
1318
|
+
expected << "</select>\n"
|
1319
|
+
|
1320
|
+
assert_equal expected, datetime_select("post", "updated_at", :order => [:day, :month])
|
1321
|
+
end
|
630
1322
|
end
|