Commit 336750c916498e99505f593067d4eeadccb3c261

Authored by Christian Höltje
1 parent 0447c731

user_color_scheme_class with current_user

This refactors the `user_color_scheme_class` to use
a hash with a default.  This prevents problems
with workers that don't have access to the
current_user.

Fixes issue #2758
app/helpers/application_helper.rb
... ... @@ -2,6 +2,13 @@ require 'digest/md5'
2 2 require 'uri'
3 3  
4 4 module ApplicationHelper
  5 + COLOR_SCHEMES = {
  6 + 1 => 'white',
  7 + 2 => 'black',
  8 + 3 => 'solarized-dark',
  9 + 4 => 'monokai',
  10 + }
  11 + COLOR_SCHEMES.default = 'white'
5 12  
6 13 # Check if a particular controller is the current one
7 14 #
... ... @@ -124,17 +131,7 @@ module ApplicationHelper
124 131 end
125 132  
126 133 def user_color_scheme_class
127   - # in case we dont have current_user (ex. in mailer)
128   - return 1 unless defined?(current_user)
129   -
130   - case current_user.color_scheme_id
131   - when 1 then 'white'
132   - when 2 then 'black'
133   - when 3 then 'solarized-dark'
134   - when 4 then 'monokai'
135   - else
136   - 'white'
137   - end
  134 + COLOR_SCHEMES[current_user.try(:color_scheme_id)]
138 135 end
139 136  
140 137 # Define whenever show last push event
... ...
spec/helpers/application_helper_spec.rb
... ... @@ -83,4 +83,26 @@ describe ApplicationHelper do
83 83 end
84 84  
85 85 end
  86 +
  87 + describe "user_color_scheme_class" do
  88 + context "with current_user is nil" do
  89 + it "should return a string" do
  90 + stub!(:current_user).and_return(nil)
  91 + user_color_scheme_class.should be_kind_of(String)
  92 + end
  93 + end
  94 +
  95 + context "with a current_user" do
  96 + (1..5).each do |color_scheme_id|
  97 + context "with color_scheme_id == #{color_scheme_id}" do
  98 + it "should return a string" do
  99 + current_user = double(:color_scheme_id => color_scheme_id)
  100 + stub!(:current_user).and_return(current_user)
  101 + user_color_scheme_class.should be_kind_of(String)
  102 + end
  103 + end
  104 + end
  105 + end
  106 + end
  107 +
86 108 end
... ...