aboutsummaryrefslogtreecommitdiffstats
path: root/activemodel/test/cases/secure_password_test.rb
diff options
context:
space:
mode:
authorDavid Heinemeier Hansson <david@loudthinking.com>2010-12-18 13:38:05 -0800
committerDavid Heinemeier Hansson <david@loudthinking.com>2010-12-18 13:38:05 -0800
commitbcf4e4f2b02157cecc1f1727a95cdf5bfa471771 (patch)
treeb38232fb127a25817aa25d3b8976d218948119e3 /activemodel/test/cases/secure_password_test.rb
parentd9b732fcadc001b6757e648761acf97833827b58 (diff)
downloadrails-bcf4e4f2b02157cecc1f1727a95cdf5bfa471771.tar.gz
rails-bcf4e4f2b02157cecc1f1727a95cdf5bfa471771.tar.bz2
rails-bcf4e4f2b02157cecc1f1727a95cdf5bfa471771.zip
Added ActiveRecord::Base#has_secure_password (via ActiveModel::SecurePassword) to encapsulate dead-simple password usage with SHA2 encryption and salting
Diffstat (limited to 'activemodel/test/cases/secure_password_test.rb')
-rw-r--r--activemodel/test/cases/secure_password_test.rb42
1 files changed, 42 insertions, 0 deletions
diff --git a/activemodel/test/cases/secure_password_test.rb b/activemodel/test/cases/secure_password_test.rb
new file mode 100644
index 0000000000..7d7c51e6cb
--- /dev/null
+++ b/activemodel/test/cases/secure_password_test.rb
@@ -0,0 +1,42 @@
+require 'cases/helper'
+require 'models/user'
+
+class SecurePasswordTest < ActiveModel::TestCase
+ setup do
+ @user = User.new
+ end
+
+ test "password must be present" do
+ assert !@user.valid?
+ assert_equal 1, @user.errors.size
+ end
+
+ test "password must match confirmation" do
+ @user.password = "thiswillberight"
+ @user.password_confirmation = "wrong"
+
+ assert !@user.valid?
+
+ @user.password_confirmation = "thiswillberight"
+
+ assert @user.valid?
+ end
+
+ test "password must pass validation rules" do
+ @user.password = "password"
+ assert !@user.valid?
+
+ @user.password = "short"
+ assert !@user.valid?
+
+ @user.password = "plentylongenough"
+ assert @user.valid?
+ end
+
+ test "authenticate" do
+ @user.password = "secret"
+
+ assert !@user.authenticate("wrong")
+ assert @user.authenticate("secret")
+ end
+end \ No newline at end of file