changelog shortlog tags changeset manifest revisions annotate raw

vendor/plugins/restful_authentication/generators/authenticated/templates/model_functional_spec.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__) + '/../spec_helper'
2
3# Be sure to include AuthenticatedTestHelper in spec/spec_helper.rb instead
4# Then, you can remove it from this and the units test.
5include AuthenticatedTestHelper
6
7describe <%= model_controller_class_name %>Controller do
8 fixtures :<%= table_name %>
9
10 it 'allows signup' do
11 lambda do
12 create_<%= file_name %>
13 response.should be_redirect
14 end.should change(<%= class_name %>, :count).by(1)
15 end
16
17 <% if options[:stateful] %>
18 it 'signs up user in pending state' do
19 create_user
20 assigns(:user).should be_pending
21 end<% end %>
22
23 <% if options[:include_activation] %>
24 it 'signs up user with activation code' do
25 create_user
26 assigns(:user).activation_code.should_not be_nil
27 end<% end %>
28
29 it 'requires login on signup' do
30 lambda do
31 create_<%= file_name %>(:login => nil)
32 assigns[:<%= file_name %>].errors.on(:login).should_not be_nil
33 response.should be_success
34 end.should_not change(<%= class_name %>, :count)
35 end
36
37 it 'requires password on signup' do
38 lambda do
39 create_<%= file_name %>(:password => nil)
40 assigns[:<%= file_name %>].errors.on(:password).should_not be_nil
41 response.should be_success
42 end.should_not change(<%= class_name %>, :count)
43 end
44
45 it 'requires password confirmation on signup' do
46 lambda do
47 create_<%= file_name %>(:password_confirmation => nil)
48 assigns[:<%= file_name %>].errors.on(:password_confirmation).should_not be_nil
49 response.should be_success
50 end.should_not change(<%= class_name %>, :count)
51 end
52
53 it 'requires email on signup' do
54 lambda do
55 create_<%= file_name %>(:email => nil)
56 assigns[:<%= file_name %>].errors.on(:email).should_not be_nil
57 response.should be_success
58 end.should_not change(<%= class_name %>, :count)
59 end
60
61 <% if options[:include_activation] %>
62 it 'activates user' do
63 <%= class_name %>.authenticate('aaron', 'test').should be_nil
64 get :activate, :activation_code => <%= table_name %>(:aaron).activation_code
65 response.should redirect_to('/')
66 flash[:notice].should_not be_nil
67 <%= class_name %>.authenticate('aaron', 'test').should == <%= table_name %>(:aaron)
68 end
69
70 it 'does not activate user without key' do
71 get :activate
72 flash[:notice].should be_nil
73 end
74
75 it 'does not activate user with blank key' do
76 get :activate, :activation_code => ''
77 flash[:notice].should be_nil
78 end<% end %>
79
80 def create_<%= file_name %>(options = {})
81 post :create, :<%= file_name %> => { :login => 'quire', :email => 'quire@example.com',
82 :password => 'quire', :password_confirmation => 'quire' }.merge(options)
83 end
84end