Upgrade to Rails 2.2.0
As a side benefit, fix an (non-user-visible) bug in display_s5(). Also fixed a bug where removing orphaned pages did not expire cached summary pages.
This commit is contained in:
parent
39348c65c2
commit
7600aef48b
827 changed files with 123652 additions and 11027 deletions
|
@ -17,7 +17,7 @@ class DateHelperTest < ActionView::TestCase
|
|||
end
|
||||
end
|
||||
end
|
||||
|
||||
|
||||
def assert_distance_of_time_in_words(from, to=nil)
|
||||
to ||= from
|
||||
|
||||
|
@ -86,13 +86,13 @@ class DateHelperTest < ActionView::TestCase
|
|||
from = Time.mktime(2004, 6, 6, 21, 45, 0)
|
||||
assert_distance_of_time_in_words(from)
|
||||
end
|
||||
|
||||
|
||||
def test_distance_in_words_with_time_zones
|
||||
from = Time.mktime(2004, 6, 6, 21, 45, 0)
|
||||
assert_distance_of_time_in_words(from.in_time_zone('Alaska'))
|
||||
assert_distance_of_time_in_words(from.in_time_zone('Hawaii'))
|
||||
end
|
||||
|
||||
|
||||
def test_distance_in_words_with_different_time_zones
|
||||
from = Time.mktime(2004, 6, 6, 21, 45, 0)
|
||||
assert_distance_of_time_in_words(
|
||||
|
@ -100,13 +100,13 @@ class DateHelperTest < ActionView::TestCase
|
|||
from.in_time_zone('Hawaii')
|
||||
)
|
||||
end
|
||||
|
||||
|
||||
def test_distance_in_words_with_dates
|
||||
start_date = Date.new 1975, 1, 31
|
||||
end_date = Date.new 1977, 1, 31
|
||||
assert_equal("over 2 years", distance_of_time_in_words(start_date, end_date))
|
||||
end
|
||||
|
||||
|
||||
def test_distance_in_words_with_integers
|
||||
assert_equal "less than a minute", distance_of_time_in_words(59)
|
||||
assert_equal "about 1 hour", distance_of_time_in_words(60*60)
|
||||
|
@ -557,11 +557,8 @@ class DateHelperTest < ActionView::TestCase
|
|||
end
|
||||
|
||||
def test_select_date_with_incomplete_order
|
||||
expected = %(<select id="date_first_day" name="date[first][day]">\n)
|
||||
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)
|
||||
expected << "</select>\n"
|
||||
|
||||
expected << %(<select id="date_first_year" name="date[first][year]">\n)
|
||||
# NOTE: modified this test because of minimal API change
|
||||
expected = %(<select id="date_first_year" name="date[first][year]">\n)
|
||||
expected << %(<option value="2003" selected="selected">2003</option>\n<option value="2004">2004</option>\n<option value="2005">2005</option>\n)
|
||||
expected << "</select>\n"
|
||||
|
||||
|
@ -569,6 +566,10 @@ class DateHelperTest < ActionView::TestCase
|
|||
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)
|
||||
expected << "</select>\n"
|
||||
|
||||
expected << %(<select id="date_first_day" name="date[first][day]">\n)
|
||||
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)
|
||||
expected << "</select>\n"
|
||||
|
||||
assert_dom_equal expected, select_date(Time.mktime(2003, 8, 16), :start_year => 2003, :end_year => 2005, :prefix => "date[first]", :order => [:day])
|
||||
end
|
||||
|
||||
|
@ -757,6 +758,26 @@ class DateHelperTest < ActionView::TestCase
|
|||
assert_dom_equal expected, select_date(Time.mktime(2003, 8, 16), {:start_year => 2003, :end_year => 2005, :prefix => "date[first]"}, :class => "selector")
|
||||
end
|
||||
|
||||
def test_select_date_with_separator
|
||||
expected = %(<select id="date_first_year" name="date[first][year]">\n)
|
||||
expected << %(<option value="2003" selected="selected">2003</option>\n<option value="2004">2004</option>\n<option value="2005">2005</option>\n)
|
||||
expected << "</select>\n"
|
||||
|
||||
expected << " / "
|
||||
|
||||
expected << %(<select id="date_first_month" name="date[first][month]">\n)
|
||||
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)
|
||||
expected << "</select>\n"
|
||||
|
||||
expected << " / "
|
||||
|
||||
expected << %(<select id="date_first_day" name="date[first][day]">\n)
|
||||
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)
|
||||
expected << "</select>\n"
|
||||
|
||||
assert_dom_equal expected, select_date(Time.mktime(2003, 8, 16), { :date_separator => " / ", :start_year => 2003, :end_year => 2005, :prefix => "date[first]"})
|
||||
end
|
||||
|
||||
def test_select_datetime
|
||||
expected = %(<select id="date_first_year" name="date[first][year]">\n)
|
||||
expected << %(<option value="2003" selected="selected">2003</option>\n<option value="2004">2004</option>\n<option value="2005">2005</option>\n)
|
||||
|
@ -857,6 +878,42 @@ class DateHelperTest < ActionView::TestCase
|
|||
assert_dom_equal expected, select_datetime(Time.mktime(2003, 8, 16, 8, 4, 18), {:start_year => 2003, :end_year => 2005, :prefix => "date[first]"}, :class => 'selector')
|
||||
end
|
||||
|
||||
def test_select_datetime_with_all_separators
|
||||
expected = %(<select id="date_first_year" name="date[first][year]" class="selector">\n)
|
||||
expected << %(<option value="2003" selected="selected">2003</option>\n<option value="2004">2004</option>\n<option value="2005">2005</option>\n)
|
||||
expected << "</select>\n"
|
||||
|
||||
expected << "/"
|
||||
|
||||
expected << %(<select id="date_first_month" name="date[first][month]" class="selector">\n)
|
||||
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)
|
||||
expected << "</select>\n"
|
||||
|
||||
expected << "/"
|
||||
|
||||
expected << %(<select id="date_first_day" name="date[first][day]" class="selector">\n)
|
||||
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)
|
||||
expected << "</select>\n"
|
||||
|
||||
expected << "—"
|
||||
|
||||
expected << %(<select id="date_first_hour" name="date[first][hour]" class="selector">\n)
|
||||
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)
|
||||
expected << "</select>\n"
|
||||
|
||||
expected << ":"
|
||||
|
||||
expected << %(<select id="date_first_minute" name="date[first][minute]" class="selector">\n)
|
||||
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)
|
||||
expected << "</select>\n"
|
||||
|
||||
assert_dom_equal expected, select_datetime(Time.mktime(2003, 8, 16, 8, 4, 18), { :datetime_separator => "—", :date_separator => "/", :time_separator => ":", :start_year => 2003, :end_year => 2005, :prefix => "date[first]"}, :class => 'selector')
|
||||
end
|
||||
|
||||
def test_select_datetime_should_work_with_date
|
||||
assert_nothing_raised { select_datetime(Date.today) }
|
||||
end
|
||||
|
||||
def test_select_time
|
||||
expected = %(<select id="date_hour" name="date[hour]">\n)
|
||||
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)
|
||||
|
@ -933,32 +990,9 @@ class DateHelperTest < ActionView::TestCase
|
|||
assert_dom_equal expected, select_time(Time.mktime(2003, 8, 16, 8, 4, 18), {}, :class => 'selector')
|
||||
assert_dom_equal expected, select_time(Time.mktime(2003, 8, 16, 8, 4, 18), {:include_seconds => false}, :class => 'selector')
|
||||
end
|
||||
|
||||
uses_mocha 'TestDatetimeAndTimeSelectUseTimeCurrentAsDefault' do
|
||||
def test_select_datetime_uses_time_current_as_default
|
||||
time = stub(:year => 2004, :month => 6, :day => 15, :hour => 16, :min => 35, :sec => 0)
|
||||
Time.expects(:current).returns time
|
||||
expects(:select_date).with(time, anything, anything).returns('')
|
||||
expects(:select_time).with(time, anything, anything).returns('')
|
||||
select_datetime
|
||||
end
|
||||
|
||||
def test_select_time_uses_time_current_as_default
|
||||
time = stub(:year => 2004, :month => 6, :day => 15, :hour => 16, :min => 35, :sec => 0)
|
||||
Time.expects(:current).returns time
|
||||
expects(:select_hour).with(time, anything, anything).returns('')
|
||||
expects(:select_minute).with(time, anything, anything).returns('')
|
||||
select_time
|
||||
end
|
||||
|
||||
def test_select_date_uses_date_current_as_default
|
||||
date = stub(:year => 2004, :month => 6, :day => 15)
|
||||
Date.expects(:current).returns date
|
||||
expects(:select_year).with(date, anything, anything).returns('')
|
||||
expects(:select_month).with(date, anything, anything).returns('')
|
||||
expects(:select_day).with(date, anything, anything).returns('')
|
||||
select_date
|
||||
end
|
||||
|
||||
def test_select_time_should_work_with_date
|
||||
assert_nothing_raised { select_time(Date.today) }
|
||||
end
|
||||
|
||||
def test_date_select
|
||||
|
@ -1002,17 +1036,15 @@ class DateHelperTest < ActionView::TestCase
|
|||
@post = Post.new
|
||||
@post.written_on = Date.new(2004, 6, 15)
|
||||
|
||||
_erbout = ''
|
||||
|
||||
fields_for :post, @post do |f|
|
||||
_erbout.concat f.date_select(:written_on)
|
||||
concat f.date_select(:written_on)
|
||||
end
|
||||
|
||||
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"
|
||||
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"
|
||||
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"
|
||||
|
||||
assert_dom_equal(expected, _erbout)
|
||||
assert_dom_equal(expected, output_buffer)
|
||||
end
|
||||
|
||||
def test_date_select_with_index
|
||||
|
@ -1161,10 +1193,8 @@ class DateHelperTest < ActionView::TestCase
|
|||
@post = Post.new
|
||||
@post.written_on = Date.new(2004, 6, 15)
|
||||
|
||||
_erbout = ''
|
||||
|
||||
fields_for :post, @post do |f|
|
||||
_erbout.concat f.date_select(:written_on, {}, :class => 'selector')
|
||||
concat f.date_select(:written_on, {}, :class => 'selector')
|
||||
end
|
||||
|
||||
expected = %{<select id="post_written_on_1i" name="post[written_on(1i)]" class="selector">\n}
|
||||
|
@ -1180,7 +1210,31 @@ class DateHelperTest < ActionView::TestCase
|
|||
|
||||
expected << "</select>\n"
|
||||
|
||||
assert_dom_equal expected, _erbout
|
||||
assert_dom_equal expected, output_buffer
|
||||
end
|
||||
|
||||
def test_date_select_with_separator
|
||||
@post = Post.new
|
||||
@post.written_on = Date.new(2004, 6, 15)
|
||||
|
||||
expected = %{<select id="post_written_on_1i" name="post[written_on(1i)]">\n}
|
||||
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}
|
||||
expected << "</select>\n"
|
||||
|
||||
expected << " / "
|
||||
|
||||
expected << %{<select id="post_written_on_2i" name="post[written_on(2i)]">\n}
|
||||
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}
|
||||
expected << "</select>\n"
|
||||
|
||||
expected << " / "
|
||||
|
||||
expected << %{<select id="post_written_on_3i" name="post[written_on(3i)]">\n}
|
||||
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}
|
||||
|
||||
expected << "</select>\n"
|
||||
|
||||
assert_dom_equal expected, date_select("post", "written_on", { :date_separator => " / " })
|
||||
end
|
||||
|
||||
def test_time_select
|
||||
|
@ -1192,16 +1246,31 @@ class DateHelperTest < ActionView::TestCase
|
|||
expected << %{<input type="hidden" id="post_written_on_3i" name="post[written_on(3i)]" value="15" />\n}
|
||||
|
||||
expected << %(<select id="post_written_on_4i" name="post[written_on(4i)]">\n)
|
||||
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) }
|
||||
0.upto(23) { |i| expected << %(<option value="#{sprintf("%02d", i)}"#{' selected="selected"' if i == 15}>#{sprintf("%02d", i)}</option>\n) }
|
||||
expected << "</select>\n"
|
||||
expected << " : "
|
||||
expected << %(<select id="post_written_on_5i" name="post[written_on(5i)]">\n)
|
||||
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) }
|
||||
0.upto(59) { |i| expected << %(<option value="#{sprintf("%02d", i)}"#{' selected="selected"' if i == 16}>#{sprintf("%02d", i)}</option>\n) }
|
||||
expected << "</select>\n"
|
||||
|
||||
assert_dom_equal expected, time_select("post", "written_on")
|
||||
end
|
||||
|
||||
def test_time_select_without_date_hidden_fields
|
||||
@post = Post.new
|
||||
@post.written_on = Time.local(2004, 6, 15, 15, 16, 35)
|
||||
|
||||
expected = %(<select id="post_written_on_4i" name="post[written_on(4i)]">\n)
|
||||
0.upto(23) { |i| expected << %(<option value="#{sprintf("%02d", i)}"#{' selected="selected"' if i == 15}>#{sprintf("%02d", i)}</option>\n) }
|
||||
expected << "</select>\n"
|
||||
expected << " : "
|
||||
expected << %(<select id="post_written_on_5i" name="post[written_on(5i)]">\n)
|
||||
0.upto(59) { |i| expected << %(<option value="#{sprintf("%02d", i)}"#{' selected="selected"' if i == 16}>#{sprintf("%02d", i)}</option>\n) }
|
||||
expected << "</select>\n"
|
||||
|
||||
assert_dom_equal expected, time_select("post", "written_on", :ignore_date => true)
|
||||
end
|
||||
|
||||
def test_time_select_with_seconds
|
||||
@post = Post.new
|
||||
@post.written_on = Time.local(2004, 6, 15, 15, 16, 35)
|
||||
|
@ -1211,15 +1280,15 @@ class DateHelperTest < ActionView::TestCase
|
|||
expected << %{<input type="hidden" id="post_written_on_3i" name="post[written_on(3i)]" value="15" />\n}
|
||||
|
||||
expected << %(<select id="post_written_on_4i" name="post[written_on(4i)]">\n)
|
||||
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) }
|
||||
0.upto(23) { |i| expected << %(<option value="#{sprintf("%02d", i)}"#{' selected="selected"' if i == 15}>#{sprintf("%02d", i)}</option>\n) }
|
||||
expected << "</select>\n"
|
||||
expected << " : "
|
||||
expected << %(<select id="post_written_on_5i" name="post[written_on(5i)]">\n)
|
||||
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) }
|
||||
0.upto(59) { |i| expected << %(<option value="#{sprintf("%02d", i)}"#{' selected="selected"' if i == 16}>#{sprintf("%02d", i)}</option>\n) }
|
||||
expected << "</select>\n"
|
||||
expected << " : "
|
||||
expected << %(<select id="post_written_on_6i" name="post[written_on(6i)]">\n)
|
||||
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) }
|
||||
0.upto(59) { |i| expected << %(<option value="#{sprintf("%02d", i)}"#{' selected="selected"' if i == 35}>#{sprintf("%02d", i)}</option>\n) }
|
||||
expected << "</select>\n"
|
||||
|
||||
assert_dom_equal expected, time_select("post", "written_on", :include_seconds => true)
|
||||
|
@ -1234,11 +1303,11 @@ class DateHelperTest < ActionView::TestCase
|
|||
expected << %{<input type="hidden" id="post_written_on_3i" name="post[written_on(3i)]" value="15" />\n}
|
||||
|
||||
expected << %(<select id="post_written_on_4i" name="post[written_on(4i)]" class="selector">\n)
|
||||
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) }
|
||||
0.upto(23) { |i| expected << %(<option value="#{sprintf("%02d", i)}"#{' selected="selected"' if i == 15}>#{sprintf("%02d", i)}</option>\n) }
|
||||
expected << "</select>\n"
|
||||
expected << " : "
|
||||
expected << %(<select id="post_written_on_5i" name="post[written_on(5i)]" class="selector">\n)
|
||||
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) }
|
||||
0.upto(59) { |i| expected << %(<option value="#{sprintf("%02d", i)}"#{' selected="selected"' if i == 16}>#{sprintf("%02d", i)}</option>\n) }
|
||||
expected << "</select>\n"
|
||||
|
||||
assert_dom_equal expected, time_select("post", "written_on", {}, :class => 'selector')
|
||||
|
@ -1248,10 +1317,8 @@ class DateHelperTest < ActionView::TestCase
|
|||
@post = Post.new
|
||||
@post.written_on = Time.local(2004, 6, 15, 15, 16, 35)
|
||||
|
||||
_erbout = ''
|
||||
|
||||
fields_for :post, @post do |f|
|
||||
_erbout.concat f.time_select(:written_on, {}, :class => 'selector')
|
||||
concat f.time_select(:written_on, {}, :class => 'selector')
|
||||
end
|
||||
|
||||
expected = %{<input type="hidden" id="post_written_on_1i" name="post[written_on(1i)]" value="2004" />\n}
|
||||
|
@ -1259,14 +1326,41 @@ class DateHelperTest < ActionView::TestCase
|
|||
expected << %{<input type="hidden" id="post_written_on_3i" name="post[written_on(3i)]" value="15" />\n}
|
||||
|
||||
expected << %(<select id="post_written_on_4i" name="post[written_on(4i)]" class="selector">\n)
|
||||
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) }
|
||||
0.upto(23) { |i| expected << %(<option value="#{sprintf("%02d", i)}"#{' selected="selected"' if i == 15}>#{sprintf("%02d", i)}</option>\n) }
|
||||
expected << "</select>\n"
|
||||
expected << " : "
|
||||
expected << %(<select id="post_written_on_5i" name="post[written_on(5i)]" class="selector">\n)
|
||||
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) }
|
||||
0.upto(59) { |i| expected << %(<option value="#{sprintf("%02d", i)}"#{' selected="selected"' if i == 16}>#{sprintf("%02d", i)}</option>\n) }
|
||||
expected << "</select>\n"
|
||||
|
||||
assert_dom_equal expected, _erbout
|
||||
assert_dom_equal expected, output_buffer
|
||||
end
|
||||
|
||||
def test_time_select_with_separator
|
||||
@post = Post.new
|
||||
@post.written_on = Time.local(2004, 6, 15, 15, 16, 35)
|
||||
|
||||
expected = %{<input type="hidden" id="post_written_on_1i" name="post[written_on(1i)]" value="2004" />\n}
|
||||
expected << %{<input type="hidden" id="post_written_on_2i" name="post[written_on(2i)]" value="6" />\n}
|
||||
expected << %{<input type="hidden" id="post_written_on_3i" name="post[written_on(3i)]" value="15" />\n}
|
||||
|
||||
expected << %(<select id="post_written_on_4i" name="post[written_on(4i)]">\n)
|
||||
0.upto(23) { |i| expected << %(<option value="#{sprintf("%02d", i)}"#{' selected="selected"' if i == 15}>#{sprintf("%02d", i)}</option>\n) }
|
||||
expected << "</select>\n"
|
||||
|
||||
expected << " - "
|
||||
|
||||
expected << %(<select id="post_written_on_5i" name="post[written_on(5i)]">\n)
|
||||
0.upto(59) { |i| expected << %(<option value="#{sprintf("%02d", i)}"#{' selected="selected"' if i == 16}>#{sprintf("%02d", i)}</option>\n) }
|
||||
expected << "</select>\n"
|
||||
|
||||
expected << " - "
|
||||
|
||||
expected << %(<select id="post_written_on_6i" name="post[written_on(6i)]">\n)
|
||||
0.upto(59) { |i| expected << %(<option value="#{sprintf("%02d", i)}"#{' selected="selected"' if i == 35}>#{sprintf("%02d", i)}</option>\n) }
|
||||
expected << "</select>\n"
|
||||
|
||||
assert_dom_equal expected, time_select("post", "written_on", { :time_separator => " - ", :include_seconds => true })
|
||||
end
|
||||
|
||||
def test_datetime_select
|
||||
|
@ -1297,7 +1391,7 @@ class DateHelperTest < ActionView::TestCase
|
|||
|
||||
assert_dom_equal expected, datetime_select("post", "updated_at")
|
||||
end
|
||||
|
||||
|
||||
uses_mocha 'TestDatetimeSelectDefaultsToTimeZoneNowWhenConfigTimeZoneIsSet' do
|
||||
def test_datetime_select_defaults_to_time_zone_now_when_config_time_zone_is_set
|
||||
time = stub(:year => 2004, :month => 6, :day => 15, :hour => 16, :min => 35, :sec => 0)
|
||||
|
@ -1338,10 +1432,8 @@ class DateHelperTest < ActionView::TestCase
|
|||
@post = Post.new
|
||||
@post.updated_at = Time.local(2004, 6, 15, 16, 35)
|
||||
|
||||
_erbout = ''
|
||||
|
||||
fields_for :post, @post do |f|
|
||||
_erbout.concat f.datetime_select(:updated_at, {}, :class => 'selector')
|
||||
concat f.datetime_select(:updated_at, {}, :class => 'selector')
|
||||
end
|
||||
|
||||
expected = "<select id='post_updated_at_1i' name='post[updated_at(1i)]' class='selector'>\n<option value='1999'>1999</option>\n<option value='2000'>2000</option>\n<option value='2001'>2001</option>\n<option value='2002'>2002</option>\n<option value='2003'>2003</option>\n<option selected='selected' value='2004'>2004</option>\n<option value='2005'>2005</option>\n<option value='2006'>2006</option>\n<option value='2007'>2007</option>\n<option value='2008'>2008</option>\n<option value='2009'>2009</option>\n</select>\n"
|
||||
|
@ -1350,7 +1442,48 @@ class DateHelperTest < ActionView::TestCase
|
|||
expected << " — <select id='post_updated_at_4i' name='post[updated_at(4i)]' class='selector'>\n<option value='00'>00</option>\n<option value='01'>01</option>\n<option value='02'>02</option>\n<option value='03'>03</option>\n<option value='04'>04</option>\n<option value='05'>05</option>\n<option value='06'>06</option>\n<option value='07'>07</option>\n<option value='08'>08</option>\n<option value='09'>09</option>\n<option value='10'>10</option>\n<option value='11'>11</option>\n<option value='12'>12</option>\n<option value='13'>13</option>\n<option value='14'>14</option>\n<option value='15'>15</option>\n<option selected='selected' value='16'>16</option>\n<option value='17'>17</option>\n<option value='18'>18</option>\n<option value='19'>19</option>\n<option value='20'>20</option>\n<option value='21'>21</option>\n<option value='22'>22</option>\n<option value='23'>23</option>\n</select>\n"
|
||||
expected << " : <select id='post_updated_at_5i' name='post[updated_at(5i)]' class='selector'>\n<option value='00'>00</option>\n<option value='01'>01</option>\n<option value='02'>02</option>\n<option value='03'>03</option>\n<option value='04'>04</option>\n<option value='05'>05</option>\n<option value='06'>06</option>\n<option value='07'>07</option>\n<option value='08'>08</option>\n<option value='09'>09</option>\n<option value='10'>10</option>\n<option value='11'>11</option>\n<option value='12'>12</option>\n<option value='13'>13</option>\n<option value='14'>14</option>\n<option value='15'>15</option>\n<option value='16'>16</option>\n<option value='17'>17</option>\n<option value='18'>18</option>\n<option value='19'>19</option>\n<option value='20'>20</option>\n<option value='21'>21</option>\n<option value='22'>22</option>\n<option value='23'>23</option>\n<option value='24'>24</option>\n<option value='25'>25</option>\n<option value='26'>26</option>\n<option value='27'>27</option>\n<option value='28'>28</option>\n<option value='29'>29</option>\n<option value='30'>30</option>\n<option value='31'>31</option>\n<option value='32'>32</option>\n<option value='33'>33</option>\n<option value='34'>34</option>\n<option selected='selected' value='35'>35</option>\n<option value='36'>36</option>\n<option value='37'>37</option>\n<option value='38'>38</option>\n<option value='39'>39</option>\n<option value='40'>40</option>\n<option value='41'>41</option>\n<option value='42'>42</option>\n<option value='43'>43</option>\n<option value='44'>44</option>\n<option value='45'>45</option>\n<option value='46'>46</option>\n<option value='47'>47</option>\n<option value='48'>48</option>\n<option value='49'>49</option>\n<option value='50'>50</option>\n<option value='51'>51</option>\n<option value='52'>52</option>\n<option value='53'>53</option>\n<option value='54'>54</option>\n<option value='55'>55</option>\n<option value='56'>56</option>\n<option value='57'>57</option>\n<option value='58'>58</option>\n<option value='59'>59</option>\n</select>\n"
|
||||
|
||||
assert_dom_equal expected, _erbout
|
||||
assert_dom_equal expected, output_buffer
|
||||
end
|
||||
|
||||
def test_datetime_select_with_separators
|
||||
@post = Post.new
|
||||
@post.updated_at = Time.local(2004, 6, 15, 15, 16, 35)
|
||||
|
||||
expected = %{<select id="post_updated_at_1i" name="post[updated_at(1i)]">\n}
|
||||
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}
|
||||
expected << "</select>\n"
|
||||
|
||||
expected << " / "
|
||||
|
||||
expected << %{<select id="post_updated_at_2i" name="post[updated_at(2i)]">\n}
|
||||
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}
|
||||
expected << "</select>\n"
|
||||
|
||||
expected << " / "
|
||||
|
||||
expected << %{<select id="post_updated_at_3i" name="post[updated_at(3i)]">\n}
|
||||
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}
|
||||
expected << "</select>\n"
|
||||
|
||||
expected << " , "
|
||||
|
||||
expected << %(<select id="post_updated_at_4i" name="post[updated_at(4i)]">\n)
|
||||
0.upto(23) { |i| expected << %(<option value="#{sprintf("%02d", i)}"#{' selected="selected"' if i == 15}>#{sprintf("%02d", i)}</option>\n) }
|
||||
expected << "</select>\n"
|
||||
|
||||
expected << " - "
|
||||
|
||||
expected << %(<select id="post_updated_at_5i" name="post[updated_at(5i)]">\n)
|
||||
0.upto(59) { |i| expected << %(<option value="#{sprintf("%02d", i)}"#{' selected="selected"' if i == 16}>#{sprintf("%02d", i)}</option>\n) }
|
||||
expected << "</select>\n"
|
||||
|
||||
expected << " - "
|
||||
|
||||
expected << %(<select id="post_updated_at_6i" name="post[updated_at(6i)]">\n)
|
||||
0.upto(59) { |i| expected << %(<option value="#{sprintf("%02d", i)}"#{' selected="selected"' if i == 35}>#{sprintf("%02d", i)}</option>\n) }
|
||||
expected << "</select>\n"
|
||||
|
||||
assert_dom_equal expected, datetime_select("post", "updated_at", { :date_separator => " / ", :datetime_separator => " , ", :time_separator => " - ", :include_seconds => true })
|
||||
end
|
||||
|
||||
def test_date_select_with_zero_value_and_no_start_year
|
||||
|
@ -1363,8 +1496,7 @@ class DateHelperTest < ActionView::TestCase
|
|||
expected << "</select>\n"
|
||||
|
||||
expected << %(<select id="date_first_day" name="date[first][day]">\n)
|
||||
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)
|
||||
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)
|
||||
expected << "</select>\n"
|
||||
|
||||
assert_dom_equal expected, select_date(0, :end_year => Date.today.year+1, :prefix => "date[first]")
|
||||
|
@ -1381,8 +1513,7 @@ class DateHelperTest < ActionView::TestCase
|
|||
expected << "</select>\n"
|
||||
|
||||
expected << %(<select id="date_first_day" name="date[first][day]">\n)
|
||||
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)
|
||||
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)
|
||||
expected << "</select>\n"
|
||||
|
||||
assert_dom_equal expected, select_date(0, :start_year => 2003, :prefix => "date[first]")
|
||||
|
@ -1398,8 +1529,7 @@ class DateHelperTest < ActionView::TestCase
|
|||
expected << "</select>\n"
|
||||
|
||||
expected << %(<select id="date_first_day" name="date[first][day]">\n)
|
||||
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)
|
||||
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)
|
||||
expected << "</select>\n"
|
||||
|
||||
assert_dom_equal expected, select_date(0, :prefix => "date[first]")
|
||||
|
@ -1415,8 +1545,7 @@ class DateHelperTest < ActionView::TestCase
|
|||
expected << "</select>\n"
|
||||
|
||||
expected << %(<select id="date_first_day" name="date[first][day]">\n)
|
||||
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)
|
||||
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)
|
||||
expected << "</select>\n"
|
||||
|
||||
assert_dom_equal expected, select_date(nil, :prefix => "date[first]")
|
||||
|
@ -1523,15 +1652,15 @@ class DateHelperTest < ActionView::TestCase
|
|||
expected << " — "
|
||||
|
||||
expected << %{<select id="post_updated_at_4i" name="post[updated_at(4i)]">\n}
|
||||
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) }
|
||||
0.upto(23) { |i| expected << %(<option value="#{sprintf("%02d", i)}"#{' selected="selected"' if i == 15}>#{sprintf("%02d", i)}</option>\n) }
|
||||
expected << "</select>\n"
|
||||
expected << " : "
|
||||
expected << %{<select id="post_updated_at_5i" name="post[updated_at(5i)]">\n}
|
||||
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) }
|
||||
0.upto(59) { |i| expected << %(<option value="#{sprintf("%02d", i)}"#{' selected="selected"' if i == 16}>#{sprintf("%02d", i)}</option>\n) }
|
||||
expected << "</select>\n"
|
||||
expected << " : "
|
||||
expected << %{<select id="post_updated_at_6i" name="post[updated_at(6i)]">\n}
|
||||
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) }
|
||||
0.upto(59) { |i| expected << %(<option value="#{sprintf("%02d", i)}"#{' selected="selected"' if i == 35}>#{sprintf("%02d", i)}</option>\n) }
|
||||
expected << "</select>\n"
|
||||
|
||||
assert_dom_equal expected, datetime_select("post", "updated_at", :include_seconds => true)
|
||||
|
@ -1552,11 +1681,11 @@ class DateHelperTest < ActionView::TestCase
|
|||
expected << " — "
|
||||
|
||||
expected << %{<select id="post_updated_at_4i" name="post[updated_at(4i)]">\n}
|
||||
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) }
|
||||
0.upto(23) { |i| expected << %(<option value="#{sprintf("%02d", i)}"#{' selected="selected"' if i == 15}>#{sprintf("%02d", i)}</option>\n) }
|
||||
expected << "</select>\n"
|
||||
expected << " : "
|
||||
expected << %{<select id="post_updated_at_5i" name="post[updated_at(5i)]">\n}
|
||||
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) }
|
||||
0.upto(59) { |i| expected << %(<option value="#{sprintf("%02d", i)}"#{' selected="selected"' if i == 16}>#{sprintf("%02d", i)}</option>\n) }
|
||||
expected << "</select>\n"
|
||||
|
||||
assert_dom_equal expected, datetime_select("post", "updated_at", :discard_year => true)
|
||||
|
@ -1575,11 +1704,11 @@ class DateHelperTest < ActionView::TestCase
|
|||
expected << " — "
|
||||
|
||||
expected << %{<select id="post_updated_at_4i" name="post[updated_at(4i)]">\n}
|
||||
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) }
|
||||
0.upto(23) { |i| expected << %(<option value="#{sprintf("%02d", i)}"#{' selected="selected"' if i == 15}>#{sprintf("%02d", i)}</option>\n) }
|
||||
expected << "</select>\n"
|
||||
expected << " : "
|
||||
expected << %{<select id="post_updated_at_5i" name="post[updated_at(5i)]">\n}
|
||||
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) }
|
||||
0.upto(59) { |i| expected << %(<option value="#{sprintf("%02d", i)}"#{' selected="selected"' if i == 16}>#{sprintf("%02d", i)}</option>\n) }
|
||||
expected << "</select>\n"
|
||||
|
||||
assert_dom_equal expected, datetime_select("post", "updated_at", :discard_month => true)
|
||||
|
@ -1594,11 +1723,11 @@ class DateHelperTest < ActionView::TestCase
|
|||
expected << %{<input type="hidden" id="post_updated_at_3i" name="post[updated_at(3i)]" value="15" />\n}
|
||||
|
||||
expected << %{<select id="post_updated_at_4i" name="post[updated_at(4i)]">\n}
|
||||
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) }
|
||||
0.upto(23) { |i| expected << %(<option value="#{sprintf("%02d", i)}"#{' selected="selected"' if i == 15}>#{sprintf("%02d", i)}</option>\n) }
|
||||
expected << "</select>\n"
|
||||
expected << " : "
|
||||
expected << %{<select id="post_updated_at_5i" name="post[updated_at(5i)]">\n}
|
||||
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) }
|
||||
0.upto(59) { |i| expected << %(<option value="#{sprintf("%02d", i)}"#{' selected="selected"' if i == 16}>#{sprintf("%02d", i)}</option>\n) }
|
||||
expected << "</select>\n"
|
||||
|
||||
assert_dom_equal expected, datetime_select("post", "updated_at", :discard_year => true, :discard_month => true)
|
||||
|
@ -1621,11 +1750,11 @@ class DateHelperTest < ActionView::TestCase
|
|||
expected << " — "
|
||||
|
||||
expected << %{<select id="post_updated_at_4i" name="post[updated_at(4i)]">\n}
|
||||
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) }
|
||||
0.upto(23) { |i| expected << %(<option value="#{sprintf("%02d", i)}"#{' selected="selected"' if i == 15}>#{sprintf("%02d", i)}</option>\n) }
|
||||
expected << "</select>\n"
|
||||
expected << " : "
|
||||
expected << %{<select id="post_updated_at_5i" name="post[updated_at(5i)]">\n}
|
||||
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) }
|
||||
0.upto(59) { |i| expected << %(<option value="#{sprintf("%02d", i)}"#{' selected="selected"' if i == 16}>#{sprintf("%02d", i)}</option>\n) }
|
||||
expected << "</select>\n"
|
||||
|
||||
assert_dom_equal expected, datetime_select("post", "updated_at", :order => [:minute, :day, :hour, :month, :year, :second])
|
||||
|
@ -1646,11 +1775,11 @@ class DateHelperTest < ActionView::TestCase
|
|||
expected << " — "
|
||||
|
||||
expected << %{<select id="post_updated_at_4i" name="post[updated_at(4i)]">\n}
|
||||
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) }
|
||||
0.upto(23) { |i| expected << %(<option value="#{sprintf("%02d", i)}"#{' selected="selected"' if i == 15}>#{sprintf("%02d", i)}</option>\n) }
|
||||
expected << "</select>\n"
|
||||
expected << " : "
|
||||
expected << %{<select id="post_updated_at_5i" name="post[updated_at(5i)]">\n}
|
||||
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) }
|
||||
0.upto(59) { |i| expected << %(<option value="#{sprintf("%02d", i)}"#{' selected="selected"' if i == 16}>#{sprintf("%02d", i)}</option>\n) }
|
||||
expected << "</select>\n"
|
||||
|
||||
assert_dom_equal expected, datetime_select("post", "updated_at", :order => [:day, :month])
|
||||
|
@ -1673,11 +1802,11 @@ class DateHelperTest < ActionView::TestCase
|
|||
expected << " — "
|
||||
|
||||
expected << %{<select id="post_updated_at_4i" name="post[updated_at(4i)]">\n}
|
||||
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) }
|
||||
0.upto(23) { |i| expected << %(<option value="#{sprintf("%02d", i)}"#{' selected="selected"' if i == 15}>#{sprintf("%02d", i)}</option>\n) }
|
||||
expected << "</select>\n"
|
||||
expected << " : "
|
||||
expected << %{<select id="post_updated_at_5i" name="post[updated_at(5i)]">\n}
|
||||
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) }
|
||||
0.upto(59) { |i| expected << %(<option value="#{sprintf("%02d", i)}"#{' selected="selected"' if i == 16}>#{sprintf("%02d", i)}</option>\n) }
|
||||
expected << "</select>\n"
|
||||
|
||||
assert_dom_equal expected, datetime_select("post", "updated_at", :default => Time.local(2006, 9, 19, 15, 16, 35))
|
||||
|
@ -1720,11 +1849,11 @@ class DateHelperTest < ActionView::TestCase
|
|||
expected << " — "
|
||||
|
||||
expected << %{<select id="post_updated_at_4i" name="post[updated_at(4i)]">\n}
|
||||
0.upto(23) { |i| expected << %(<option value="#{leading_zero_on_single_digits(i)}"#{' selected="selected"' if i == 9}>#{leading_zero_on_single_digits(i)}</option>\n) }
|
||||
0.upto(23) { |i| expected << %(<option value="#{sprintf("%02d", i)}"#{' selected="selected"' if i == 9}>#{sprintf("%02d", i)}</option>\n) }
|
||||
expected << "</select>\n"
|
||||
expected << " : "
|
||||
expected << %{<select id="post_updated_at_5i" name="post[updated_at(5i)]">\n}
|
||||
0.upto(59) { |i| expected << %(<option value="#{leading_zero_on_single_digits(i)}"#{' selected="selected"' if i == 42}>#{leading_zero_on_single_digits(i)}</option>\n) }
|
||||
0.upto(59) { |i| expected << %(<option value="#{sprintf("%02d", i)}"#{' selected="selected"' if i == 42}>#{sprintf("%02d", i)}</option>\n) }
|
||||
expected << "</select>\n"
|
||||
|
||||
assert_dom_equal expected, datetime_select("post", "updated_at", :default => { :month => 10, :minute => 42, :hour => 9 })
|
||||
|
@ -1759,33 +1888,158 @@ class DateHelperTest < ActionView::TestCase
|
|||
assert_dom_equal expected, datetime_select("post", "updated_at", {}, :class => 'selector')
|
||||
end
|
||||
|
||||
uses_mocha 'TestInstanceTagDefaultTimeFromOptions' do
|
||||
def test_instance_tag_default_time_from_options_uses_time_current_as_default_when_hash_passed_as_arg
|
||||
dummy_instance_tag = ActionView::Helpers::InstanceTag.new(1,2,3)
|
||||
Time.expects(:current).returns Time.now
|
||||
dummy_instance_tag.send!(:default_time_from_options, :hour => 2)
|
||||
end
|
||||
def test_date_select_should_not_change_passed_options_hash
|
||||
@post = Post.new
|
||||
@post.updated_at = Time.local(2008, 7, 16, 23, 30)
|
||||
|
||||
def test_instance_tag_default_time_from_options_respects_hash_arg_settings_when_time_falls_in_system_local_dst_spring_gap
|
||||
with_env_tz('US/Central') do
|
||||
dummy_instance_tag = ActionView::Helpers::InstanceTag.new(1,2,3)
|
||||
Time.stubs(:now).returns Time.local(2006, 4, 2, 1)
|
||||
assert_equal 2, dummy_instance_tag.send!(:default_time_from_options, :hour => 2).hour
|
||||
end
|
||||
end
|
||||
|
||||
def test_instance_tag_default_time_from_options_handles_far_future_date
|
||||
dummy_instance_tag = ActionView::Helpers::InstanceTag.new(1,2,3)
|
||||
time = dummy_instance_tag.send!(:default_time_from_options, :year => 2050, :month => 2, :day => 10, :hour => 15, :min => 30, :sec => 45)
|
||||
assert_equal 2050, time.year
|
||||
end
|
||||
options = {
|
||||
:order => [ :year, :month, :day ],
|
||||
:default => { :year => 2008, :month => 7, :day => 16, :hour => 23, :minute => 30, :second => 1 },
|
||||
:discard_type => false,
|
||||
:include_blank => false,
|
||||
:ignore_date => false,
|
||||
:include_seconds => true
|
||||
}
|
||||
date_select(@post, :updated_at, options)
|
||||
|
||||
# note: the literal hash is intentional to show that the actual options hash isn't modified
|
||||
# don't change this!
|
||||
assert_equal({
|
||||
:order => [ :year, :month, :day ],
|
||||
:default => { :year => 2008, :month => 7, :day => 16, :hour => 23, :minute => 30, :second => 1 },
|
||||
:discard_type => false,
|
||||
:include_blank => false,
|
||||
:ignore_date => false,
|
||||
:include_seconds => true
|
||||
}, options)
|
||||
end
|
||||
|
||||
|
||||
def test_datetime_select_should_not_change_passed_options_hash
|
||||
@post = Post.new
|
||||
@post.updated_at = Time.local(2008, 7, 16, 23, 30)
|
||||
|
||||
options = {
|
||||
:order => [ :year, :month, :day ],
|
||||
:default => { :year => 2008, :month => 7, :day => 16, :hour => 23, :minute => 30, :second => 1 },
|
||||
:discard_type => false,
|
||||
:include_blank => false,
|
||||
:ignore_date => false,
|
||||
:include_seconds => true
|
||||
}
|
||||
datetime_select(@post, :updated_at, options)
|
||||
|
||||
# note: the literal hash is intentional to show that the actual options hash isn't modified
|
||||
# don't change this!
|
||||
assert_equal({
|
||||
:order => [ :year, :month, :day ],
|
||||
:default => { :year => 2008, :month => 7, :day => 16, :hour => 23, :minute => 30, :second => 1 },
|
||||
:discard_type => false,
|
||||
:include_blank => false,
|
||||
:ignore_date => false,
|
||||
:include_seconds => true
|
||||
}, options)
|
||||
end
|
||||
|
||||
def test_time_select_should_not_change_passed_options_hash
|
||||
@post = Post.new
|
||||
@post.updated_at = Time.local(2008, 7, 16, 23, 30)
|
||||
|
||||
options = {
|
||||
:order => [ :year, :month, :day ],
|
||||
:default => { :year => 2008, :month => 7, :day => 16, :hour => 23, :minute => 30, :second => 1 },
|
||||
:discard_type => false,
|
||||
:include_blank => false,
|
||||
:ignore_date => false,
|
||||
:include_seconds => true
|
||||
}
|
||||
time_select(@post, :updated_at, options)
|
||||
|
||||
# note: the literal hash is intentional to show that the actual options hash isn't modified
|
||||
# don't change this!
|
||||
assert_equal({
|
||||
:order => [ :year, :month, :day ],
|
||||
:default => { :year => 2008, :month => 7, :day => 16, :hour => 23, :minute => 30, :second => 1 },
|
||||
:discard_type => false,
|
||||
:include_blank => false,
|
||||
:ignore_date => false,
|
||||
:include_seconds => true
|
||||
}, options)
|
||||
end
|
||||
|
||||
def test_select_date_should_not_change_passed_options_hash
|
||||
options = {
|
||||
:order => [ :year, :month, :day ],
|
||||
:default => { :year => 2008, :month => 7, :day => 16, :hour => 23, :minute => 30, :second => 1 },
|
||||
:discard_type => false,
|
||||
:include_blank => false,
|
||||
:ignore_date => false,
|
||||
:include_seconds => true
|
||||
}
|
||||
select_date(Date.today, options)
|
||||
|
||||
# note: the literal hash is intentional to show that the actual options hash isn't modified
|
||||
# don't change this!
|
||||
assert_equal({
|
||||
:order => [ :year, :month, :day ],
|
||||
:default => { :year => 2008, :month => 7, :day => 16, :hour => 23, :minute => 30, :second => 1 },
|
||||
:discard_type => false,
|
||||
:include_blank => false,
|
||||
:ignore_date => false,
|
||||
:include_seconds => true
|
||||
}, options)
|
||||
end
|
||||
|
||||
def test_select_datetime_should_not_change_passed_options_hash
|
||||
options = {
|
||||
:order => [ :year, :month, :day ],
|
||||
:default => { :year => 2008, :month => 7, :day => 16, :hour => 23, :minute => 30, :second => 1 },
|
||||
:discard_type => false,
|
||||
:include_blank => false,
|
||||
:ignore_date => false,
|
||||
:include_seconds => true
|
||||
}
|
||||
select_datetime(Time.now, options)
|
||||
|
||||
# note: the literal hash is intentional to show that the actual options hash isn't modified
|
||||
# don't change this!
|
||||
assert_equal({
|
||||
:order => [ :year, :month, :day ],
|
||||
:default => { :year => 2008, :month => 7, :day => 16, :hour => 23, :minute => 30, :second => 1 },
|
||||
:discard_type => false,
|
||||
:include_blank => false,
|
||||
:ignore_date => false,
|
||||
:include_seconds => true
|
||||
}, options)
|
||||
end
|
||||
|
||||
def test_select_time_should_not_change_passed_options_hash
|
||||
options = {
|
||||
:order => [ :year, :month, :day ],
|
||||
:default => { :year => 2008, :month => 7, :day => 16, :hour => 23, :minute => 30, :second => 1 },
|
||||
:discard_type => false,
|
||||
:include_blank => false,
|
||||
:ignore_date => false,
|
||||
:include_seconds => true
|
||||
}
|
||||
select_time(Time.now, options)
|
||||
|
||||
# note: the literal hash is intentional to show that the actual options hash isn't modified
|
||||
# don't change this!
|
||||
assert_equal({
|
||||
:order => [ :year, :month, :day ],
|
||||
:default => { :year => 2008, :month => 7, :day => 16, :hour => 23, :minute => 30, :second => 1 },
|
||||
:discard_type => false,
|
||||
:include_blank => false,
|
||||
:ignore_date => false,
|
||||
:include_seconds => true
|
||||
}, options)
|
||||
end
|
||||
|
||||
protected
|
||||
def with_env_tz(new_tz = 'US/Eastern')
|
||||
old_tz, ENV['TZ'] = ENV['TZ'], new_tz
|
||||
yield
|
||||
ensure
|
||||
old_tz ? ENV['TZ'] = old_tz : ENV.delete('TZ')
|
||||
end
|
||||
end
|
||||
end
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue