Changeset 1929 in products
- Timestamp:
- Mar 17, 2010 4:42:39 PM (14 years ago)
- Location:
- quintagroup.canonicalpath/trunk/quintagroup/canonicalpath
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
quintagroup.canonicalpath/trunk/quintagroup/canonicalpath/configure.zcml
r1921 r1929 6 6 <adapter factory=".adapters.DefaultCanonicalPathAdapter" /> 7 7 8 <!-- Add general canonical_link adapter --> 9 <adapter factory=".adapters.DefaultCanonicalLinkAdapter" /> 10 8 11 <!-- Register canonical_path adapter for catalog --> 9 12 <adapter name="canonical_path" factory=".catalog.canonical_path" /> 10 13 14 <!-- Register canonical_link adapter for catalog --> 15 <adapter name="canonical_link" factory=".catalog.canonical_link" /> 16 11 17 </configure> -
quintagroup.canonicalpath/trunk/quintagroup/canonicalpath/tests.py
r1922 r1929 17 17 18 18 from quintagroup.canonicalpath.interfaces import ICanonicalPath 19 from quintagroup.canonicalpath.adapters import PROPERTY 19 from quintagroup.canonicalpath.interfaces import ICanonicalLink 20 from quintagroup.canonicalpath.adapters import PROPERTY_PATH 21 from quintagroup.canonicalpath.adapters import PROPERTY_LINK 20 22 21 23 class TestCase(ptc.PloneTestCase): … … 45 47 wrapper = queryMultiAdapter((self.my_doc, self.catalog), IIndexableObject) 46 48 self.assertFalse(wrapper is None, "No indexer registered for document object") 47 48 49 class TestDefaultAdapter(TestCase): 49 50 def testCanonicalPathForPortal(self): 51 wrapper = queryMultiAdapter((self.portal, self.catalog), IIndexableObject) 52 self.assertTrue(hasattr(wrapper, 'canonical_path'), 53 "'canonical_path' attribute not accessible with indexer wrapper for portal object") 54 55 def testCanonicalPathForAT(self): 56 wrapper = queryMultiAdapter((self.my_doc, self.catalog), IIndexableObject) 57 self.assertTrue(hasattr(wrapper, 'canonical_path'), 58 "'canonical_path' attribute not accessible with indexer wrapper for Document object") 59 60 def testCanonicalLinkForPortal(self): 61 wrapper = queryMultiAdapter((self.portal, self.catalog), IIndexableObject) 62 self.assertTrue(hasattr(wrapper, 'canonical_link'), 63 "'canonical_link' attribute not accessible with indexer wrapper for portal object") 64 65 def testCanonicalLinkForAT(self): 66 wrapper = queryMultiAdapter((self.my_doc, self.catalog), IIndexableObject) 67 self.assertTrue(hasattr(wrapper, 'canonical_link'), 68 "'canonical_link' attribute not accessible with indexer wrapper for Document object") 69 70 71 72 class TestDefaultCanonicalPathAdapter(TestCase): 50 73 51 74 … … 89 112 90 113 cpadapter.canonical_path = newcp 91 prop = self.portal.getProperty(PROPERTY , None)114 prop = self.portal.getProperty(PROPERTY_PATH, None) 92 115 self.assertTrue(prop == newcp, 93 116 "Canonical path adapter setter NOT SET new '%s' value to '%s' " \ 94 "propery for the portal" % (newcp, PROPERTY ) )117 "propery for the portal" % (newcp, PROPERTY_PATH) ) 95 118 96 119 self.assertTrue(cpadapter.canonical_path == newcp, … … 104 127 105 128 cpadapter.canonical_path = newcp 106 prop = self.my_doc.getProperty(PROPERTY , None)129 prop = self.my_doc.getProperty(PROPERTY_PATH, None) 107 130 self.assertTrue(prop == newcp, 108 131 "Canonical path adapter setter NOT SET new '%s' value to '%s' " \ 109 "propery for the Document" % (newcp, PROPERTY ) )132 "propery for the Document" % (newcp, PROPERTY_PATH) ) 110 133 111 134 self.assertTrue(cpadapter.canonical_path == newcp, … … 114 137 115 138 116 def testValidation (self):139 def testValidationWrong(self): 117 140 cpadapter = queryAdapter(self.my_doc, ICanonicalPath) 118 141 for wrong in ['new\nline','s p a c e','with\ttabs']: … … 122 145 continue 123 146 else: 147 raise self.failureException, "InvalidValue not raised when '%s' wrong value try to set" % wrong 148 149 def testValidationGood(self): 150 cpadapter = queryAdapter(self.my_doc, ICanonicalPath) 151 for good in ['./good','../good','/good', 'good']: 152 cpadapter.canonical_path = good 153 154 155 class TestDefaultCanonicalLinkAdapter(TestCase): 156 157 158 def afterSetUp(self): 159 self.loginAsPortalOwner() 160 self.purl = getToolByName(self.portal, 'portal_url') 161 self.my_doc = makeContent(self.portal, portal_type='Document', id='my_doc') 162 self.logout() 163 164 self.mydoc_cl = self.my_doc.absolute_url() 165 166 def testRegistration4Portal(self): 167 cladapter = queryAdapter(self.portal, ICanonicalLink) 168 self.assertFalse(cladapter is None, 169 "Can't get canonical link adapter for the plone site object") 170 171 def testRegistration4AT(self): 172 cladapter = queryAdapter(self.my_doc, ICanonicalLink) 173 self.assertFalse(cladapter is None, 174 "Can't get canonical link adapter for the Document object") 175 176 177 def testGetDefault4Portal(self): 178 cladapter = queryAdapter(self.portal, ICanonicalLink) 179 self.assertTrue(cladapter.canonical_link == self.purl(), 180 "Canonical link adapter return '%s' for portal, must be: '%s'" % ( 181 cladapter.canonical_link, self.purl()) ) 182 183 184 def testGetDefault4AT(self): 185 cladapter = queryAdapter(self.my_doc, ICanonicalLink) 186 self.assertTrue(cladapter.canonical_link == self.mydoc_cl, 187 "Canonical link adapter return '%s' for document, must be: '%s'" % ( 188 cladapter.canonical_link, self.mydoc_cl) ) 189 190 191 def testSet4Portal(self): 192 cladapter = queryAdapter(self.portal, ICanonicalLink) 193 newcl = self.purl() + '/new_portal_canonical' 194 195 cladapter.canonical_link = newcl 196 prop = self.portal.getProperty(PROPERTY_LINK, None) 197 self.assertTrue(prop == newcl, 198 "Canonical link adapter setter NOT SET new '%s' value to '%s' " \ 199 "propery for the portal" % (newcl, PROPERTY_LINK) ) 200 201 self.assertTrue(cladapter.canonical_link == newcl, 202 "Canonical link adapter GET '%s' canonical_link, for portal, " \ 203 "must be: '%s'" % (cladapter.canonical_link, newcl) ) 204 205 206 def testSet4AT(self): 207 cladapter = queryAdapter(self.my_doc, ICanonicalLink) 208 newcl = self.mydoc_cl + '/new_mydoc_canonical' 209 210 cladapter.canonical_link = newcl 211 prop = self.my_doc.getProperty(PROPERTY_LINK, None) 212 self.assertTrue(prop == newcl, 213 "Canonical link adapter setter NOT SET new '%s' value to '%s' " \ 214 "propery for the Document" % (newcl, PROPERTY_LINK) ) 215 216 self.assertTrue(cladapter.canonical_link == newcl, 217 "Canonical link adapter GET '%s' canonical_link, for Document, " \ 218 "must be: '%s'" % (cladapter.canonical_link, newcl) ) 219 220 def testValidationWrong(self): 221 cladapter = queryAdapter(self.my_doc, ICanonicalLink) 222 for wrong in ['http://new\nline','s p a c e','with\ttabs']: 223 try: 224 cladapter.canonical_link = wrong 225 except InvalidValue: 226 continue 227 else: 124 228 raise self.failureException, "InvalidValue not raised when " \ 125 "wrong value set" 229 "'%s' wrong value try to set" % wrong 230 231 def testValidationGood(self): 232 cladapter = queryAdapter(self.my_doc, ICanonicalLink) 233 for good in ['http://', './good','../good','/good', 'good']: 234 cladapter.canonical_link = good 126 235 127 236 … … 129 238 return unittest.TestSuite([ 130 239 unittest.makeSuite(TestIndexerRegistration), 131 unittest.makeSuite(TestDefaultAdapter), 240 unittest.makeSuite(TestDefaultCanonicalPathAdapter), 241 unittest.makeSuite(TestDefaultCanonicalLinkAdapter), 132 242 ]) 133 243
Note: See TracChangeset
for help on using the changeset viewer.