Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- # error:
- jens@Nimmmich:~/src/RadRails/ov9tut$ rake --trace
- (in /home/jens/src/RadRails/ov9tut)
- ** Invoke default (first_time)
- ** Invoke test (first_time)
- ** Execute test
- ** Invoke test:units (first_time)
- ** Invoke db:test:prepare (first_time)
- ** Invoke environment (first_time)
- ** Execute environment
- ** Execute db:test:prepare
- ** Invoke db:test:clone (first_time)
- ** Invoke db:schema:dump (first_time)
- ** Invoke environment
- ** Execute db:schema:dump
- ** Execute db:test:clone
- ** Invoke db:schema:load (first_time)
- ** Invoke environment
- ** Execute db:schema:load
- ** Execute test:units
- /usr/bin/ruby1.8 -Ilib:test "/usr/lib/ruby/1.8/rake/rake_test_loader.rb" "test/unit/user_test.rb"
- /home/jens/src/RadRails/ov9tut/config/../vendor/rails/activerecord/lib/../../activesupport/lib/active_support/dependencies.rb:147:in `require': /home/jens/src/RadRails/ov9tut/config/../app/models/user.rb:45: parse error, unexpected $, expecting kEND (SyntaxError)
- from /home/jens/src/RadRails/ov9tut/config/../vendor/rails/activerecord/lib/../../activesupport/lib/active_support/dependencies.rb:147:in `require'
- from /home/jens/src/RadRails/ov9tut/config/../vendor/rails/activerecord/lib/active_record/fixtures.rb:463:in `require_fixture_classes'
- from /home/jens/src/RadRails/ov9tut/config/../vendor/rails/activerecord/lib/active_record/fixtures.rb:459:in `require_fixture_classes'
- from /home/jens/src/RadRails/ov9tut/config/../vendor/rails/activerecord/lib/active_record/fixtures.rb:454:in `fixtures'
- !! from ./test/unit/user_test.rb:4
- from /usr/lib/ruby/1.8/rake/rake_test_loader.rb:5
- from /usr/lib/ruby/1.8/rake/rake_test_loader.rb:5
- ** Invoke test:functionals (first_time)
- ** Invoke db:test:prepare
- ** Execute test:functionals
- /usr/bin/ruby1.8 -Ilib:test "/usr/lib/ruby/1.8/rake/rake_test_loader.rb"
- ** Invoke test:integration (first_time)
- ** Invoke db:test:prepare
- ** Execute test:integration
- /usr/bin/ruby1.8 -Ilib:test "/usr/lib/ruby/1.8/rake/rake_test_loader.rb"
- rake aborted!
- Test failures
- /home/jens/src/RadRails/ov9tut/config/../vendor/rails/railties/lib/tasks/testing.rake:35
- /usr/lib/ruby/1.8/rake.rb:232:in `execute'
- /usr/lib/ruby/1.8/rake.rb:232:in `execute'
- /usr/lib/ruby/1.8/rake.rb:202:in `invoke'
- /usr/lib/ruby/1.8/thread.rb:135:in `synchronize'
- /usr/lib/ruby/1.8/rake.rb:195:in `invoke'
- /usr/lib/ruby/1.8/rake.rb:209:in `invoke_prerequisites'
- /usr/lib/ruby/1.8/rake.rb:844:in `each'
- /usr/lib/ruby/1.8/rake.rb:208:in `invoke_prerequisites'
- /usr/lib/ruby/1.8/rake.rb:201:in `invoke'
- /usr/lib/ruby/1.8/thread.rb:135:in `synchronize'
- /usr/lib/ruby/1.8/rake.rb:195:in `invoke'
- /usr/lib/ruby/1.8/rake.rb:1719:in `run'
- /usr/lib/ruby/1.8/rake.rb:1719:in `run'
- /usr/bin/rake:4
- # app/model/user.rb:
- class User < ActiveRecord::Base
- # zusätzliches Attribut, nicht in der SQL-Datenbank
- # attr: extern lesbar, attr_reader/writer: extern les/schreibbar,
- # attr_accessor: beides
- attr_accessor :password
- validates_presence_of :login
- validates_uniqueness_of :login
- validates_length_of :login, :within => 1..20
- validates_presence_of :password, :password_confirmation, :if => :password_required?
- validates_length_of :password, :length => 3..40, :if => :password_required?
- validates_confirmation_of :password, :if => :password_required?
- before_save :encrypt_password
- def self.authenticate(login, password)
- user = find(:first, :select => 'id, salt', :conditions => ['login = ?', :login])
- return nil if user.nil?
- find(:first, :conditions => ['id = ? AND encrypted_password = ?', id, user.encrypt(p
- end
- # global erreichbare Funktion
- def encrypt(password)
- self.class.encrypt(password, salt)
- end
- def self.encrypt(password, salt)
- Digest::SHA1.hexdigest("--#{salt}--#{password}--")
- end
- # before filter
- def encrypt_password
- return if password.nil? # guard
- self.salt = Digest::SHA1.hexdigest("--#{Time.now.to_s}--#{login}--")
- if new_record? self.crypted_password = encrypt(password)
- end
- protected
- def password_required?
- crypted_password.nil? or not password.blank?
- end
- end
- # tests/unit/user_test.rb:
- require File.dirname(__FILE__) '/../test_helper'
- class UserTest < Test::Unit::TestCase
- !! fixtures :users
- def test_should_require_login
- user = create_user(:login => nil)
- assert user.errors.on(:login),
- "no errors creating user with nil login"
- end
- def test_should_ignore_blank_password
- users(:quentin).password = ''
- assert users(:quentin).valid?
- users(:quentin).password = 'foo'
- assert !users(:quentin).valid?
- end
- def test_should_require_unique_login
- user = create_user(:login => 'quentin')
- assert user.errors.on(:login),
- "no errors creating another quentin user"
- end
- def test_should_require_password
- user = create_user(:password => nil)
- assert user.errors.on(:password)
- end
- def test_should_require_password_confirmation
- user = create_user(:password_confirmation => nil)
- assert user.errors.on(:password_confirmation)
- end
- def test_should_reset_password
- users(:quentin).update_attributes(
- :password => 'new password',
- :password_confirmation => 'new password')
- assert_equal users(:quentin),
- User.authenticate('quentin', 'new password')
- end
- def test_should_not_rehash_password
- users(:quentin).update_attribute(:login, 'quentin2')
- assert_equal users(:quentin),
- User.authenticate('quentin2', 'quentin')
- end
- def test_should_authenticate_user
- assert_equal users(:quentin),
- User.authenticate('quentin', 'quentin')
- end
- protected
- # Hilfsklasse zum Erzeugen eines Users.
- # override überschreibt (ggf.) einige Werte des übergebenen Hashes
- # mittels der "merge" Funktion.
- def create_user(override = {})
- User.create({:login => 'obie',
- :password => 'qwerty',
- :password_confirmation => 'qwerty'}.merge(override))
- end
- end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement