source: products/quintagroup.seoptimizer/branches/refactoring2.3.0/quintagroup/seoptimizer/tests/testUsageKeywords.py @ 1901

Last change on this file since 1901 was 1901, checked in by mylan, 14 years ago

#161: remove useless manager registration in tests

File size: 2.7 KB
Line 
1import urllib, re
2from Acquisition import aq_inner
3from base import *
4
5KWSTMPL = '.*(<meta\s+(?:(?:name="keywords"\s*)|(?:content="%s"\s*)){2}/>)'
6
7class TestUsageKeywords(FunctionalTestCase):
8
9    def afterSetUp(self):
10        self.sp = self.portal.portal_properties.seo_properties
11        self.pu = self.portal.plone_utils
12        self.basic_auth = ':'.join((portal_owner,default_password))
13        self.loginAsPortalOwner()
14        #Preparation for functional testing
15        self.my_doc = self.portal.invokeFactory('Document', id='my_doc')
16        self.my_doc = self.portal['my_doc']
17
18
19    def test_noDefaultKeywords(self):
20        """No keywords added for the content by default"""
21        metatags = self.pu.listMetaTags(self.my_doc)
22        self.assert_('keywords' not in metatags)
23       
24
25    def testrender_SEOKeywords(self):
26        """ """
27        self.my_doc.setText('<p>foo bar</p>')
28        self.my_doc.manage_addProperty('qSEO_keywords', [], 'lines')
29
30        for seokws in [('foo',), ('foo', 'bar')]:
31            self.my_doc._updateProperty('qSEO_keywords', seokws)
32            html = str(self.publish(self.portal.id+'/my_doc', self.basic_auth))
33            expect = ',\s*'.join(seokws)
34            open('/tmp/testrender_SEOKeywords','w').write(html)
35            self.assert_(re.match(KWSTMPL % expect, html, re.S|re.M),
36                         "No '%s' keyword found" % str(seokws))
37
38
39    def testbehave_NoSEOKeywordsOnlySubject(self):
40        self.my_doc.setText('<p>local subject</p>')
41        self.my_doc.setSubject('subject')
42        html = str(self.publish(self.portal.id+'/my_doc', self.basic_auth))
43
44        expect = "subject"
45        self.assert_(re.match(KWSTMPL % expect, html, re.S|re.M),
46                     "No '%s' keyword find" % expect)
47
48    def testbehave_SEOKeywordsOverrideSubject(self):
49        SEOKWS = ('local',)
50        self.my_doc.setText('<p>local subject</p>')
51        self.my_doc.setSubject('subject')
52        self.my_doc.manage_addProperty('qSEO_keywords', SEOKWS, 'lines')
53        html = str(self.publish(self.portal.id+'/my_doc', self.basic_auth))
54
55        expect = ',\s*'.join(SEOKWS)
56        self.assert_(re.match(KWSTMPL % expect, html, re.S|re.M),
57                     "No '%s' keywords find" % SEOKWS)
58
59    def testbehave_noSEOKeywordsNoSubject(self):
60        """Nor seo keywords not subject added"""
61        html = str(self.publish(self.portal.id+'/my_doc', self.basic_auth))
62        self.assertFalse(re.match('.*(<meta\s[^\>]*name="keywords"[^\>]*>)',
63                                  html, re.S|re.M), "'keyword' meta tag found")
64
65
66def test_suite():
67    from unittest import TestSuite, makeSuite
68    suite = TestSuite()
69    suite.addTest(makeSuite(TestUsageKeywords))
70    return suite
Note: See TracBrowser for help on using the repository browser.