From 075d6a1e13aa6477c656e9dbe03e6720cb4e2b32 Mon Sep 17 00:00:00 2001
From: nullkal <nullkal@users.noreply.github.com>
Date: Fri, 18 Aug 2017 00:52:40 +0900
Subject: [PATCH] Show what protocol is used for accounts in
 admin/accounts#index (#4622)

* Show what protocol used for in admin/accounts#index

* Add frozen_string_literal
---
 app/helpers/account_helper.rb               | 14 ++++++++++
 app/views/admin/accounts/_account.html.haml |  3 +++
 app/views/admin/accounts/index.html.haml    |  1 +
 app/views/admin/accounts/show.html.haml     |  2 +-
 spec/helpers/account_helper_spec.rb         | 30 +++++++++++++++++++++
 5 files changed, 49 insertions(+), 1 deletion(-)
 create mode 100644 app/helpers/account_helper.rb
 create mode 100644 spec/helpers/account_helper_spec.rb

diff --git a/app/helpers/account_helper.rb b/app/helpers/account_helper.rb
new file mode 100644
index 0000000000..00d4fc657a
--- /dev/null
+++ b/app/helpers/account_helper.rb
@@ -0,0 +1,14 @@
+# frozen_string_literal: true
+
+module AccountHelper
+  def protocol_for_display(protocol)
+    case protocol
+    when 'activitypub'
+      'ActivityPub'
+    when 'ostatus'
+      'OStatus'
+    else
+      protocol
+    end
+  end
+end
diff --git a/app/views/admin/accounts/_account.html.haml b/app/views/admin/accounts/_account.html.haml
index c513776b7a..a7fca6b3ef 100644
--- a/app/views/admin/accounts/_account.html.haml
+++ b/app/views/admin/accounts/_account.html.haml
@@ -4,6 +4,9 @@
   %td.domain
     - unless account.local?
       = link_to account.domain, admin_accounts_path(by_domain: account.domain)
+  %td.protocol
+    - unless account.local?
+      = protocol_for_display(account.protocol)
   %td.confirmed
     - if account.local?
       - if account.user_confirmed?
diff --git a/app/views/admin/accounts/index.html.haml b/app/views/admin/accounts/index.html.haml
index 07c8d16325..1f36aeb312 100644
--- a/app/views/admin/accounts/index.html.haml
+++ b/app/views/admin/accounts/index.html.haml
@@ -55,6 +55,7 @@
     %tr
       %th= t('admin.accounts.username')
       %th= t('admin.accounts.domain')
+      %th= t('admin.accounts.protocol')
       %th= t('admin.accounts.confirmed')
       %th= fa_icon 'paper-plane-o'
       %th
diff --git a/app/views/admin/accounts/show.html.haml b/app/views/admin/accounts/show.html.haml
index 5c781e8172..f0e4e303c1 100644
--- a/app/views/admin/accounts/show.html.haml
+++ b/app/views/admin/accounts/show.html.haml
@@ -33,7 +33,7 @@
         %td= link_to @account.url, @account.url
       %tr
         %th= t('admin.accounts.protocol')
-        %td= @account.protocol
+        %td= protocol_for_display(@account.protocol)
 
       - if @account.ostatus?
         %tr
diff --git a/spec/helpers/account_helper_spec.rb b/spec/helpers/account_helper_spec.rb
new file mode 100644
index 0000000000..63e7c78b60
--- /dev/null
+++ b/spec/helpers/account_helper_spec.rb
@@ -0,0 +1,30 @@
+require 'rails_helper'
+
+# Specs in this file have access to a helper object that includes
+# the AccountHelper. For example:
+#
+# describe AccountHelper do
+#   describe "string concat" do
+#     it "concats two strings with spaces" do
+#       expect(helper.concat_strings("this","that")).to eq("this that")
+#     end
+#   end
+# end
+RSpec.describe AccountHelper, type: :helper do
+  describe '#protocol_for_display' do
+    it "returns OStatus when the protocol is 'ostatus'" do
+      protocol = 'ostatus'
+      expect(protocol_for_display(protocol)).to eq 'OStatus'
+    end
+
+    it "returns ActivityPub when the protocol is 'activitypub'" do
+      protocol = 'activitypub'
+      expect(protocol_for_display(protocol)).to eq 'ActivityPub'
+    end
+
+    it "returns the same string when the protocol is unknown" do
+      protocol = 'wave'
+      expect(protocol_for_display(protocol)).to eq protocol
+    end
+  end
+end
-- 
GitLab