class DateHelperDistanceOfTimeInWordsI18nTests

Attributes

request[R]

Public Instance Methods

assert_distance_of_time_in_words_translates_key(passed, expected, expected_options = {}) click to toggle source
# File actionview/test/template/date_helper_i18n_test.rb, line 78
def assert_distance_of_time_in_words_translates_key(passed, expected, expected_options = {})
  diff, passed_options = *passed
  key, count = *expected
  to = @from + diff

  options = { locale: "en", scope: :'datetime.distance_in_words' }.merge!(expected_options)
  options[:count] = count if count

  assert_called_with(I18n, :t, [key, options]) do
    distance_of_time_in_words(@from, to, passed_options.merge(locale: "en"))
  end
end
setup() click to toggle source
# File actionview/test/template/date_helper_i18n_test.rb, line 9
def setup
  @from = Time.utc(2004, 6, 6, 21, 45, 0)
end
test_distance_of_time_in_words_calls_i18n() click to toggle source

distance_of_time_in_words

# File actionview/test/template/date_helper_i18n_test.rb, line 15
def test_distance_of_time_in_words_calls_i18n
  { # with include_seconds
    [2.seconds,  { include_seconds: true }]  => [:'less_than_x_seconds', 5],
    [9.seconds,  { include_seconds: true }]  => [:'less_than_x_seconds', 10],
    [19.seconds, { include_seconds: true }]  => [:'less_than_x_seconds', 20],
    [30.seconds, { include_seconds: true }]  => [:'half_a_minute',       nil],
    [59.seconds, { include_seconds: true }]  => [:'less_than_x_minutes', 1],
    [60.seconds, { include_seconds: true }]  => [:'x_minutes',           1],

    # without include_seconds
    [29.seconds,          { include_seconds: false }] => [:'less_than_x_minutes', 1],
    [60.seconds,          { include_seconds: false }] => [:'x_minutes',           1],
    [44.minutes,          { include_seconds: false }] => [:'x_minutes',           44],
    [61.minutes,          { include_seconds: false }] => [:'about_x_hours',       1],
    [24.hours,            { include_seconds: false }] => [:'x_days',              1],
    [30.days,             { include_seconds: false }] => [:'about_x_months',      1],
    [60.days,             { include_seconds: false }] => [:'x_months',            2],
    [1.year,              { include_seconds: false }] => [:'about_x_years',       1],
    [3.years + 6.months,  { include_seconds: false }] => [:'over_x_years',        3],
    [3.years + 10.months, { include_seconds: false }] => [:'almost_x_years',      4]

    }.each do |passed, expected|
    assert_distance_of_time_in_words_translates_key passed, expected
  end
end
test_distance_of_time_in_words_calls_i18n_with_custom_scope() click to toggle source
# File actionview/test/template/date_helper_i18n_test.rb, line 41
def test_distance_of_time_in_words_calls_i18n_with_custom_scope
  {
    [30.days, { scope: :'datetime.distance_in_words_ago' }] => [:'about_x_months', 1],
    [60.days, { scope: :'datetime.distance_in_words_ago' }] => [:'x_months',       2],
  }.each do |passed, expected|
    assert_distance_of_time_in_words_translates_key(passed, expected, scope: :'datetime.distance_in_words_ago')
  end
end
test_distance_of_time_pluralizations() click to toggle source
# File actionview/test/template/date_helper_i18n_test.rb, line 56
def test_distance_of_time_pluralizations
  { [:'less_than_x_seconds', 1]   => "less than 1 second",
    [:'less_than_x_seconds', 2]   => "less than 2 seconds",
    [:'less_than_x_minutes', 1]   => "less than a minute",
    [:'less_than_x_minutes', 2]   => "less than 2 minutes",
    [:'x_minutes',           1]   => "1 minute",
    [:'x_minutes',           2]   => "2 minutes",
    [:'about_x_hours',       1]   => "about 1 hour",
    [:'about_x_hours',       2]   => "about 2 hours",
    [:'x_days',              1]   => "1 day",
    [:'x_days',              2]   => "2 days",
    [:'about_x_years',       1]   => "about 1 year",
    [:'about_x_years',       2]   => "about 2 years",
    [:'over_x_years',        1]   => "over 1 year",
    [:'over_x_years',        2]   => "over 2 years"

    }.each do |args, expected|
    key, count = *args
    assert_equal expected, I18n.t(key, count: count, scope: "datetime.distance_in_words")
  end
end
test_time_ago_in_words_passes_locale() click to toggle source
# File actionview/test/template/date_helper_i18n_test.rb, line 50
def test_time_ago_in_words_passes_locale
  assert_called_with(I18n, :t, [:less_than_x_minutes, scope: :'datetime.distance_in_words', count: 1, locale: "ru"]) do
    time_ago_in_words(15.seconds.ago, locale: "ru")
  end
end