Changesets can be listed by changeset number.
The Git repository is here.
- Revision:
- 98
- Log:
Initial import of Hub, an account management application.
- Author:
- adh
- Date:
- Thu Oct 19 15:18:43 +0100 2006
- Size:
- 4028 Bytes
1 | require File.dirname(__FILE__) + '/../test_helper' |
2 | require '<%= controller_file_name %>_controller' |
3 | |
4 | # Re-raise errors caught by the controller. |
5 | class <%= controller_class_name %>Controller; def rescue_action(e) raise e end; end |
6 | |
7 | class <%= controller_class_name %>ControllerTest < Test::Unit::TestCase |
8 | # Be sure to include AuthenticatedTestHelper in test/test_helper.rb instead |
9 | # Then, you can remove it from this and the units test. |
10 | include AuthenticatedTestHelper |
11 | |
12 | fixtures :<%= table_name %> |
13 | |
14 | def setup |
15 | @controller = <%= controller_class_name %>Controller.new |
16 | @request = ActionController::TestRequest.new |
17 | @response = ActionController::TestResponse.new |
18 | end |
19 | |
20 | def test_should_login_and_redirect |
21 | post :login, :login => 'quentin', :password => 'test' |
22 | assert session[:<%= file_name %>] |
23 | assert_response :redirect |
24 | end |
25 | |
26 | def test_should_fail_login_and_not_redirect |
27 | post :login, :login => 'quentin', :password => 'bad password' |
28 | assert_nil session[:<%= file_name %>] |
29 | assert_response :success |
30 | end |
31 | |
32 | def test_should_allow_signup |
33 | assert_difference <%= class_name %>, :count do |
34 | create_<%= file_name %> |
35 | assert_response :redirect |
36 | end |
37 | end |
38 | |
39 | def test_should_require_login_on_signup |
40 | assert_no_difference <%= class_name %>, :count do |
41 | create_<%= file_name %>(:login => nil) |
42 | assert assigns(:<%= file_name %>).errors.on(:login) |
43 | assert_response :success |
44 | end |
45 | end |
46 | |
47 | def test_should_require_password_on_signup |
48 | assert_no_difference <%= class_name %>, :count do |
49 | create_<%= file_name %>(:password => nil) |
50 | assert assigns(:<%= file_name %>).errors.on(:password) |
51 | assert_response :success |
52 | end |
53 | end |
54 | |
55 | def test_should_require_password_confirmation_on_signup |
56 | assert_no_difference <%= class_name %>, :count do |
57 | create_<%= file_name %>(:password_confirmation => nil) |
58 | assert assigns(:<%= file_name %>).errors.on(:password_confirmation) |
59 | assert_response :success |
60 | end |
61 | end |
62 | |
63 | def test_should_require_email_on_signup |
64 | assert_no_difference <%= class_name %>, :count do |
65 | create_<%= file_name %>(:email => nil) |
66 | assert assigns(:<%= file_name %>).errors.on(:email) |
67 | assert_response :success |
68 | end |
69 | end |
70 | |
71 | def test_should_logout |
72 | login_as :quentin |
73 | get :logout |
74 | assert_nil session[:<%= file_name %>] |
75 | assert_response :redirect |
76 | end |
77 | |
78 | def test_should_remember_me |
79 | post :login, :login => 'quentin', :password => 'test', :remember_me => "1" |
80 | assert_not_nil @response.cookies["auth_token"] |
81 | end |
82 | |
83 | def test_should_not_remember_me |
84 | post :login, :login => 'quentin', :password => 'test', :remember_me => "0" |
85 | assert_nil @response.cookies["auth_token"] |
86 | end |
87 | |
88 | def test_should_delete_token_on_logout |
89 | login_as :quentin |
90 | get :logout |
91 | assert_equal @response.cookies["auth_token"], [] |
92 | end |
93 | |
94 | def test_should_login_with_cookie |
95 | <%= table_name %>(:quentin).remember_me |
96 | @request.cookies["auth_token"] = cookie_for(:quentin) |
97 | get :index |
98 | assert @controller.send(:logged_in?) |
99 | end |
100 | |
101 | def test_should_fail_cookie_login |
102 | <%= table_name %>(:quentin).remember_me |
103 | users(:quentin).update_attribute :remember_token_expires_at, 5.minutes.ago.utc |
104 | @request.cookies["auth_token"] = cookie_for(:quentin) |
105 | get :index |
106 | assert !@controller.send(:logged_in?) |
107 | end |
108 | |
109 | def test_should_fail_cookie_login |
110 | <%= table_name %>(:quentin).remember_me |
111 | @request.cookies["auth_token"] = auth_token('invalid_auth_token') |
112 | get :index |
113 | assert !@controller.send(:logged_in?) |
114 | end |
115 | |
116 | protected |
117 | def create_<%= file_name %>(options = {}) |
118 | post :signup, :<%= file_name %> => { :login => 'quire', :email => 'quire@example.com', |
119 | :password => 'quire', :password_confirmation => 'quire' }.merge(options) |
120 | end |
121 | |
122 | def auth_token(token) |
123 | CGI::Cookie.new('name' => 'auth_token', 'value' => token) |
124 | end |
125 | |
126 | def cookie_for(<%= file_name %>) |
127 | auth_token <%= table_name %>(<%= file_name %>).remember_token |
128 | end |
129 | end |