changelog shortlog tags changeset manifest revisions annotate raw

vendor/plugins/restful_authentication/generators/authenticated/templates/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 <%= controller_class_name %>Controller do
8 fixtures :<%= table_name %>
9
10 it 'logins and redirects' do
11 post :create, :login => 'quentin', :password => 'test'
12 session[:<%= file_name %>_id].should_not be_nil
13 response.should be_redirect
14 end
15
16 it 'fails login and does not redirect' do
17 post :create, :login => 'quentin', :password => 'bad password'
18 session[:<%= file_name %>_id].should be_nil
19 response.should be_success
20 end
21
22 it 'logs out' do
23 login_as :quentin
24 get :destroy
25 session[:<%= file_name %>_id].should be_nil
26 response.should be_redirect
27 end
28
29 it 'remembers me' do
30 post :create, :login => 'quentin', :password => 'test', :remember_me => "1"
31 response.cookies["auth_token"].should_not be_nil
32 end
33
34 it 'does not remember me' do
35 post :create, :login => 'quentin', :password => 'test', :remember_me => "0"
36 response.cookies["auth_token"].should be_nil
37 end
38
39 it 'deletes token on logout' do
40 login_as :quentin
41 get :destroy
42 response.cookies["auth_token"].should == []
43 end
44
45 it 'logs in with cookie' do
46 <%= table_name %>(:quentin).remember_me
47 request.cookies["auth_token"] = cookie_for(:quentin)
48 get :new
49 controller.send(:logged_in?).should be_true
50 end
51
52 it 'fails expired cookie login' do
53 <%= table_name %>(:quentin).remember_me
54 <%= table_name %>(:quentin).update_attribute :remember_token_expires_at, 5.minutes.ago
55 request.cookies["auth_token"] = cookie_for(:quentin)
56 get :new
57 controller.send(:logged_in?).should_not be_true
58 end
59
60 it 'fails cookie login' do
61 <%= table_name %>(:quentin).remember_me
62 request.cookies["auth_token"] = auth_token('invalid_auth_token')
63 get :new
64 controller.send(:logged_in?).should_not be_true
65 end
66
67 def auth_token(token)
68 CGI::Cookie.new('name' => 'auth_token', 'value' => token)
69 end
70
71 def cookie_for(<%= file_name %>)
72 auth_token <%= table_name %>(<%= file_name %>).remember_token
73 end
74end