aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--app/models/change_email_validator.rb2
-rw-r--r--spec/controllers/user_controller_spec.rb12
2 files changed, 13 insertions, 1 deletions
diff --git a/app/models/change_email_validator.rb b/app/models/change_email_validator.rb
index a796489f7..ff7f2f931 100644
--- a/app/models/change_email_validator.rb
+++ b/app/models/change_email_validator.rb
@@ -25,7 +25,7 @@ class ChangeEmailValidator < ActiveRecord::BaseWithoutTable
end
if !errors[:old_email]
- if self.old_email != self.logged_in_user.email
+ if self.old_email.downcase != self.logged_in_user.email.downcase
errors.add(:old_email, "address isn't the same as the address of the account you are logged in with")
elsif !self.logged_in_user.has_this_password?(self.password)
if !errors[:password]
diff --git a/spec/controllers/user_controller_spec.rb b/spec/controllers/user_controller_spec.rb
index 2bfb35240..193cf476c 100644
--- a/spec/controllers/user_controller_spec.rb
+++ b/spec/controllers/user_controller_spec.rb
@@ -346,6 +346,18 @@ describe UserController, "when changing email address" do
deliveries.size.should == 0
end
+ it "should work even if the old email had a case difference" do
+ @user = users(:bob_smith_user)
+ session[:user_id] = @user.id
+
+ post :signchangeemail, { :signchangeemail => { :old_email => 'BOB@localhost',
+ :password => 'jonespassword', :new_email => 'newbob@localhost' },
+ :submitted_signchangeemail_do => 1
+ }
+
+ response.should render_template('signchangeemail_confirm')
+ end
+
it "should send confirmation email if you get all the details right" do
@user = users(:bob_smith_user)
session[:user_id] = @user.id