~ubuntu-branches/ubuntu/maverick/trac/maverick

« back to all changes in this revision

Viewing changes to trac/web/tests/auth.py

  • Committer: Bazaar Package Importer
  • Author(s): Jesus Climent
  • Date: 2006-10-18 11:47:41 UTC
  • mfrom: (1.1.6 upstream)
  • Revision ID: james.westby@ubuntu.com-20061018114741-m5h9yhi77gabtouu
Tags: 0.10-3
debian/control: changed the Conflicts: entry with a versioned oned
(Closes: #393842, #384381)

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
1
from trac.test import EnvironmentStub, Mock
2
2
from trac.web.auth import LoginModule
 
3
from trac.web.href import Href
3
4
 
4
5
from Cookie import SimpleCookie as Cookie
5
6
import unittest
13
14
        self.module = LoginModule(self.env)
14
15
 
15
16
    def test_anonymous_access(self):
16
 
        req = Mock(incookie=Cookie(), remote_addr='127.0.0.1', remote_user=None)
 
17
        req = Mock(incookie=Cookie(), href=Href('/trac.cgi'),
 
18
                   remote_addr='127.0.0.1', remote_user=None)
17
19
        self.assertEqual(None, self.module.authenticate(req))
18
20
 
19
21
    def test_unknown_cookie_access(self):
20
22
        incookie = Cookie()
21
23
        incookie['trac_auth'] = '123'
22
 
        req = Mock(cgi_location='/trac', incookie=incookie, outcookie=Cookie(),
 
24
        req = Mock(cgi_location='/trac', href=Href('/trac.cgi'),
 
25
                   incookie=incookie, outcookie=Cookie(),
23
26
                   remote_addr='127.0.0.1', remote_user=None)
24
27
        self.assertEqual(None, self.module.authenticate(req))
25
28
 
31
34
        incookie['trac_auth'] = '123'
32
35
        outcookie = Cookie()
33
36
        req = Mock(incookie=incookie, outcookie=outcookie,
 
37
                   href=Href('/trac.cgi'),
34
38
                   remote_addr='127.0.0.1', remote_user=None)
35
39
        self.assertEqual('john', self.module.authenticate(req))
36
40
        self.failIf('auth_cookie' in req.outcookie)
42
46
        incookie = Cookie()
43
47
        incookie['trac_auth'] = '123'
44
48
        outcookie = Cookie()
45
 
        req = Mock(cgi_location='/trac', incookie=incookie, outcookie=outcookie,
 
49
        req = Mock(cgi_location='/trac', href=Href('/trac.cgi'),
 
50
                   incookie=incookie, outcookie=outcookie,
46
51
                   remote_addr='192.168.0.100', remote_user=None)
47
52
        self.assertEqual(None, self.module.authenticate(req))
48
53
        self.failIf('trac_auth' not in req.outcookie)
56
61
        incookie['trac_auth'] = '123'
57
62
        outcookie = Cookie()
58
63
        req = Mock(incookie=incookie, outcookie=outcookie,
 
64
                   href=Href('/trac.cgi'),
59
65
                   remote_addr='192.168.0.100', remote_user=None)
60
66
        self.assertEqual('john', self.module.authenticate(req))
61
67
        self.failIf('auth_cookie' in req.outcookie)
64
70
        outcookie = Cookie()
65
71
        # remote_user must be upper case to test that by default, case is
66
72
        # preserved.
67
 
        req = Mock(cgi_location='/trac', incookie=Cookie(), outcookie=outcookie,
 
73
        req = Mock(cgi_location='/trac', href=Href('/trac.cgi'),
 
74
                   incookie=Cookie(), outcookie=outcookie,
68
75
                   remote_addr='127.0.0.1', remote_user='john', authname='john')
69
76
        self.module._do_login(req)
70
77
 
85
92
        self.env.config.set('trac', 'ignore_auth_case', 'yes')
86
93
 
87
94
        outcookie = Cookie()
88
 
        req = Mock(cgi_location='/trac', incookie=Cookie(), outcookie=outcookie,
 
95
        req = Mock(cgi_location='/trac', href=Href('/trac.cgi'),
 
96
                   incookie=Cookie(), outcookie=outcookie,
89
97
                   remote_addr='127.0.0.1', remote_user='John',
90
98
                   authname='anonymous')
91
99
        self.module._do_login(req)
100
108
        self.assertEquals('127.0.0.1', row[1])
101
109
 
102
110
    def test_login_no_username(self):
103
 
        req = Mock(incookie=Cookie(), remote_addr='127.0.0.1', remote_user=None)
 
111
        req = Mock(incookie=Cookie(), href=Href('/trac.cgi'),
 
112
                   remote_addr='127.0.0.1', remote_user=None)
104
113
        self.assertRaises(AssertionError, self.module._do_login, req)
105
114
 
106
115
    def test_already_logged_in_same_user(self):
110
119
        incookie = Cookie()
111
120
        incookie['trac_auth'] = '123'
112
121
        req = Mock(incookie=incookie, outcookie=Cookie(),
 
122
                   href=Href('/trac.cgi'),
113
123
                   remote_addr='127.0.0.1', remote_user='john', authname='john')
114
124
        self.module._do_login(req) # this shouldn't raise an error
115
125
 
119
129
                       "VALUES ('123', 'john', '127.0.0.1')")
120
130
        incookie = Cookie()
121
131
        incookie['trac_auth'] = '123'
122
 
        req = Mock(incookie=incookie, authname='john', remote_addr='127.0.0.1',
123
 
                   remote_user='tom')
 
132
        req = Mock(incookie=incookie, authname='john',
 
133
                   href=Href('/trac.cgi'),
 
134
                   remote_addr='127.0.0.1', remote_user='tom')
124
135
        self.assertRaises(AssertionError, self.module._do_login, req)
125
136
 
126
137
    def test_logout(self):
130
141
        incookie = Cookie()
131
142
        incookie['trac_auth'] = '123'
132
143
        outcookie = Cookie()
133
 
        req = Mock(cgi_location='/trac', incookie=incookie, outcookie=outcookie,
 
144
        req = Mock(cgi_location='/trac', href=Href('/trac.cgi'),
 
145
                   incookie=incookie, outcookie=outcookie,
134
146
                   remote_addr='127.0.0.1', remote_user=None, authname='john')
135
147
        self.module._do_logout(req)
136
148
        self.failIf('trac_auth' not in outcookie)
138
150
        self.failIf(cursor.fetchone())
139
151
 
140
152
    def test_logout_not_logged_in(self):
141
 
        req = Mock(cgi_location='/trac', incookie=Cookie(), outcookie=Cookie(),
 
153
        req = Mock(cgi_location='/trac', href=Href('/trac.cgi'),
 
154
                   incookie=Cookie(), outcookie=Cookie(),
142
155
                   remote_addr='127.0.0.1', remote_user=None,
143
156
                   authname='anonymous')
144
157
        self.module._do_logout(req) # this shouldn't raise an error