From 93f5f98b580f3875a10c9da948bd9ff23bd92f2b Mon Sep 17 00:00:00 2001
From: Peter N Lewis <peter@stairways.com.au>
Date: Mon, 9 Jun 2014 18:26:19 +0800
Subject: [PATCH] Corrected and added appropriate specs to confirm correct
 behaviour.

Tests ensure that the site name is used for public replies and the username is used for private replies.
---
 spec/components/email/message_builder_spec.rb | 37 ++++++++++++++++++-
 1 file changed, 36 insertions(+), 1 deletion(-)

diff --git a/spec/components/email/message_builder_spec.rb b/spec/components/email/message_builder_spec.rb
index 82e8961d6..187febf36 100644
--- a/spec/components/email/message_builder_spec.rb
+++ b/spec/components/email/message_builder_spec.rb
@@ -54,7 +54,42 @@ describe Email::MessageBuilder do
         end
 
         it "returns a Reply-To header with the reply key" do
-          expect(reply_by_email_builder.header_args['Reply-To']).to eq("r+#{reply_key}@reply.myforum.com")
+          expect(reply_by_email_builder.header_args['Reply-To']).to eq(SiteSetting.title + " <r+#{reply_key}@reply.myforum.com>")
+        end
+      end
+
+      context "With the SiteSetting disabled" do
+        before do
+          SiteSetting.stubs(:reply_by_email_enabled?).returns(false)
+        end
+
+        it "has no X-Discourse-Reply-Key" do
+          expect(reply_key).to be_blank
+        end
+
+        it "returns a Reply-To header that's the same as From" do
+          expect(header_args['Reply-To']).to eq(build_args[:from])
+        end
+      end
+    end
+
+    context "with allow_reply_by_email" do
+      let(:reply_by_email_builder) { Email::MessageBuilder.new(to_address, allow_reply_by_email: true, private_reply: true, from_alias: "Username") }
+      let(:reply_key) { reply_by_email_builder.header_args['X-Discourse-Reply-Key'] }
+
+      context "With the SiteSetting enabled" do
+        before do
+          SiteSetting.stubs(:reply_by_email_enabled?).returns(true)
+          SiteSetting.stubs(:reply_by_email_address).returns("r+%{reply_key}@reply.myforum.com")
+        end
+
+        it "has a X-Discourse-Reply-Key" do
+          expect(reply_key).to be_present
+          expect(reply_key.size).to eq(32)
+        end
+
+        it "returns a Reply-To header with the reply key" do
+          expect(reply_by_email_builder.header_args['Reply-To']).to eq("Username <r+#{reply_key}@reply.myforum.com>")
         end
       end