changelog shortlog tags changeset manifest revisions annotate raw

vendor/plugins/restful_authentication/generators/authenticated/templates/model_functional_test.rb

changeset 4: 43c5e6930eee
author: moriq@moriq.com
date: Wed Mar 05 01:17:41 2008 +0900 (16 years ago)
permissions: -rw-r--r--
description: add plugin restful_authentication.
1require File.dirname(__FILE__) + '/../test_helper'
2require '<%= model_controller_file_name %>_controller'
3
4# Re-raise errors caught by the controller.
5class <%= model_controller_class_name %>Controller; def rescue_action(e) raise e end; end
6
7class <%= model_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 = <%= model_controller_class_name %>Controller.new
16 @request = ActionController::TestRequest.new
17 @response = ActionController::TestResponse.new
18 end
19
20 def test_should_allow_signup
21 assert_difference '<%= class_name %>.count' do
22 create_<%= file_name %>
23 assert_response :redirect
24 end
25 end
26
27 def test_should_require_login_on_signup
28 assert_no_difference '<%= class_name %>.count' do
29 create_<%= file_name %>(:login => nil)
30 assert assigns(:<%= file_name %>).errors.on(:login)
31 assert_response :success
32 end
33 end
34
35 def test_should_require_password_on_signup
36 assert_no_difference '<%= class_name %>.count' do
37 create_<%= file_name %>(:password => nil)
38 assert assigns(:<%= file_name %>).errors.on(:password)
39 assert_response :success
40 end
41 end
42
43 def test_should_require_password_confirmation_on_signup
44 assert_no_difference '<%= class_name %>.count' do
45 create_<%= file_name %>(:password_confirmation => nil)
46 assert assigns(:<%= file_name %>).errors.on(:password_confirmation)
47 assert_response :success
48 end
49 end
50
51 def test_should_require_email_on_signup
52 assert_no_difference '<%= class_name %>.count' do
53 create_<%= file_name %>(:email => nil)
54 assert assigns(:<%= file_name %>).errors.on(:email)
55 assert_response :success
56 end
57 end
58 <% if options[:include_activation] %>
59 def test_should_activate_user
60 assert_nil <%= class_name %>.authenticate('aaron', 'test')
61 get :activate, :activation_code => <%= table_name %>(:aaron).activation_code
62 assert_redirected_to '/'
63 assert_not_nil flash[:notice]
64 assert_equal <%= table_name %>(:aaron), <%= class_name %>.authenticate('aaron', 'test')
65 end
66
67 def test_should_not_activate_user_without_key
68 get :activate
69 assert_nil flash[:notice]
70 rescue ActionController::RoutingError
71 # in the event your routes deny this, we'll just bow out gracefully.
72 end
73
74 def test_should_not_activate_user_with_blank_key
75 get :activate, :activation_code => ''
76 assert_nil flash[:notice]
77 rescue ActionController::RoutingError
78 # well played, sir
79 end<% end %>
80
81 protected
82 def create_<%= file_name %>(options = {})
83 post :create, :<%= file_name %> => { :login => 'quire', :email => 'quire@example.com',
84 :password => 'quire', :password_confirmation => 'quire' }.merge(options)
85 end
86end