Changeset 914 in products for qSEOptimizer/branches/qSEOptimizer-plone-3.0/tests/testQSEOptimizer.py
- Timestamp:
- Jul 16, 2007 1:54:23 PM (17 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
qSEOptimizer/branches/qSEOptimizer-plone-3.0/tests/testQSEOptimizer.py
r908 r914 16 16 from Products.CMFCore.permissions import ManagePortal 17 17 18 try:19 from Products.CMFPlone.migrations import v2_520 HAS_PLONE_2_5 = True21 del v2_522 except ImportError:23 HAS_PLONE_2_5 = False24 25 18 from AccessControl.SecurityManagement import newSecurityManager, noSecurityManager 26 19 import re … … 28 21 from Products.qSEOptimizer.config import * 29 22 30 props = {'stop_words':STOP_WORDS, 'fields':FIELDS, 'additional_keywords': []} 31 32 custom_metatags = [{'meta_name' : 'metatag1', 33 'meta_content' : 'metatag1value'}, 34 {'meta_name' : 'metatag2', 35 'meta_content' : 'metatag2value'}] 23 props = {'stop_words':STOP_WORDS, 'fields':FIELDS} 36 24 37 25 configlets = ({'id':'qSEOptimizer', … … 49 37 qSEO_TYPES = qSEO_CONTENT + qSEO_FOLDER 50 38 51 PloneTestCase.installProduct('Five')52 39 PloneTestCase.installProduct(PRODUCT) 53 40 PloneTestCase.setupPloneSite() 54 55 class TestBeforeInstall(PloneTestCase.FunctionalTestCase):56 57 def afterSetUp(self):58 self.basic_auth = 'mgr:mgrpw'59 self.portal_path = '/%s' % self.portal.absolute_url(1)60 61 def testAccessPortalRootAnonymous(self):62 response = self.publish(self.portal_path)63 self.assertEqual(response.getStatus(), 200)64 65 def testAccessPortalRootAuthenticated(self):66 response = self.publish(self.portal_path, self.basic_auth)67 self.assertEqual(response.getStatus(), 200)68 41 69 42 … … 105 78 106 79 def test_skins_install(self): 107 skinstool=getToolByName(self.portal, 'portal_skins') 80 skinstool=getToolByName(self.portal, 'portal_skins') 108 81 109 82 for skin in skinstool.getSkinSelections(): … … 139 112 self.qi.uninstallProducts([PRODUCT]) 140 113 self.assertNotEqual(self.qi.isProductInstalled(PRODUCT), True,'qSEOptimizer is already installed') 141 skinstool=getToolByName(self.portal, 'portal_skins') 114 skinstool=getToolByName(self.portal, 'portal_skins') 142 115 143 116 for skin in skinstool.getSkinSelections(): … … 164 137 configTool = getToolByName(self.portal, 'portal_controlpanel', None) 165 138 self.assert_(not PRODUCT in [a.getId() for a in configTool.listActions()], 'Configlet found after uninstallation') 166 167 139 168 140 class TestResponse(PloneTestCase.FunctionalTestCase): … … 185 157 description_override=1, keywords_override=1, 186 158 html_comment_override=1, robots_override=1, 187 distribution_override=1 , custommetatags=custom_metatags)159 distribution_override=1) 188 160 189 161 wf_tool = self.portal.portal_workflow … … 198 170 199 171 def testDescription(self): 200 m = re.match('.*<meta name="description" content="it isdescription" />', self.html, re.S|re.M)172 m = re.match('.*<meta content="it is description" name="description" />', self.html, re.S|re.M) 201 173 self.assert_(m, 'Description not set in') 202 174 203 175 def testKeywords(self): 204 m = re.match('.*<meta name="keywords" content="my1|key2" />', self.html, re.S|re.M)176 m = re.match('.*<meta content="my1|key2" name="keywords" />', self.html, re.S|re.M) 205 177 self.assert_(m, 'Keywords not set in') 206 178 207 179 def testRobots(self): 208 m = re.match('.*<meta name="robots" content="ALL" />', self.html, re.S|re.M)180 m = re.match('.*<meta content="ALL" name="robots" />', self.html, re.S|re.M) 209 181 self.assert_(m, 'Robots not set in') 210 182 211 183 def testDistribution(self): 212 m = re.match('.*<meta name="distribution" content="Global" />', self.html, re.S|re.M)184 m = re.match('.*<meta content="Global" name="distribution" />', self.html, re.S|re.M) 213 185 self.assert_(m, 'Distribution not set in') 214 186 … … 216 188 m = re.match('.*<!--\\s*no comments\\s*-->', self.html, re.S|re.M) 217 189 self.assert_(m, 'Comments not set in') 218 190 219 191 def testTagsOrder(self): 220 192 m = re.search('name="description".+name="keywords"', self.html, re.S|re.M) 221 193 self.assert_(m, "Meta tags order not supported.") 222 194 223 def testCustomMetaTags(self): 224 for tag in custom_metatags: 225 m = re.search('<meta name="%(meta_name)s" content="%(meta_content)s" />' % tag, self.html, re.S|re.M) 226 self.assert_(m, "Custom meta tag %s not applied." % tag['meta_name']) 227 228 class TestAdditionalKeywords(PloneTestCase.FunctionalTestCase): 195 class TestExposeDCMetaTags(PloneTestCase.FunctionalTestCase): 229 196 230 197 def afterSetUp(self): 231 198 self.qi = self.portal.portal_quickinstaller 199 self.sp = self.portal.portal_properties.site_properties 232 200 self.qi.installProduct(PRODUCT) 233 self.sp = self.portal.portal_properties.seo_properties234 self.pu = self.portal.plone_utils235 201 self.portal.changeSkin('Plone Default') 236 202 … … 247 213 self.my_doc = self.portal['my_doc'] 248 214 249 def test_additional_keywords_in_configlet(self):250 path = self.portal.id+'/prefs_qseo_setup?additionalKeywords=foo\nbar'251 self.publish(path, self.basic_auth)252 self.assertEqual(self.sp.additional_keywords, ('foo', 'bar'))253 self.publish(self.portal.id+'/prefs_qseo_setup', self.basic_auth)254 self.assertEqual(self.sp.additional_keywords, ())255 256 def test_listMetaTags_empty(self):257 metatags = self.pu.listMetaTags(self.my_doc)258 self.assert_('keywords' not in metatags)259 260 def test_listMetaTags_one(self):261 self.my_doc.manage_addProperty('qSEO_keywords', ('foo',), 'lines')262 metatags = self.pu.listMetaTags(self.my_doc)263 keywords = metatags.get('keywords')264 self.assertEqual(keywords, 'foo')265 266 def test_listMetaTags_two(self):267 self.my_doc.manage_addProperty('qSEO_keywords', ('foo', 'bar'), 'lines')268 metatags = self.pu.listMetaTags(self.my_doc)269 keywords = metatags.get('keywords')270 self.assertEqual(keywords, 'foo, bar')271 272 def test_additional_keywords_in_listMetaTags_empty(self):273 self.sp.additional_keywords = ('foo',)274 metatags = self.pu.listMetaTags(self.my_doc)275 self.assert_('keywords' not in metatags)276 277 def test_additional_keywords_in_listMetaTags_one(self):278 self.my_doc.setText('<p>foo</p>')279 self.sp.additional_keywords = ('foo',)280 metatags = self.pu.listMetaTags(self.my_doc)281 keywords = metatags.get('keywords')282 self.assertEqual(keywords, 'foo')283 284 def test_additional_keywords_in_listMetaTags_two(self):285 self.my_doc.setText('<p>foo bar</p>')286 self.sp.additional_keywords = ('foo', 'bar')287 metatags = self.pu.listMetaTags(self.my_doc)288 keywords = metatags.get('keywords')289 self.assertEqual(keywords, 'foo, bar')290 291 def test_additional_keywords_in_listMetaTags_merge(self):292 self.my_doc.setText('<p>foo bar</p>')293 self.sp.additional_keywords = ('foo', 'bar')294 self.my_doc.manage_addProperty('qSEO_keywords', ('baz',), 'lines')295 metatags = self.pu.listMetaTags(self.my_doc)296 keywords = metatags.get('keywords')297 self.assertEqual(keywords, 'baz, foo, bar')298 299 300 class TestExposeDCMetaTags(PloneTestCase.FunctionalTestCase):301 302 def afterSetUp(self):303 self.qi = self.portal.portal_quickinstaller304 self.sp = self.portal.portal_properties.site_properties305 self.qi.installProduct(PRODUCT)306 self.portal.changeSkin('Plone Default')307 308 self.basic_auth = 'portal_manager:secret'309 uf = self.app.acl_users310 uf.userFolderAddUser('portal_manager', 'secret', ['Manager'], [])311 user = uf.getUserById('portal_manager')312 if not hasattr(user, 'aq_base'):313 user = user.__of__(uf)314 newSecurityManager(None, user)315 316 '''Preparation for functional testing'''317 self.my_doc = self.portal.invokeFactory('Document', id='my_doc')318 self.my_doc = self.portal['my_doc']319 320 215 def test_exposeDCMetaTags_in_configletOn(self): 321 216 path = self.portal.id+'/prefs_qseo_setup?exposeDCMetaTags=on' … … 342 237 self.html = str(self.publish(self.portal.id+'/my_doc', self.basic_auth)) 343 238 344 m = re.match('.*<meta name="DC.format" content=".*?" />', self.html, re.S|re.M) and re.match('.*<meta name="DC.distribution" content=".*?" />', self.html, re.S|re.M)239 m = re.match('.*<meta content=".*?" name="DC.format" />', self.html, re.S|re.M) and re.match('.*<meta content=".*?" name="DC.distribution" />', self.html, re.S|re.M) 345 240 346 241 self.assert_(m, 'DC meta tags not avaliable when createManager=True') 347 348 242 349 243 TESTS = [TestInstallation, TestResponse, TestExposeDCMetaTags] … … 352 246 from unittest import TestSuite, makeSuite 353 247 suite = TestSuite() 354 for suite_class in TESTS: 355 suite.addTest(makeSuite(suite_class)) 356 357 if HAS_PLONE_2_5: 358 suite.addTest(makeSuite(TestBeforeInstall)) 359 suite.addTest(makeSuite(TestAdditionalKeywords)) 360 248 suite.addTest(makeSuite(TestInstallation)) 249 suite.addTest(makeSuite(TestResponse)) 250 suite.addTest(makeSuite(TestExposeDCMetaTags)) 361 251 return suite 362 252 363 253 if __name__ == '__main__': 364 254 framework() 255
Note: See TracChangeset
for help on using the changeset viewer.