Advertisement
Guest User

Untitled

a guest
Jul 30th, 2017
75
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 5.98 KB | None | 0 0
  1. # error:
  2.  
  3. jens@Nimmmich:~/src/RadRails/ov9tut$ rake --trace
  4. (in /home/jens/src/RadRails/ov9tut)
  5. ** Invoke default (first_time)
  6. ** Invoke test (first_time)
  7. ** Execute test
  8. ** Invoke test:units (first_time)
  9. ** Invoke db:test:prepare (first_time)
  10. ** Invoke environment (first_time)
  11. ** Execute environment
  12. ** Execute db:test:prepare
  13. ** Invoke db:test:clone (first_time)
  14. ** Invoke db:schema:dump (first_time)
  15. ** Invoke environment
  16. ** Execute db:schema:dump
  17. ** Execute db:test:clone
  18. ** Invoke db:schema:load (first_time)
  19. ** Invoke environment
  20. ** Execute db:schema:load
  21. ** Execute test:units
  22. /usr/bin/ruby1.8 -Ilib:test "/usr/lib/ruby/1.8/rake/rake_test_loader.rb" "test/unit/user_test.rb"
  23. /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)
  24. from /home/jens/src/RadRails/ov9tut/config/../vendor/rails/activerecord/lib/../../activesupport/lib/active_support/dependencies.rb:147:in `require'
  25. from /home/jens/src/RadRails/ov9tut/config/../vendor/rails/activerecord/lib/active_record/fixtures.rb:463:in `require_fixture_classes'
  26. from /home/jens/src/RadRails/ov9tut/config/../vendor/rails/activerecord/lib/active_record/fixtures.rb:459:in `require_fixture_classes'
  27. from /home/jens/src/RadRails/ov9tut/config/../vendor/rails/activerecord/lib/active_record/fixtures.rb:454:in `fixtures'
  28. !! from ./test/unit/user_test.rb:4
  29. from /usr/lib/ruby/1.8/rake/rake_test_loader.rb:5
  30. from /usr/lib/ruby/1.8/rake/rake_test_loader.rb:5
  31. ** Invoke test:functionals (first_time)
  32. ** Invoke db:test:prepare
  33. ** Execute test:functionals
  34. /usr/bin/ruby1.8 -Ilib:test "/usr/lib/ruby/1.8/rake/rake_test_loader.rb"
  35. ** Invoke test:integration (first_time)
  36. ** Invoke db:test:prepare
  37. ** Execute test:integration
  38. /usr/bin/ruby1.8 -Ilib:test "/usr/lib/ruby/1.8/rake/rake_test_loader.rb"
  39. rake aborted!
  40. Test failures
  41. /home/jens/src/RadRails/ov9tut/config/../vendor/rails/railties/lib/tasks/testing.rake:35
  42. /usr/lib/ruby/1.8/rake.rb:232:in `execute'
  43. /usr/lib/ruby/1.8/rake.rb:232:in `execute'
  44. /usr/lib/ruby/1.8/rake.rb:202:in `invoke'
  45. /usr/lib/ruby/1.8/thread.rb:135:in `synchronize'
  46. /usr/lib/ruby/1.8/rake.rb:195:in `invoke'
  47. /usr/lib/ruby/1.8/rake.rb:209:in `invoke_prerequisites'
  48. /usr/lib/ruby/1.8/rake.rb:844:in `each'
  49. /usr/lib/ruby/1.8/rake.rb:208:in `invoke_prerequisites'
  50. /usr/lib/ruby/1.8/rake.rb:201:in `invoke'
  51. /usr/lib/ruby/1.8/thread.rb:135:in `synchronize'
  52. /usr/lib/ruby/1.8/rake.rb:195:in `invoke'
  53. /usr/lib/ruby/1.8/rake.rb:1719:in `run'
  54. /usr/lib/ruby/1.8/rake.rb:1719:in `run'
  55. /usr/bin/rake:4
  56.  
  57.  
  58. # app/model/user.rb:
  59.  
  60. class User < ActiveRecord::Base
  61. # zusätzliches Attribut, nicht in der SQL-Datenbank
  62. # attr: extern lesbar, attr_reader/writer: extern les/schreibbar,
  63. # attr_accessor: beides
  64. attr_accessor :password
  65.  
  66. validates_presence_of :login
  67. validates_uniqueness_of :login
  68. validates_length_of :login, :within => 1..20
  69. validates_presence_of :password, :password_confirmation, :if => :password_required?
  70. validates_length_of :password, :length => 3..40, :if => :password_required?
  71. validates_confirmation_of :password, :if => :password_required?
  72.  
  73. before_save :encrypt_password
  74.  
  75. def self.authenticate(login, password)
  76. user = find(:first, :select => 'id, salt', :conditions => ['login = ?', :login])
  77. return nil if user.nil?
  78. find(:first, :conditions => ['id = ? AND encrypted_password = ?', id, user.encrypt(p
  79. end
  80.  
  81. # global erreichbare Funktion
  82. def encrypt(password)
  83. self.class.encrypt(password, salt)
  84. end
  85.  
  86. def self.encrypt(password, salt)
  87. Digest::SHA1.hexdigest("--#{salt}--#{password}--")
  88. end
  89.  
  90. # before filter
  91. def encrypt_password
  92. return if password.nil? # guard
  93. self.salt = Digest::SHA1.hexdigest("--#{Time.now.to_s}--#{login}--")
  94. if new_record? self.crypted_password = encrypt(password)
  95. end
  96.  
  97.  
  98. protected
  99.  
  100. def password_required?
  101. crypted_password.nil? or not password.blank?
  102. end
  103.  
  104. end
  105.  
  106.  
  107.  
  108.  
  109. # tests/unit/user_test.rb:
  110.  
  111. require File.dirname(__FILE__) '/../test_helper'
  112.  
  113. class UserTest < Test::Unit::TestCase
  114. !! fixtures :users
  115.  
  116. def test_should_require_login
  117. user = create_user(:login => nil)
  118. assert user.errors.on(:login),
  119. "no errors creating user with nil login"
  120. end
  121.  
  122. def test_should_ignore_blank_password
  123. users(:quentin).password = ''
  124. assert users(:quentin).valid?
  125. users(:quentin).password = 'foo'
  126. assert !users(:quentin).valid?
  127. end
  128.  
  129.  
  130. def test_should_require_unique_login
  131. user = create_user(:login => 'quentin')
  132. assert user.errors.on(:login),
  133. "no errors creating another quentin user"
  134. end
  135.  
  136. def test_should_require_password
  137. user = create_user(:password => nil)
  138. assert user.errors.on(:password)
  139. end
  140.  
  141. def test_should_require_password_confirmation
  142. user = create_user(:password_confirmation => nil)
  143. assert user.errors.on(:password_confirmation)
  144. end
  145.  
  146. def test_should_reset_password
  147. users(:quentin).update_attributes(
  148. :password => 'new password',
  149. :password_confirmation => 'new password')
  150. assert_equal users(:quentin),
  151. User.authenticate('quentin', 'new password')
  152. end
  153.  
  154. def test_should_not_rehash_password
  155. users(:quentin).update_attribute(:login, 'quentin2')
  156. assert_equal users(:quentin),
  157. User.authenticate('quentin2', 'quentin')
  158. end
  159.  
  160. def test_should_authenticate_user
  161. assert_equal users(:quentin),
  162. User.authenticate('quentin', 'quentin')
  163. end
  164.  
  165.  
  166. protected
  167.  
  168. # Hilfsklasse zum Erzeugen eines Users.
  169. # override überschreibt (ggf.) einige Werte des übergebenen Hashes
  170. # mittels der "merge" Funktion.
  171. def create_user(override = {})
  172. User.create({:login => 'obie',
  173. :password => 'qwerty',
  174. :password_confirmation => 'qwerty'}.merge(override))
  175. end
  176.  
  177. end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement