From 4e8ff74b99a57704fe97d293b1c9625e58a81be7 Mon Sep 17 00:00:00 2001
From: Neil Lalonde <neillalonde@gmail.com>
Date: Wed, 5 Jun 2013 16:43:39 -0400
Subject: [PATCH] Show dashboard warning when favicon and/or logo urls contain
 the same filename as the shipped defaults

---
 app/models/admin_dashboard_data.rb       |  6 +--
 spec/models/admin_dashboard_data_spec.rb | 48 ++++++++++++++++++++++++
 2 files changed, 51 insertions(+), 3 deletions(-)

diff --git a/app/models/admin_dashboard_data.rb b/app/models/admin_dashboard_data.rb
index fb614bffd..45cd90883 100644
--- a/app/models/admin_dashboard_data.rb
+++ b/app/models/admin_dashboard_data.rb
@@ -106,9 +106,9 @@ class AdminDashboardData
   end
 
   def default_logo_check
-    if SiteSetting.logo_url == SiteSetting.defaults[:logo_url] or
-        SiteSetting.logo_small_url == SiteSetting.defaults[:logo_small_url] or
-        SiteSetting.favicon_url == SiteSetting.defaults[:favicon_url]
+    if SiteSetting.logo_url =~ /d-logo-sketch\.png/ or
+        SiteSetting.logo_small_url =~ /d-logo-sketch-small\.png/ or
+        SiteSetting.favicon_url =~ /default-favicon\.png/
       I18n.t('dashboard.default_logo_warning')
     end
   end
diff --git a/spec/models/admin_dashboard_data_spec.rb b/spec/models/admin_dashboard_data_spec.rb
index d52e079ae..b168c36e9 100644
--- a/spec/models/admin_dashboard_data_spec.rb
+++ b/spec/models/admin_dashboard_data_spec.rb
@@ -144,6 +144,54 @@ describe AdminDashboardData do
     end
   end
 
+  describe 'default_logo_check' do
+    subject { AdminDashboardData.new.default_logo_check }
+
+    describe 'favicon_url check' do
+      before do
+        SiteSetting.stubs(:logo_url).returns('/assets/my-logo.jpg')
+        SiteSetting.stubs(:logo_small_url).returns('/assets/my-small-logo.jpg')
+      end
+
+      it 'returns a string when favicon_url is default' do
+        expect(subject).to_not be_nil
+      end
+
+      it 'returns a string when favicon_url contains default-favicon.png' do
+        SiteSetting.stubs(:favicon_url).returns('/discourse/images/default-favicon.png')
+        expect(subject).to_not be_nil
+      end
+
+      it 'returns nil when favicon_url does not match default-favicon.png' do
+        SiteSetting.stubs(:favicon_url).returns('/assets/my-favicon.png')
+        expect(subject).to be_nil
+      end
+    end
+
+    describe 'logo_url check' do
+      before do
+        SiteSetting.stubs(:favicon_url).returns('/assets/my-favicon.png')
+        SiteSetting.stubs(:logo_small_url).returns('/assets/my-small-logo.jpg')
+      end
+
+      it 'returns a string when logo_url is default' do
+        expect(subject).to_not be_nil
+      end
+
+      it 'returns a string when logo_url contains d-logo-sketch.png' do
+        SiteSetting.stubs(:logo_url).returns('/discourse/images/d-logo-sketch.png')
+        expect(subject).to_not be_nil
+      end
+
+      it 'returns nil when logo_url does not match d-logo-sketch.png' do
+        SiteSetting.stubs(:logo_url).returns('/assets/my-logo.png')
+        expect(subject).to be_nil
+      end
+    end
+
+    # etc.
+  end
+
   describe 'auth_config_checks' do
 
     shared_examples 'problem detection for login providers' do