Changeset 1475 in products
- Timestamp:
- Dec 25, 2009 2:20:56 PM (14 years ago)
- Location:
- quintagroup.seoptimizer/trunk/quintagroup/seoptimizer
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
quintagroup.seoptimizer/trunk/quintagroup/seoptimizer/browser/views.py
r1468 r1475 1 1 from sets import Set 2 from DateTime import DateTime 2 3 from Acquisition import aq_inner 3 4 from zope.component import queryAdapter … … 32 33 if context.hasProperty(property_name): 33 34 return context.getProperty(property_name) 34 35 35 36 if accessor: 36 37 method = getattr(context, accessor, None) … … 43 44 except AttributeError: 44 45 value = None 45 46 46 47 return value 47 48 … … 61 62 Generate Description from SEO properties 62 63 """ 63 64 64 65 return self.getSEOProperty( 'qSEO_description', accessor = 'Description') 65 66 … … 77 78 tags = self.seo_globalCustomMetaTags() 78 79 loc = self.seo_localCustomMetaTags() 79 80 80 names = [i['meta_name'] for i in tags] 81 81 add_tags = [] … … 139 139 html_comment = self.getSEOProperty( 'qSEO_html_comment' ) 140 140 return html_comment and html_comment or '' 141 141 142 142 def seo_keywords( self ): 143 143 """ … … 173 173 174 174 return value 175 175 176 176 def seo_canonical( self ): 177 177 """ … … 415 415 state = _('seoproperties_saved', default=u'Content SEO properties have been saved.') 416 416 context.plone_utils.addPortalMessage(state) 417 kwargs = {'modification_date' : DateTime()} 418 context.plone_utils.contentEdit(context, **kwargs) 417 419 return request.response.redirect(self.context.absolute_url()) 418 420 context.plone_utils.addPortalMessage(state, 'error') -
quintagroup.seoptimizer/trunk/quintagroup/seoptimizer/tests/testQSEOptimizer.py
r1458 r1475 2 2 import string 3 3 import urllib 4 from cStringIO import StringIO 4 5 from zope.component import getMultiAdapter 5 6 from Products.Five import zcml, fiveconfigure … … 167 168 self.qi = self.portal.portal_quickinstaller 168 169 self.qi.installProduct(PRODUCT) 169 #self.portal.changeSkin('Plone Default') 170 171 self.basic_auth = 'mgr:mgrpw' 172 self.loginAsPortalOwner() 170 self.sp = self.portal.portal_properties.seo_properties 171 self.pu = self.portal.plone_utils 172 self.basic_auth = 'portal_manager:secret' 173 174 uf = self.app.acl_users 175 uf.userFolderAddUser('portal_manager', 'secret', ['Manager'], []) 176 user = uf.getUserById('portal_manager') 177 if not hasattr(user, 'aq_base'): 178 user = user.__of__(uf) 179 newSecurityManager(None, user) 173 180 174 181 '''Preparation for functional testing''' 175 182 my_doc = self.portal.invokeFactory('Document', id='my_doc') 176 183 my_doc = self.portal['my_doc'] 177 self.canonurl = 'http://test.site.com/test.html' 178 self.sp = self.portal.portal_properties.seo_properties 184 self.canonurl = 'http://nohost/plone/test.html' 179 185 self.sp.manage_changeProperties(**global_custom_metatags) 180 181 my_doc.qseo_properties_edit(title='hello world', title_override=1, 182 description='it is description', description_override=1, 183 keywords='my1|key2', keywords_override=1, 184 html_comment='no comments', html_comment_override=1, 185 robots='ALL', robots_override=1, 186 distribution='Global', distribution_override=1, 187 canonical=self.canonurl, canonical_override=1, 188 custommetatags=custom_metatags, custommetatags_override=1) 186 abs_path = "/%s" % my_doc.absolute_url(1) 187 self.form_data = {'seo_description': 'it is description', 'seo_keywords_override:int': 1, 'seo_custommetatags_override:int': 1, 188 'seo_robots_override:int': 1, 'seo_robots': 'ALL', 'seo_description_override:int': 1, 'seo_canonical_override:int': 1, 189 'seo_keywords:list': 'keyword1', 'seo_html_comment': 'no comments', 190 'seo_title_override:int': 1, 'seo_title': 'hello world', 'seo_html_comment_override:int': 1, 191 'seo_distribution_override:int': 1, 'seo_distribution': 'Global', 'seo_canonical': self.canonurl, 'form.submitted:int': 1} 192 st = '' 193 for d in custom_metatags: 194 st += '&seo_custommetatags.meta_name:records=%s&seo_custommetatags.meta_content:records=%s' % (d['meta_name'],d['meta_content']) 195 self.publish(path=abs_path+'/@@seo-context-properties', basic=self.basic_auth, request_method='POST', stdin=StringIO(urllib.urlencode(self.form_data)+st)) 196 #self.publish(abs_path+'/@@seo-context-properties?%s' % urllib.urlencode(self.form_data), self.basic_auth) 189 197 190 198 wf_tool = self.portal.portal_workflow 191 199 wf_tool.doActionFor(my_doc, 'publish') 192 200 193 abs_path = "/%s" % my_doc.absolute_url(1)194 201 self.abs_path = abs_path 195 202 self.my_doc = my_doc … … 222 229 223 230 def testKeywords(self): 224 m = re.match('.*<meta name="keywords" content=" my1|key2" />', self.html, re.S|re.M)225 if not m: 226 m = re.match('.*<meta content=" my1|key2" name="keywords" />', self.html, re.S|re.M)231 m = re.match('.*<meta name="keywords" content="keyword1" />', self.html, re.S|re.M) 232 if not m: 233 m = re.match('.*<meta content="keyword1" name="keywords" />', self.html, re.S|re.M) 227 234 self.assert_(m, 'Keywords not set in') 228 235 … … 281 288 self.sp.manage_changeProperties(**{'default_custom_metatags':'metatag1|global_metatag1value'}) 282 289 my_doc = self.my_doc 283 my_doc.qseo_properties_edit(custommetatags=custom_metatags, custommetatags_override=0) 290 self.form_data = {'seo_custommetatags': custom_metatags, 'seo_custommetatags_override:int': 0, 'form.submitted:int': 1} 291 self.publish(path=self.abs_path+'/@@seo-context-properties', basic=self.basic_auth, request_method='POST', stdin=StringIO(urllib.urlencode(self.form_data))) 284 292 html = self.publish(self.abs_path, self.basic_auth).getBody() 285 293 m = re.search('<meta name="metatag4" content="global_metatag4value" />' , html, re.S|re.M) … … 290 298 if not m: 291 299 m = re.search('<meta content="global_metatag1value" name="metatag1" />' , html, re.S|re.M) 292 self.assert_(m, "Global custom meta tag %s is prosent in the page." % 'metatag4')300 self.assert_(m, "Global custom meta tag %s not applied." % 'metatag1') 293 301 294 302 def testCanonical(self): … … 317 325 self.sp = self.portal.portal_properties.seo_properties 318 326 self.pu = self.portal.plone_utils 319 #self.portal.changeSkin('Plone Default')320 327 321 328 self.basic_auth = 'portal_manager:secret' … … 387 394 self.my_doc.manage_addProperty('qSEO_keywords', ('baz',), 'lines') 388 395 self.html = str(self.publish(self.portal.id+'/my_doc', self.basic_auth)) 389 m = re.match('.*<meta\ content="baz,\ foo,\ bar"\ name="keywords"\ />', self.html, re.S|re.M) 390 if not m: 391 m = re.match('.*<meta\ name="keywords"\ content="baz,\ foo,\ bar"\ />', self.html, re.S|re.M) 396 m = re.findall('.*(<meta\s+(?:content="(?:(?:baz|bar|foo),\s*(?:baz|foo|bar),\s*(?:baz|foo|bar)"\s*)|(?:name="keywords"\s*)){2}/>)', self.html, re.S|re.M) 392 397 self.assert_(m, "No 'foo, bar, baz' keyword find") 393 398 … … 399 404 self.sp = self.portal.portal_properties.site_properties 400 405 self.qi.installProduct(PRODUCT) 401 #self.portal.changeSkin('Plone Default')402 403 406 self.basic_auth = 'portal_manager:secret' 404 407 uf = self.app.acl_users … … 424 427 def test_exposeDCMetaTagsPropertyOff(self): 425 428 self.sp.manage_changeProperties(exposeDCMetaTags = False) 426 427 self.my_doc.qseo_properties_edit()428 429 self.html = str(self.publish(self.portal.id+'/my_doc', self.basic_auth)) 429 430 m1 = re.match('.*<meta\ name="DC.format"\ content=".*?"\ />', self.html, re.S|re.M) … … 438 439 def test_exposeDCMetaTagsPropertyOn(self): 439 440 self.sp.manage_changeProperties(exposeDCMetaTags = True) 440 self.my_doc.qseo_properties_edit()441 441 self.html = str(self.publish(self.portal.id+'/my_doc', self.basic_auth)) 442 442 m1 = re.match('.*<meta\ content=".*?"\ name="DC.format"\ />', self.html, re.S|re.M) … … 522 522 my_doc = self.portal['my_doc'] 523 523 regen = re.compile('<base\s+[^>]*href=\"([^\"]*)\"[^>]*>', re.S|re.M) 524 524 525 525 path = "/%s" % my_doc.absolute_url(1) 526 526 html = self.publish(path, self.basic_auth).getBody() 527 527 burls = regen.findall(html) 528 528 529 529 mydocurl = my_doc.absolute_url() 530 530 self.assert_(not [1 for burl in burls if not burl==mydocurl], … … 566 566 567 567 md_before = my_doc.modification_date 568 my_doc.qseo_properties_edit(title="New Title") 568 abs_path = "/%s" % my_doc.absolute_url(1) 569 form_data = {'seo_title': 'New Title', 'seo_title_override:int': 1, 'form.submitted:int': 1} 570 self.publish(path=abs_path+'/@@seo-context-properties', basic=self.basic_auth, request_method='POST', stdin=StringIO(urllib.urlencode(form_data))) 569 571 md_after = my_doc.modification_date 570 571 572 self.assertNotEqual(md_before, md_after) 572 573 573 574 574 575 TESTS = [TestBeforeInstall, 575 576 TestInstallation,
Note: See TracChangeset
for help on using the changeset viewer.