From 995ce18c377df01e4e7620d55d9c36ce56cc40aa Mon Sep 17 00:00:00 2001
From: Steffen van Bergerem <svbergerem@online.de>
Date: Thu, 15 Oct 2015 01:52:43 +0200
Subject: [PATCH] Display publisher on user profile path

closes #6503
---
 Changelog.md                     |  1 +
 app/views/people/show.html.haml  |  2 +-
 spec/integration/profile_spec.rb | 72 ++++++++++++++++++++++++++++++++
 spec/requests_helper.rb          |  5 +++
 4 files changed, 79 insertions(+), 1 deletion(-)
 create mode 100644 spec/integration/profile_spec.rb
 create mode 100644 spec/requests_helper.rb

diff --git a/Changelog.md b/Changelog.md
index 90121c0c2e..f0d6bc7403 100644
--- a/Changelog.md
+++ b/Changelog.md
@@ -6,6 +6,7 @@
 * Redirect to sign in page when a background request fails with 401 [#6496](https://github.com/diaspora/diaspora/pull/6496)
 * Correctly skip setting sidekiq logfile on Heroku [#6500](https://github.com/diaspora/diaspora/pull/6500)
 * Fix notifications for interactions by non-contacts [#6498](https://github.com/diaspora/diaspora/pull/6498)
+* Fix issue where the publisher was broken on profile pages [#6503](https://github.com/diaspora/diaspora/pull/6503)
 
 ## Features
 
diff --git a/app/views/people/show.html.haml b/app/views/people/show.html.haml
index 235c22ccc3..e368449d27 100644
--- a/app/views/people/show.html.haml
+++ b/app/views/people/show.html.haml
@@ -23,7 +23,7 @@
 
       .stream_container
 
-        -if user_signed_in? && current_page?(person_path(current_user.person))
+        - if user_signed_in? && current_user.person == @person
           = render 'publisher/publisher', publisher_aspects_for(nil)
 
         #main_stream.stream
diff --git a/spec/integration/profile_spec.rb b/spec/integration/profile_spec.rb
new file mode 100644
index 0000000000..3428c11d10
--- /dev/null
+++ b/spec/integration/profile_spec.rb
@@ -0,0 +1,72 @@
+require "spec_helper"
+require "requests_helper"
+
+describe PeopleController, type: :request do
+  context "for the current user" do
+    before do
+      login alice
+    end
+
+    it "displays the publisher for user profile path" do
+      get "/u/#{alice.username}"
+
+      expect(response.status).to eq(200)
+      # make sure we are signed in
+      expect(response.body).not_to match(/a class="login"/)
+      expect(response.body).to match(/div id='publisher_textarea_wrapper'/)
+    end
+
+    it "displays the publisher for people path" do
+      get "/people/#{alice.person.guid}"
+
+      expect(response.status).to eq(200)
+      # make sure we are signed in
+      expect(response.body).not_to match(/a class="login"/)
+      expect(response.body).to match(/div id='publisher_textarea_wrapper'/)
+    end
+  end
+
+  context "for another user" do
+    before do
+      login bob
+    end
+
+    it "doesn't display the publisher for user profile path" do
+      get "/u/#{alice.username}"
+
+      expect(response.status).to eq(200)
+      # make sure we are signed in
+      expect(response.body).not_to match(/a class="login"/)
+      expect(response.body).not_to match(/div id='publisher_textarea_wrapper'/)
+    end
+
+    it "doesn't display the publisher for people path" do
+      get "/people/#{alice.person.guid}"
+
+      expect(response.status).to eq(200)
+      # make sure we are signed in
+      expect(response.body).not_to match(/a class="login"/)
+      expect(response.body).not_to match(/div id='publisher_textarea_wrapper'/)
+    end
+  end
+
+  context "with no user signed in" do
+    it "doesn't display the publisher for user profile path" do
+      get "/u/#{alice.username}"
+
+      expect(response.status).to eq(200)
+      # make sure we aren't signed in
+      expect(response.body).to match(/a class="login"/)
+      expect(response.body).not_to match(/div id='publisher_textarea_wrapper'/)
+    end
+
+    it "doesn't display the publisher for people path" do
+      get "/people/#{alice.person.guid}"
+
+      expect(response.status).to eq(200)
+      # make sure we aren't signed in
+      expect(response.body).to match(/a class="login"/)
+      expect(response.body).not_to match(/div id='publisher_textarea_wrapper'/)
+    end
+  end
+end
diff --git a/spec/requests_helper.rb b/spec/requests_helper.rb
new file mode 100644
index 0000000000..fdae9a95da
--- /dev/null
+++ b/spec/requests_helper.rb
@@ -0,0 +1,5 @@
+include Warden::Test::Helpers
+
+def login(user)
+  login_as user, scope: :user
+end
-- 
GitLab