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

Last change on this file since 1958 was 1958, checked in by liebster, 14 years ago

Clean-up code http://codereview.corp.quintagroup.com/40241/show

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