Guest User

Untitled

a guest
Apr 7th, 2018
254
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 11.05 KB | None | 0 0
  1. ## Error from console
  2. [public@BlackCherry e2real]$ rake test:functionals --trace
  3. (in /Users/public/Code/e2real)
  4. ** Invoke test:functionals (first_time)
  5. ** Invoke db:test:prepare (first_time)
  6. ** Invoke environment (first_time)
  7. ** Execute environment
  8. ** Invoke db:abort_if_pending_migrations (first_time)
  9. ** Invoke environment
  10. ** Execute db:abort_if_pending_migrations
  11. ** Execute db:test:prepare
  12. ** Invoke db:test:clone (first_time)
  13. ** Invoke db:schema:dump (first_time)
  14. ** Invoke environment
  15. ** Execute db:schema:dump
  16. ** Invoke db:test:purge (first_time)
  17. ** Invoke environment
  18. ** Execute db:test:purge
  19. ** Execute db:test:clone
  20. ** Invoke db:schema:load (first_time)
  21. ** Invoke environment
  22. ** Execute db:schema:load
  23. ** Execute test:functionals
  24. /usr/local/bin/ruby -Ilib:test "/usr/local/lib/ruby/gems/1.8/gems/rake-0.8.1/lib/rake/rake_test_loader.rb" "test/functional/message_controller_test.rb" "test/functional/site_controller_test.rb" "test/functional/user_controller_test.rb"
  25. Loaded suite /usr/local/lib/ruby/gems/1.8/gems/rake-0.8.1/lib/rake/rake_test_loader
  26. Started
  27. ....E..F
  28. Finished in 0.206712 seconds.
  29.  
  30. 1) Error:
  31. test_login_success(UserControllerTest):
  32. NoMethodError: You have a nil object when you didn't expect it!
  33. The error occurred while evaluating nil.screen_name
  34. ./test/functional/user_controller_test.rb:122:in `try_to_login'
  35. ./test/functional/user_controller_test.rb:112:in `test_login_success'
  36. /usr/local/lib/ruby/gems/1.8/gems/activesupport-2.0.2/lib/active_support/testing/default.rb:7:in `run'
  37.  
  38. 2) Failure:
  39. test_registration_success(UserControllerTest)
  40. [./test/functional/user_controller_test.rb:56:in `test_registration_success'
  41. /usr/local/lib/ruby/gems/1.8/gems/activesupport-2.0.2/lib/active_support/testing/default.rb:7:in `run']:
  42. <nil> expected but was
  43. <#<User id: nil, screen_name: "new_screen_name", email: "valid@user.com", password: "long_enough_password", created_at: nil, updated_at: nil>>.
  44.  
  45. 8 tests, 35 assertions, 1 failures, 1 errors
  46. rake aborted!
  47. Command failed with status (1): [/usr/local/bin/ruby -Ilib:test "/usr/local...]
  48. /usr/local/lib/ruby/gems/1.8/gems/rake-0.8.1/lib/rake.rb:899:in `sh'
  49. /usr/local/lib/ruby/gems/1.8/gems/rake-0.8.1/lib/rake.rb:906:in `call'
  50. /usr/local/lib/ruby/gems/1.8/gems/rake-0.8.1/lib/rake.rb:906:in `sh'
  51. /usr/local/lib/ruby/gems/1.8/gems/rake-0.8.1/lib/rake.rb:985:in `sh'
  52. /usr/local/lib/ruby/gems/1.8/gems/rake-0.8.1/lib/rake.rb:920:in `ruby'
  53. /usr/local/lib/ruby/gems/1.8/gems/rake-0.8.1/lib/rake.rb:985:in `ruby'
  54. /usr/local/lib/ruby/gems/1.8/gems/rake-0.8.1/lib/rake/testtask.rb:117:in `define'
  55. /usr/local/lib/ruby/gems/1.8/gems/rake-0.8.1/lib/rake.rb:1003:in `verbose'
  56. /usr/local/lib/ruby/gems/1.8/gems/rake-0.8.1/lib/rake/testtask.rb:102:in `define'
  57. /usr/local/lib/ruby/gems/1.8/gems/rake-0.8.1/lib/rake.rb:546:in `call'
  58. /usr/local/lib/ruby/gems/1.8/gems/rake-0.8.1/lib/rake.rb:546:in `execute'
  59. /usr/local/lib/ruby/gems/1.8/gems/rake-0.8.1/lib/rake.rb:541:in `each'
  60. /usr/local/lib/ruby/gems/1.8/gems/rake-0.8.1/lib/rake.rb:541:in `execute'
  61. /usr/local/lib/ruby/gems/1.8/gems/rake-0.8.1/lib/rake.rb:508:in `invoke_with_call_chain'
  62. /usr/local/lib/ruby/gems/1.8/gems/rake-0.8.1/lib/rake.rb:501:in `synchronize'
  63. /usr/local/lib/ruby/gems/1.8/gems/rake-0.8.1/lib/rake.rb:501:in `invoke_with_call_chain'
  64. /usr/local/lib/ruby/gems/1.8/gems/rake-0.8.1/lib/rake.rb:494:in `invoke'
  65. /usr/local/lib/ruby/gems/1.8/gems/rake-0.8.1/lib/rake.rb:1931:in `invoke_task'
  66. /usr/local/lib/ruby/gems/1.8/gems/rake-0.8.1/lib/rake.rb:1909:in `top_level'
  67. /usr/local/lib/ruby/gems/1.8/gems/rake-0.8.1/lib/rake.rb:1909:in `each'
  68. /usr/local/lib/ruby/gems/1.8/gems/rake-0.8.1/lib/rake.rb:1909:in `top_level'
  69. /usr/local/lib/ruby/gems/1.8/gems/rake-0.8.1/lib/rake.rb:1948:in `standard_exception_handling'
  70. /usr/local/lib/ruby/gems/1.8/gems/rake-0.8.1/lib/rake.rb:1903:in `top_level'
  71. /usr/local/lib/ruby/gems/1.8/gems/rake-0.8.1/lib/rake.rb:1881:in `run'
  72. /usr/local/lib/ruby/gems/1.8/gems/rake-0.8.1/lib/rake.rb:1948:in `standard_exception_handling'
  73. /usr/local/lib/ruby/gems/1.8/gems/rake-0.8.1/lib/rake.rb:1878:in `run'
  74. /usr/local/lib/ruby/gems/1.8/gems/rake-0.8.1/bin/rake:31
  75. /usr/local/bin/rake:19:in `load'
  76. /usr/local/bin/rake:19
  77. [public@BlackCherry e2real]$
  78.  
  79. ## Individual tests
  80. [public@BlackCherry e2real]$ ruby test/functional/user_controller_test.rb -n try_to_login @valid_user
  81. Loaded suite test/functional/user_controller_test
  82. Started
  83.  
  84. Finished in 0.000198 seconds.
  85.  
  86. 0 tests, 0 assertions, 0 failures, 0 errors
  87. [public@BlackCherry e2real]$ ruby test/functional/user_controller_test.rb -n test_login_failure
  88. Loaded suite test/functional/user_controller_test
  89. Started
  90.  
  91. Finished in 0.000199 seconds.
  92.  
  93. 0 tests, 0 assertions, 0 failures, 0 errors
  94. [public@BlackCherry e2real]$ ruby test/functional/user_controller_test.rb -n test_login_success
  95. Loaded suite test/functional/user_controller_test
  96. Started
  97. E
  98. Finished in 0.05933 seconds.
  99.  
  100. 1) Error:
  101. test_login_success(UserControllerTest):
  102. NoMethodError: You have a nil object when you didn't expect it!
  103. The error occurred while evaluating nil.screen_name
  104. test/functional/user_controller_test.rb:122:in `try_to_login'
  105. test/functional/user_controller_test.rb:112:in `test_login_success'
  106. /usr/local/lib/ruby/gems/1.8/gems/activesupport-2.0.2/lib/active_support/testing/default.rb:7:in `run'
  107.  
  108. 1 tests, 0 assertions, 0 failures, 1 errors
  109. [public@BlackCherry e2real]$
  110.  
  111.  
  112. ## user_controller_test.rb
  113. require File.dirname(__FILE__) + '/../test_helper'
  114. require 'user_controller'
  115.  
  116. class UserController;
  117. def rescue_action(e)
  118. raise e
  119. end
  120. end
  121.  
  122. class UserControllerTest < ActionController::TestCase
  123. fixtures :users
  124.  
  125. def setup
  126. @controller = UserController.new
  127. @request = ActionController::TestRequest.new
  128. @response = ActionController::TestResponse.new
  129. @valid_user = users(:valid_user)
  130. assert(@valid_user)
  131. end
  132.  
  133. def test_registration_page
  134. get :register
  135. title = assigns(:title)
  136. assert_equal "Register", title
  137. assert_response :success
  138. assert_template "register"
  139. assert_tag "form", :attributes => { :action => "/user/register",
  140. :method => "post" }
  141. assert_tag "input", :attributes => { :name => "user[screen_name]",
  142. :type => "text",
  143. :size => User::SCREEN_NAME_SIZE,
  144. :maxlength => User::SCREEN_NAME_MAX_LENGTH }
  145. assert_tag "input", :attributes => { :name => "user[email]",
  146. :type => "text",
  147. :size => User::EMAIL_SIZE,
  148. :maxlength => User::EMAIL_MAX_LENGTH }
  149. assert_tag "input", :attributes => { :name => "user[password]",
  150. :type => "password",
  151. :size => User::PASSWORD_SIZE,
  152. :maxlength => User::PASSWORD_MAX_LENGTH }
  153. assert_tag "input", :attributes => { :type => "submit",
  154. :value => "Register!" }
  155.  
  156. end
  157.  
  158. # Test a valid registration.
  159. def test_registration_success
  160. post :register, :user => { :screen_name => "new_screen_name",
  161. :email => "valid@user.com",
  162. :password => "long_enough_password" }
  163. # Test assignment of user.
  164. user = assigns(:user)
  165. assert_not_nil user
  166. # Test new user in database.
  167. new_user = User.find_by_screen_name_and_password(user.screen_name, user.password)
  168. assert_equal new_user, user
  169. # Test flash and redirect.
  170. assert_equal "User #{new_user.screen_name} created!", flash[:notice]
  171. assert_redirected_to :action => "index"
  172. assert_not_nil session[:user_id]
  173. assert_equal user.id, session[:user_id]
  174. end
  175.  
  176. # Test an invalid registration
  177. def test_registration_failure
  178. post :register, :user => { :screen_name => "in/valid",
  179. :email => "invalid@user,com",
  180. :password => "bad" }
  181. assert_response :success
  182. assert_template "register"
  183. # Test display of error messages.
  184. assert_tag "div", :attributes => { :id => "errorExplanation",
  185. :class => "errorExplanation" }
  186. # Assert that each form field has at least one error displayed.
  187. assert_tag "li", :content => /Screen name/
  188. assert_tag "li", :content => /Email/
  189. assert_tag "li", :content => /Password/
  190. # Test to see that the input fields are being wrapped with the correct div.
  191. error_div = { :tag => "div", :attributes => { :class => "fieldWithErrors" } }
  192. assert_tag "input", :attributes => { :name => "user[screen_name]",
  193. :value => "in/valid" },
  194. :parent => error_div
  195. assert_tag "input", :attributes => { :name => "user[email]",
  196. :value => "invalid@user,com" },
  197. :parent => error_div
  198. assert_tag "input", :attributes => { :name => "user[password]",
  199. :value => "bad" },
  200. :parent => error_div
  201. end
  202.  
  203. def test_login_page
  204. get :login
  205. title = assigns(:title)
  206. assert_equal "Log in to Send-A-Letter", title
  207. assert_response :success
  208. assert_template "login"
  209. assert_tag "form", :attributes => { :action => "/user/login",
  210. :method => "post" }
  211. assert_tag "input", :attributes => { :name => "user[screen_name]",
  212. :type => "text",
  213. :size => User::SCREEN_NAME_SIZE,
  214. :maxlength => User::SCREEN_NAME_MAX_LENGTH }
  215. assert_tag "input", :attributes => { :name => "user[password]",
  216. :type => "password",
  217. :size => User::PASSWORD_SIZE,
  218. :maxlength => User::PASSWORD_MAX_LENGTH }
  219. assert_tag "input", :attributes => { :type => "submit",
  220. :value => "Login!" }
  221. end
  222.  
  223. def test_login_success
  224. try_to_login @valid_user
  225. assert_not_nil session[:user_id]
  226. assert_equal @valid_user.id, session[:user_id]
  227. assert_equal "User #{@valid_user.screen_name} logged in!", flash[:notice]
  228. assert_redirected_to :action => "index"
  229. end
  230.  
  231. private
  232.  
  233. def try_to_login(user)
  234. post :login, :user => { :screen_name => user.screen_name,
  235. :password => user.password }
  236. end
  237.  
  238. end
  239.  
  240.  
  241. ## users.yml
  242. valid_user:
  243. id: 1
  244. screen_name: validuser
  245. email: valid@user.com
  246. password: validpass
  247.  
  248. invalid_user:
  249. id: 2
  250. screen_name: in/valid
  251. email: invalid@user,com
  252. password: bad
Add Comment
Please, Sign In to add comment