Initial commit to the repo
[kwestie.git] / test / functional / users_controller_test.rb
blob8acf93acf66d1925c2ab96e743e07823bddec15f
1 require File.dirname(__FILE__) + '/../test_helper'
2 require 'users_controller'
4 # Re-raise errors caught by the controller.
5 class UsersController; def rescue_action(e) raise e end; end
7 class UsersControllerTest < Test::Unit::TestCase
9   fixtures :users
11   def setup
12     @controller = UsersController.new
13     @request    = ActionController::TestRequest.new
14     @response   = ActionController::TestResponse.new
15   end
17   def test_should_allow_signup
18     assert_difference 'User.count' do
19       create_user
20       assert_response :redirect
21     end
22   end
24   def test_should_require_login_on_signup
25     assert_no_difference 'User.count' do
26       create_user(:login => nil)
27       assert assigns(:user).errors.on(:login)
28       assert_response :success
29     end
30   end
32   def test_should_require_password_on_signup
33     assert_no_difference 'User.count' do
34       create_user(:password => nil)
35       assert assigns(:user).errors.on(:password)
36       assert_response :success
37     end
38   end
40   def test_should_require_password_confirmation_on_signup
41     assert_no_difference 'User.count' do
42       create_user(:password_confirmation => nil)
43       assert assigns(:user).errors.on(:password_confirmation)
44       assert_response :success
45     end
46   end
48   def test_should_require_email_on_signup
49     assert_no_difference 'User.count' do
50       create_user(:email => nil)
51       assert assigns(:user).errors.on(:email)
52       assert_response :success
53     end
54   end
55   
56   def test_should_activate_user
57     assert_nil User.authenticate('aaron', 'test')
58     get :activate, :activation_code => users(:aaron).activation_code
59     assert_redirected_to '/'
60     assert_not_nil flash[:notice]
61     assert_equal users(:aaron), User.authenticate('aaron', 'test')
62   end
63   
64   def test_should_not_activate_user_without_key
65     get :activate
66     assert_nil flash[:notice]
67   rescue ActionController::RoutingError
68     # in the event your routes deny this, we'll just bow out gracefully.
69   end
71   def test_should_not_activate_user_with_blank_key
72     get :activate, :activation_code => ''
73     assert_nil flash[:notice]
74   rescue ActionController::RoutingError
75     # well played, sir
76   end
78   protected
79     def create_user(options = {})
80       post :create, :user => { :login => 'quire', :email => 'quire@example.com',
81         :password => 'quire', :password_confirmation => 'quire' }.merge(options)
82     end
83 end