]> git.openstreetmap.org Git - rails.git/commitdiff
Merge remote-tracking branch 'openstreetmap/pull/1445'
authorTom Hughes <tom@compton.nu>
Sun, 19 Feb 2017 11:38:27 +0000 (11:38 +0000)
committerTom Hughes <tom@compton.nu>
Sun, 19 Feb 2017 11:38:27 +0000 (11:38 +0000)
app/helpers/user_blocks_helper.rb
config/locales/en.yml
test/helpers/user_blocks_helper_test.rb [new file with mode: 0644]

index 282d9164aa2cc046842b23939a8a6db557696fbe..3c9c0a37e5f6a5d1ab237505e9835a75e844d865 100644 (file)
@@ -4,8 +4,13 @@ module UserBlocksHelper
   # user block (i.e: whether it's active, what the expiry time is)
   def block_status(block)
     if block.active?
+      # if the block hasn't expired yet show the date, if the user just needs to login show that
       if block.needs_view?
-        I18n.t("user_block.helper.until_login")
+        if block.ends_at > Time.now.getutc
+          I18n.t("user_block.helper.time_future_and_until_login", :time => friendly_date(block.ends_at)).html_safe
+        else
+          I18n.t("user_block.helper.until_login")
+        end
       else
         I18n.t("user_block.helper.time_future", :time => friendly_date(block.ends_at)).html_safe
       end
index b2ebffd61a273f7d4d329886ca0c07b8b6a34272..3afa7e805600df14b8c1937c0dfd504f11afea54 100644 (file)
@@ -2112,6 +2112,7 @@ en:
     helper:
       time_future: "Ends in %{time}."
       until_login: "Active until the user logs in."
+      time_future_and_until_login: "Ends in %{time} and after the user has logged in."
       time_past: "Ended %{time} ago."
     blocks_on:
       title: "Blocks on %{name}"
diff --git a/test/helpers/user_blocks_helper_test.rb b/test/helpers/user_blocks_helper_test.rb
new file mode 100644 (file)
index 0000000..de5ff1c
--- /dev/null
@@ -0,0 +1,42 @@
+# coding: utf-8
+require "test_helper"
+
+class UserBlocksHelperTest < ActionView::TestCase
+  include ApplicationHelper
+  def setup
+    I18n.locale = "en"
+  end
+
+  def teardown
+    I18n.locale = "en"
+  end
+
+  def test_block_status
+    block = UserBlock.create(
+      :user_id => 1,
+      :creator_id => 2,
+      :reason => "testing",
+      :needs_view => true,
+      :ends_at => Time.now.getutc
+    )
+    assert_equal I18n.t("user_block.helper.until_login"), block_status(block)
+    block_end = Time.now.getutc + 60.minutes
+    block = UserBlock.create(
+      :user_id => 1,
+      :creator_id => 2,
+      :reason => "testing",
+      :needs_view => true,
+      :ends_at => Time.now.getutc + 60.minutes
+    )
+    assert_equal I18n.t("user_block.helper.time_future_and_until_login", :time => friendly_date(block_end)), block_status(block)
+    block_end = Time.now.getutc + 60.minutes
+    block = UserBlock.create(
+      :user_id => 1,
+      :creator_id => 2,
+      :reason => "testing",
+      :needs_view => false,
+      :ends_at => Time.now.getutc + 60.minutes
+    )
+    assert_equal I18n.t("user_block.helper.time_future", :time => friendly_date(block_end)), block_status(block)
+  end
+end