1 | # This Python file uses the following encoding: utf-8 |
---|
2 | """ |
---|
3 | base cache rule implementation tests |
---|
4 | |
---|
5 | $Id: test_base_cache_rule.py 64214 2008-05-03 02:49:17Z newbery $ |
---|
6 | """ |
---|
7 | |
---|
8 | __author__ = 'Héctor Velarde <hvelarde@jornada.com.mx>' |
---|
9 | __docformat__ = 'restructuredtext' |
---|
10 | |
---|
11 | from base import CacheFuTestCase |
---|
12 | |
---|
13 | from Interface.Verify import verifyObject |
---|
14 | from Products.Archetypes.interfaces import IBaseContent |
---|
15 | from Products.CMFPlone.utils import _createObjectByType |
---|
16 | |
---|
17 | from Products.CacheSetup.config import * |
---|
18 | from Products.CacheSetup.content.base_cache_rule import BaseCacheRule |
---|
19 | from Products.CacheSetup.content.nocatalog import NoCatalog |
---|
20 | from Products.CacheSetup.interfaces import ICacheRule |
---|
21 | |
---|
22 | class TestBaseCacheRule(CacheFuTestCase): |
---|
23 | |
---|
24 | def afterSetUp(self): |
---|
25 | _createObjectByType('BaseCacheRule', self.folder, 'bcr') |
---|
26 | self.bcr = getattr(self.folder, 'bcr') |
---|
27 | |
---|
28 | def testIsNoCatalog(self): |
---|
29 | self.failUnless(isinstance(self.bcr, NoCatalog)) |
---|
30 | |
---|
31 | def testImplementsCacheRule(self): |
---|
32 | iface = ICacheRule |
---|
33 | self.failUnless(iface.isImplementedBy(self.bcr)) |
---|
34 | self.failUnless(verifyObject(iface, self.bcr)) |
---|
35 | |
---|
36 | def testImplementsBaseContent(self): |
---|
37 | iface = IBaseContent |
---|
38 | self.failUnless(iface.isImplementedBy(self.bcr)) |
---|
39 | self.failUnless(verifyObject(iface, self.bcr)) |
---|
40 | |
---|
41 | def testTypeInfo(self): |
---|
42 | ti = self.bcr.getTypeInfo() |
---|
43 | self.failUnlessEqual(ti.Title(), 'Base Cache Rule') |
---|
44 | self.failUnlessEqual(ti.getId(), 'BaseCacheRule') |
---|
45 | self.failUnlessEqual(ti.Metatype(), 'BaseCacheRule') |
---|
46 | self.failUnlessEqual(ti.globalAllow(), 0) |
---|
47 | |
---|
48 | class TestBaseCacheRuleMethods(CacheFuTestCase): |
---|
49 | |
---|
50 | def afterSetUp(self): |
---|
51 | _createObjectByType('BaseCacheRule', self.folder, 'bcr') |
---|
52 | self.bcr = getattr(self.folder, 'bcr') |
---|
53 | |
---|
54 | def _test_validate_expression(self): |
---|
55 | self.fail('not yet implemented...') |
---|
56 | |
---|
57 | def _test_getPredicateExpression(self): |
---|
58 | self.fail('not yet implemented...') |
---|
59 | |
---|
60 | def _test_setPredicateExpression(self): |
---|
61 | self.fail('not yet implemented...') |
---|
62 | |
---|
63 | def _test_validate_predicateExpression(self): |
---|
64 | self.fail('not yet implemented...') |
---|
65 | |
---|
66 | def _test_testPredicate(self): |
---|
67 | self.fail('not yet implemented...') |
---|
68 | |
---|
69 | def _test_getEtagExpression(self): |
---|
70 | self.fail('not yet implemented...') |
---|
71 | |
---|
72 | def _test_setEtagExpression(self): |
---|
73 | self.fail('not yet implemented...') |
---|
74 | |
---|
75 | def _test_validate_etagExpression(self): |
---|
76 | self.fail('not yet implemented...') |
---|
77 | |
---|
78 | def _test_getEtagExpressionValue(self): |
---|
79 | self.fail('not yet implemented...') |
---|
80 | |
---|
81 | def _test_getHeaderSetIdExpression(self): |
---|
82 | self.fail('not yet implemented...') |
---|
83 | |
---|
84 | def _test_setHeaderSetIdExpression(self): |
---|
85 | self.fail('not yet implemented...') |
---|
86 | |
---|
87 | def _test_validate_headerSetIdExpression(self): |
---|
88 | self.fail('not yet implemented...') |
---|
89 | |
---|
90 | def _test_getHeaderSetIdExpressionValue(self): |
---|
91 | self.fail('not yet implemented...') |
---|
92 | |
---|
93 | def test_getLastModifiedExpression(self): |
---|
94 | # check if returns default value |
---|
95 | self.failUnlessEqual(self.bcr.getLastModifiedExpression(), 'python:object.modified()') |
---|
96 | |
---|
97 | def test_setLastModifiedExpression(self): |
---|
98 | self.bcr.setLastModifiedExpression(None) |
---|
99 | self.failUnlessEqual(self.bcr.getLastModifiedExpression(), '') |
---|
100 | self.bcr.setLastModifiedExpression('python:object.modified()') |
---|
101 | self.failUnlessEqual(self.bcr.getLastModifiedExpression(), 'python:object.modified()') |
---|
102 | |
---|
103 | def _test_validate_lastModifiedExpression(self): |
---|
104 | self.fail('not yet implemented...') |
---|
105 | |
---|
106 | def _test_getLastModified(self): |
---|
107 | self.fail('not yet implemented...') |
---|
108 | |
---|
109 | def _test_lastDate(self): |
---|
110 | self.fail('not yet implemented...') |
---|
111 | |
---|
112 | def _test_getLastTransactionDate(self): |
---|
113 | self.fail('not yet implemented...') |
---|
114 | |
---|
115 | def test_getVaryExpression(self): |
---|
116 | # check if returns default value |
---|
117 | self.failUnlessEqual(self.bcr.getVaryExpression(), 'python:rule.portal_cache_settings.getVaryHeader()') |
---|
118 | |
---|
119 | def test_setVaryExpression(self): |
---|
120 | self.bcr.setVaryExpression(None) |
---|
121 | self.failUnlessEqual(self.bcr.getVaryExpression(), '') |
---|
122 | self.bcr.setVaryExpression('python:rule.portal_cache_settings.getVaryHeader()') |
---|
123 | self.failUnlessEqual(self.bcr.getVaryExpression(), 'python:rule.portal_cache_settings.getVaryHeader()') |
---|
124 | |
---|
125 | def _test_validate_varyExpression(self): |
---|
126 | self.fail('not yet implemented...') |
---|
127 | |
---|
128 | def _test_getVary(self): |
---|
129 | self.fail('not yet implemented...') |
---|
130 | |
---|
131 | def _test_getExpressionContext(self): |
---|
132 | self.fail('not yet implemented...') |
---|
133 | |
---|
134 | def _test_associateTemplate(self): |
---|
135 | self.fail('not yet implemented...') |
---|
136 | |
---|
137 | def _test_getHeaderSet(self): |
---|
138 | self.fail('not yet implemented...') |
---|
139 | |
---|
140 | def test_getHeaderSetVocabulary(self): |
---|
141 | """ check if returns default header set vocabulary """ |
---|
142 | # where is this thing defined? |
---|
143 | types = ( |
---|
144 | ('expression', 'Use expression below'), |
---|
145 | ('no-cache', 'Do not cache'), |
---|
146 | ('cache-in-memory', 'Cache in Memory'), |
---|
147 | ('cache-with-etag', 'Cache with ETag'), |
---|
148 | ('cache-with-last-modified', 'Cache file with Last-Modified'), |
---|
149 | ('cache-in-proxy-1-hour', 'Cache in proxy cache for 1 hour'), |
---|
150 | ('cache-in-proxy-24-hours', 'Cache in proxy cache for 24 hours'), |
---|
151 | ('cache-in-browser-1-hour', 'Cache in browser for 1 hour'), |
---|
152 | ('cache-in-browser-24-hours', 'Cache in browser for 24 hours'), |
---|
153 | ('cache-in-browser-forever', 'Cache in browser forever'), |
---|
154 | ('None', 'Rule does not apply') |
---|
155 | ) |
---|
156 | |
---|
157 | for t in self.bcr.getHeaderSetVocabulary().items(): |
---|
158 | self.failUnless(t in types) |
---|
159 | |
---|
160 | def test_getObjectDefaultView(self): |
---|
161 | """ check if standard Plone types return their default views """ |
---|
162 | types = ( |
---|
163 | ('Document', 'document_view'), |
---|
164 | ('Event', 'event_view'), |
---|
165 | ('Favorite', 'favorite_view'), |
---|
166 | ('File', 'index_html'), |
---|
167 | ('Folder', 'folder_listing'), |
---|
168 | ('Image', 'index_html'), |
---|
169 | ('Link', 'link_view'), |
---|
170 | ('News Item', 'newsitem_view'), |
---|
171 | ) |
---|
172 | |
---|
173 | for type, view in types: |
---|
174 | self.folder.invokeFactory(type, type) |
---|
175 | obj = getattr(self.folder, type) |
---|
176 | self.failUnlessEqual(self.bcr.getObjectDefaultView(obj), view) |
---|
177 | self.folder.manage_delObjects(type) |
---|
178 | |
---|
179 | def _test_addEtagComponent(self): |
---|
180 | self.fail('not yet implemented...') |
---|
181 | |
---|
182 | def _test_getEtag(self): |
---|
183 | self.fail('not yet implemented...') |
---|
184 | |
---|
185 | def _test_getRelativeUrlsToPurge(self): |
---|
186 | self.fail('not yet implemented...') |
---|
187 | |
---|
188 | def test_suite(): |
---|
189 | from unittest import TestSuite, makeSuite |
---|
190 | suite = TestSuite() |
---|
191 | suite.addTest(makeSuite(TestBaseCacheRule)) |
---|
192 | suite.addTest(makeSuite(TestBaseCacheRuleMethods)) |
---|
193 | return suite |
---|