⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 date_helper_test.rb

📁 A Hotel Management System based on Ruby on Rails.
💻 RB
📖 第 1 页 / 共 5 页
字号:
require File.dirname(__FILE__) + '/test_helper'

class DateHelperTest < Test::Unit::TestCase
  fixtures :globalize_languages, :globalize_countries, :globalize_translations
  include ActionView::Helpers::DateHelper
  
  def setup
    Globalize::Locale.set 'en'
  end

  def test_distance_in_words
    from = Time.mktime(2004, 3, 6, 21, 41, 18)
    
    assert_equal "less than a minute", distance_of_time_in_words(from, Time.mktime(2004, 3, 6, 21, 41, 25))
    assert_equal "5 minutes", distance_of_time_in_words(from, Time.mktime(2004, 3, 6, 21, 46, 25))

    # We didn't supply the plural translation for this; in production, we would
    assert_equal "about 1 hours", distance_of_time_in_words(from, Time.mktime(2004, 3, 6, 22, 47, 25))

    assert_equal "about 3 hours", distance_of_time_in_words(from, Time.mktime(2004, 3, 7, 0, 41))
    assert_equal "about 4 hours", distance_of_time_in_words(from, Time.mktime(2004, 3, 7, 1, 20))
    assert_equal "2 days", distance_of_time_in_words(from, Time.mktime(2004, 3, 9, 15, 40))

    # include seconds 
    assert_equal "less than a minute", distance_of_time_in_words(from, Time.mktime(2004, 3, 6, 21, 41, 19), false)
    assert_equal "less than 5 seconds", distance_of_time_in_words(from, Time.mktime(2004, 3, 6, 21, 41, 19), true)
    assert_equal "less than 10 seconds", distance_of_time_in_words(from, Time.mktime(2004, 3, 6, 21, 41, 28), true)
    assert_equal "less than 20 seconds", distance_of_time_in_words(from, Time.mktime(2004, 3, 6, 21, 41, 38), true)
    assert_equal "half a minute", distance_of_time_in_words(from, Time.mktime(2004, 3, 6, 21, 41, 48), true)
    assert_equal "less than a minute", distance_of_time_in_words(from, Time.mktime(2004, 3, 6, 21, 42, 17), true)
    
    # We didn't supply the plural translation for this; in production, we would    
    assert_equal "1 minutes", distance_of_time_in_words(from, Time.mktime(2004, 3, 6, 21, 42, 18), true)
    assert_equal "1 minutes", distance_of_time_in_words(from, Time.mktime(2004, 3, 6, 21, 42, 28), true)

    assert_equal "2 minutes", distance_of_time_in_words(from, Time.mktime(2004, 3, 6, 21, 42, 48), true)
    
    # test to < from
    assert_equal "about 4 hours", distance_of_time_in_words(Time.mktime(2004, 3, 7, 1, 20), from)
    assert_equal "less than 20 seconds", distance_of_time_in_words(Time.mktime(2004, 3, 6, 21, 41, 38), from, true)
    
    # test with integers
    assert_equal "less than a minute", distance_of_time_in_words(50)

    # We didn't supply the plural translation for this; in production, we would    
    assert_equal "about 1 hours", distance_of_time_in_words(60*60)
    
    # more cumbersome test with integers
    assert_equal "less than a minute", distance_of_time_in_words(0, 50)

    # We didn't supply the plural translation for this; in production, we would    
    assert_equal "about 1 hours", distance_of_time_in_words(60*60, 0)
    
  end

  def test_distance_in_words_he
    from = Time.mktime(2004, 3, 6, 21, 41, 18)
    Globalize::Locale.set 'he'
    
    assert_equal "5 דקות", distance_of_time_in_words(from, Time.mktime(2004, 3, 6, 21, 46, 25))
    assert_equal "כשעה", distance_of_time_in_words(from, Time.mktime(2004, 3, 6, 22, 47, 25))
    assert_equal "כ-‏3 שעות", distance_of_time_in_words(from, Time.mktime(2004, 3, 7, 0, 41))
    assert_equal "כ-‏4 שעות", distance_of_time_in_words(from, Time.mktime(2004, 3, 7, 1, 20))
    assert_equal "2 ימים", distance_of_time_in_words(from, Time.mktime(2004, 3, 9, 15, 40))

    # include seconds 
    assert_equal "פחות מדקה", distance_of_time_in_words(from, Time.mktime(2004, 3, 6, 21, 41, 19), false)
    assert_equal "פחות מ-‏5 שניות", distance_of_time_in_words(from, Time.mktime(2004, 3, 6, 21, 41, 19), true)
    assert_equal "פחות מ-‏10 שניות", distance_of_time_in_words(from, Time.mktime(2004, 3, 6, 21, 41, 28), true)
    assert_equal "פחות מ-‏20 שניות", distance_of_time_in_words(from, Time.mktime(2004, 3, 6, 21, 41, 38), true)
    assert_equal "חצי דקה", distance_of_time_in_words(from, Time.mktime(2004, 3, 6, 21, 41, 48), true)
    assert_equal "פחות מדקה", distance_of_time_in_words(from, Time.mktime(2004, 3, 6, 21, 42, 17), true)
    
    assert_equal "דקה", distance_of_time_in_words(from, Time.mktime(2004, 3, 6, 21, 42, 18), true)
    assert_equal "דקה", distance_of_time_in_words(from, Time.mktime(2004, 3, 6, 21, 42, 28), true)
    assert_equal "2 דקות", distance_of_time_in_words(from, Time.mktime(2004, 3, 6, 21, 42, 48), true)
    
    # test to < from
    assert_equal "כ-‏4 שעות", distance_of_time_in_words(Time.mktime(2004, 3, 7, 1, 20), from)
    assert_equal "פחות מ-‏20 שניות", distance_of_time_in_words(Time.mktime(2004, 3, 6, 21, 41, 38), from, true)
    
    # test with integers
    assert_equal "פחות מדקה", distance_of_time_in_words(50)
    assert_equal "כשעה", distance_of_time_in_words(60*60)
    
    # more cumbersome test with integers
    assert_equal "פחות מדקה", distance_of_time_in_words(0, 50)
    assert_equal "כשעה", distance_of_time_in_words(60*60, 0)
    
  end

  def test_distance_in_words_date
    start_date = Date.new 1975, 1, 31
    end_date = Date.new 1977, 4, 17
    assert_not_equal("13 minutes",
                     distance_of_time_in_words(start_date, end_date))
  end

  def test_select_day
    expected = %(<select name="date[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_equal expected, select_day(Time.mktime(2003, 8, 16))
    assert_equal expected, select_day(16)
  end

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -