1
# -*- coding: utf-8 -*-
3
MoinMoin - MoinMoin.module_tested Tests
5
Module names must start with 'test_' to be included in the tests.
7
@copyright: 2003-2004 by Jürgen Hermann <jh@web.de>
8
@license: GNU GPL, see COPYING for details.
12
from MoinMoin._tests import TestConfig
13
from MoinMoin import config
15
class NormalizePagenameTestCase(unittest.TestCase):
17
def testPageInvalidChars(self):
18
""" request: normalize pagename: remove invalid unicode chars
20
Assume the default setting
22
test = u'\u0000\u202a\u202b\u202c\u202d\u202e'
24
result = self.request.normalizePagename(test)
25
self.assertEqual(result, expected,
26
('Expected "%(expected)s" but got "%(result)s"') % locals())
28
def testNormalizeSlashes(self):
29
""" request: normalize pagename: normalize slashes """
34
(u'a/////b/////c', u'a/b/c'),
35
(u'a b/////c d/////e f', u'a b/c d/e f'),
37
for test, expected in cases:
38
result = self.request.normalizePagename(test)
39
self.assertEqual(result, expected,
40
('Expected "%(expected)s" but got "%(result)s"') %
43
def testNormalizeWhitespace(self):
44
""" request: normalize pagename: normalize whitespace """
50
(u'a b / c d / e f', u'a b/c d/e f'),
51
# All 30 unicode spaces
52
(config.chars_spaces, u''),
54
for test, expected in cases:
55
result = self.request.normalizePagename(test)
56
self.assertEqual(result, expected,
57
('Expected "%(expected)s" but got "%(result)s"') %
60
def testUnderscoreTestCase(self):
61
""" request: normalize pagename: underscore convert to spaces and normalized
63
Underscores should convert to spaces, then spaces should be
64
normalized, order is important!
70
(u'a__b__c', u'a b c'),
71
(u'a__b__/__c__d__/__e__f', u'a b/c d/e f'),
73
for test, expected in cases:
74
result = self.request.normalizePagename(test)
75
self.assertEqual(result, expected,
76
('Expected "%(expected)s" but got "%(result)s"') %
80
class GroupPagesTestCase(unittest.TestCase):
83
self.config = TestConfig(self.request,
84
page_group_regex = r'.+Group')
89
def testNormalizeGroupName(self):
90
""" request: normalize pagename: restrict groups to alpha numeric Unicode
92
Spaces should normalize after invalid chars removed!
95
group = re.compile(r'.+Group', re.UNICODE)
98
(u'Name,:Group', u'NameGroup'),
99
# remove than normalize spaces
100
(u'Name ! @ # $ % ^ & * ( ) + Group', u'Name Group'),
102
for test, expected in cases:
103
# validate we are testing valid group names
104
assert group.search(test)
105
result = self.request.normalizePagename(test)
106
self.assertEqual(result, expected,
107
('Expected "%(expected)s" but got "%(result)s"') %
111
class HTTPDateTests(unittest.TestCase):
113
def testRFC1123Date(self):
114
""" request: httpDate default rfc1123 """
115
self.failUnlessEqual(self.request.httpDate(0),
116
'Thu, 01 Jan 1970 00:00:00 GMT',
119
def testRFC850Date(self):
120
""" request: httpDate rfc850 """
121
self.failUnlessEqual(self.request.httpDate(0, rfc='850'),
122
'Thursday, 01-Jan-70 00:00:00 GMT',