From e616fbfd425f838ca83fe01c3adf10e6b8e5a934 Mon Sep 17 00:00:00 2001
From: Lin Jen-Shin <godfat@godfat.org>
Date: Fri, 24 Jun 2016 16:05:05 +0800
Subject: [PATCH] Only return the address if incoming emails is enabled:

Feedback from:
https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/3363#note_12669123
---
 app/models/project.rb       |  6 ++++--
 spec/models/project_spec.rb | 28 ++++++++++++++++++++--------
 2 files changed, 24 insertions(+), 10 deletions(-)

diff --git a/app/models/project.rb b/app/models/project.rb
index 822d6489112..ad2a3ec6cf8 100644
--- a/app/models/project.rb
+++ b/app/models/project.rb
@@ -529,8 +529,10 @@ class Project < ActiveRecord::Base
   end
 
   def new_issue_address(author)
-    Gitlab::IncomingEmail.reply_address(
-      "#{path_with_namespace}+#{author.authentication_token}")
+    if Gitlab::IncomingEmail.enabled?
+      Gitlab::IncomingEmail.reply_address(
+        "#{path_with_namespace}+#{author.authentication_token}")
+    end
   end
 
   def build_commit_note(commit)
diff --git a/spec/models/project_spec.rb b/spec/models/project_spec.rb
index 407efc9f966..5d41bc2d38c 100644
--- a/spec/models/project_spec.rb
+++ b/spec/models/project_spec.rb
@@ -130,18 +130,30 @@ describe Project, models: true do
   end
 
   describe "#new_issue_address" do
-    before do
-      stub_incoming_email_setting(address: "p+%{key}@gl.ab")
-    end
-
     let(:project) { create(:empty_project, path: "somewhere") }
     let(:user) { create(:user) }
 
-    it 'returns the address to create a new issue' do
-      token = user.authentication_token
-      address = "p+#{project.namespace.path}/#{project.path}+#{token}@gl.ab"
+    context 'incoming email enabled' do
+      before do
+        stub_incoming_email_setting(enabled: true, address: "p+%{key}@gl.ab")
+      end
+
+      it 'returns the address to create a new issue' do
+        token = user.authentication_token
+        address = "p+#{project.namespace.path}/#{project.path}+#{token}@gl.ab"
 
-      expect(project.new_issue_address(user)).to eq(address)
+        expect(project.new_issue_address(user)).to eq(address)
+      end
+    end
+
+    context 'incoming email disabled' do
+      before do
+        stub_incoming_email_setting(enabled: false)
+      end
+
+      it 'returns nil' do
+        expect(project.new_issue_address(user)).to be_nil
+      end
     end
   end
 
-- 
GitLab