]> git.openstreetmap.org Git - rails.git/blob - test/helpers/user_blocks_helper_test.rb
Merge remote-tracking branch 'upstream/pull/4705'
[rails.git] / test / helpers / user_blocks_helper_test.rb
1 require "test_helper"
2
3 class UserBlocksHelperTest < ActionView::TestCase
4   include ApplicationHelper
5
6   def test_block_status
7     block = create(:user_block, :needs_view, :ends_at => Time.now.utc)
8     assert_equal "Active until the user logs in.", block_status(block)
9
10     block = create(:user_block, :needs_view, :ends_at => Time.now.utc + 1.hour)
11     assert_match %r{^Ends in <time title=".*" datetime=".*">about 1 hour</time> and after the user has logged in\.$}, block_status(block)
12
13     block = create(:user_block, :ends_at => Time.now.utc + 1.hour)
14     assert_match %r{^Ends in <time title=".* datetime=".*">about 1 hour</time>\.$}, block_status(block)
15   end
16
17   def test_block_duration_in_words
18     words = block_duration_in_words(364.days)
19     assert_equal "11 months", words
20
21     words = block_duration_in_words(24.hours)
22     assert_equal "1 day", words
23
24     # Ensure that nil hours is not passed to i18n.t
25     words = block_duration_in_words(10.minutes)
26     assert_equal "0 hours", words
27
28     words = block_duration_in_words(0)
29     assert_equal "0 hours", words
30
31     # Ensure that (slightly) negative durations don't mess everything up
32     # This can happen on zero hour blocks when ends_at is a millisecond before created_at
33     words = block_duration_in_words(-0.001)
34     assert_equal "0 hours", words
35   end
36 end