source: products/vendor/Products.CacheSetup/current/Products/CacheSetup/tests/test_cache_tool.py @ 3296

Last change on this file since 3296 was 3296, checked in by fenix, 13 years ago

Load Products.CacheSetup?-1.2.1 into vendor/Products.CacheSetup?/current.

  • Property svn:eol-style set to native
File size: 7.7 KB
Line 
1# This Python file uses the following encoding: utf-8
2"""
3cache tool implementation tests
4
5$Id: test_cache_tool.py 64214 2008-05-03 02:49:17Z newbery $
6"""
7
8__author__ = 'Héctor Velarde <hvelarde@jornada.com.mx>'
9__docformat__ = 'restructuredtext'
10
11from base import CacheFuTestCase
12
13from AccessControl import Unauthorized
14from Interface.Verify import verifyObject
15from Products.Archetypes.interfaces import IBaseFolder
16from Products.Archetypes.interfaces.layer import ILayerContainer
17from Products.CMFCore.utils import getToolByName, UniqueObject
18
19from Products.CacheSetup.config import *
20from Products.CacheSetup.interfaces import ICacheTool
21
22class TestCacheTool(CacheFuTestCase):
23
24    def afterSetUp(self):
25        self.tool = getattr(self.folder, CACHE_TOOL_ID)
26
27    def testIsUniqueObject(self):
28        """ a tool has to be an UniqueObject """
29        self.failUnless(isinstance(self.tool, UniqueObject))
30
31    def testImplementsBaseFolder(self):
32        iface = IBaseFolder
33        self.failUnless(iface.providedBy(self.tool))
34        self.failUnless(verifyObject(iface, self.tool))
35
36    def testImplementsCacheTool(self):
37        iface = ICacheTool
38        self.failUnless(iface.providedBy(self.tool))
39        self.failUnless(verifyObject(iface, self.tool))
40
41    def testTypeInfo(self):
42        ti = self.tool.getTypeInfo()
43        self.failUnlessEqual(ti.Title(), 'Cache Configuration Tool')
44        self.failUnlessEqual(ti.getId(), 'CacheTool')
45        self.failUnlessEqual(ti.Metatype(), 'CacheTool')
46        self.failUnlessEqual(ti.globalAllow(), 0)
47        self.failUnlessEqual(ti.getMethodAliases(), {'(Default)': 'cache_tool_config',
48                                                      'view' : 'cache_tool_config',
49                                                      'edit': 'base_edit'})
50
51    def testAllowedContentTypes(self):
52        allowed = ('CachePolicy',)
53        for t in self.tool.allowedContentTypes():
54            self.failUnless(t.getId() in allowed)
55
56    def testActions(self):
57        # not pretty sure about this
58        actions = ('object/view',)
59        ttool = getToolByName(self.portal, 'portal_types')
60        tool = ttool['CacheTool']
61        # actions have ManagePortal permission set
62        self.assertRaises(Unauthorized, tool.getActionInfo, actions)
63        self.setRoles(['Manager','Member'])
64        info = tool.getActionInfo(actions)
65        self.failUnless(info is not None)
66        self.failUnlessEqual(info['url'], '')
67
68class TestCacheToolMethods(CacheFuTestCase):
69
70    def afterSetUp(self):
71        self.tool = getattr(self.folder, CACHE_TOOL_ID)
72
73    def _test_initializeArchetype(self):
74        self.fail('not yet implemented...')
75
76    # The ActivePolicy vocabulary is likely to change with each release
77    # There probably should be a better way to keep track of these instead
78    # of hard coding the list in the test
79    def _test_getActivePolicyVocabulary(self):
80        """ check against default active policy vocabulary """
81        vocab = (
82            ('default-cache-policy', 'Default Cache Policy'),
83            ('no-proxy-cache', 'No Proxy Cache'),
84            ('default-cache-policy-v2', 'Default Cache Policy, slightly improved'),
85            ('squid-without-vary', 'Squid without Vary header (Note: Turn off compression)')
86        )
87        for i in self.tool.getActivePolicyVocabulary().items():
88            self.failUnless(i in vocab)
89        # what about testing for self.tool.getActivePolicyVocabulary(display=1)
90
91    def test_getActivePolicyId(self):
92        self.failUnlessEqual(self.tool.getActivePolicyId(), DEFAULT_POLICY_ID)
93        # need to test this after erasing the default one
94
95    def _test_setDisplayPolicy(self):
96        self.fail('not yet implemented...')
97
98    def _test_setEnabled(self):
99        self.fail('not yet implemented...')
100
101    def _test_getPolicy(self):
102        self.fail('not yet implemented...')
103
104    def _test_getDisplayPolicy(self):
105        self.fail('not yet implemented...')
106
107    # The details of the cache policies are subject to change with each release
108    # There probably should be a better way to keep track of this instead of
109    # hard coding the lists in the tests
110    def _test_getRules(self):
111        """ test rules for all policies """
112        # right now all policies have the same rules
113        rules = (
114            'httpcache', 'plone-content-types', 'plone-containers',
115            'plone-templates', 'resource-registries', 'downloads', 'dtml-css'
116        )
117        ids = (None, ) + POLICY_IDS # None is for default
118        for id in ids:
119            for r, t in self.tool.getRules(policy_id=id).items():
120                self.failUnless(r in rules)
121                # what to test against t?
122
123    # The details of the cache policies are subject to change with each release
124    # There probably should be a better way to keep track of this instead of
125    # hard coding the lists in the tests
126    def _test_getHeaderSets(self):
127        """ test header sets for all policies """
128        # right now all policies have the same header sets
129        header_sets = (
130            'no-cache', 'cache-in-memory', 'cache-with-etag',
131            'cache-with-last-modified', 'cache-in-proxy-1-hour',
132            'cache-in-proxy-24-hours', 'cache-in-browser-1-hour',
133            'cache-in-browser-24-hours', 'cache-in-browser-forever'
134        )
135        ids = (None, ) + POLICY_IDS # None is for default
136        for id in ids:
137            for hs, t in self.tool.getHeaderSets(policy_id=id).items():
138                self.failUnless(hs in header_sets)
139                # what to test against t?
140
141    def _test_getHeaderSetById(self):
142        self.fail('not yet implemented...')
143
144    def _test_addPolicyFolder(self):
145        self.fail('not yet implemented...')
146
147    def _test_addRulesFolder(self):
148        self.fail('not yet implemented...')
149
150    def _test_addHeaderSetsFolder(self):
151        self.fail('not yet implemented...')
152
153    def _test_incrementCatalogCount(self):
154        self.fail('not yet implemented...')
155
156    def _test_getCatalogCount(self):
157        self.fail('not yet implemented...')
158
159    def _test_incrementPermissionCount(self):
160        self.fail('not yet implemented...')
161
162    def _test_getPermissionCount(self):
163        self.fail('not yet implemented...')
164
165    def _test_getCompleteUrl(self):
166        self.fail('not yet implemented...')
167
168    def _test_getSquidUrls(self):
169        self.fail('not yet implemented...')
170
171    def _test_setSquidUrls(self):
172        self.fail('not yet implemented...')
173
174    def _test_getCompleteUrl(self):
175        self.fail('not yet implemented...')
176
177    def _test_hasPurgeableProxy(self):
178        self.fail('not yet implemented...')
179
180    def _test_getDomains(self):
181        self.fail('not yet implemented...')
182
183    def _test_setDomains(self):
184        self.fail('not yet implemented...')
185
186    def _test_getSquidURLs(self):
187        self.fail('not yet implemented...')
188
189    def _test_setSquidURLs(self):
190        self.fail('not yet implemented...')
191
192    def _test_post_validate(self):
193        self.fail('not yet implemented...')
194
195    def _test_manage_purgePageCache(self):
196        self.fail('not yet implemented...')
197
198    def _test_canAnonymousView(self):
199        self.fail('not yet implemented...')
200
201    def _test_isGzippable(self):
202        self.fail('not yet implemented...')
203
204    def _test_getRuleAndHeaderSet(self):
205        self.fail('not yet implemented...')
206
207    def _test_getUrlsToPurge(self):
208        self.fail('not yet implemented...')
209
210    def _test_getMember(self):
211        self.fail('not yet implemented...')
212
213    def _test_generateUniqueId(self):
214        self.fail('not yet implemented...')
215
216    def _test_isIDAutoGenerated(self):
217        self.fail('not yet implemented...')
218
219def test_suite():
220    from unittest import TestSuite, makeSuite
221    suite = TestSuite()
222    suite.addTest(makeSuite(TestCacheTool))
223    suite.addTest(makeSuite(TestCacheToolMethods))
224    return suite
Note: See TracBrowser for help on using the repository browser.