source: products/quintagroup.seoptimizer/trunk/quintagroup/seoptimizer/tests/testCanonicalURL.py @ 1670

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

Added tests for canonical url

  • Property svn:eol-style set to native
File size: 2.2 KB
Line 
1import re
2from zope.component import queryAdapter
3from base import getToolByName, FunctionalTestCase, newSecurityManager
4from config import *
5
6class TestCanonicalURL(FunctionalTestCase):
7
8    def afterSetUp(self):
9        self.qi = self.portal.portal_quickinstaller
10        self.qi.installProduct(PROJECT_NAME)
11        #self.portal.changeSkin('Plone Default')
12
13        self.basic_auth = 'portal_manager:secret'
14        uf = self.app.acl_users
15        uf.userFolderAddUser('portal_manager', 'secret', ['Manager'], [])
16        user = uf.getUserById('portal_manager')
17        if not hasattr(user, 'aq_base'):
18            user = user.__of__(uf)
19        newSecurityManager(None, user)
20
21        self.portal.invokeFactory('Document', id='mydoc')
22        self.mydoc = self.portal['mydoc']
23        self.mydoc_path = "/%s" % self.mydoc.absolute_url(1)
24        self.curl = re.compile('<link\srel\s*=\s*"canonical"\s+[^>]*href\s*=\s*\"([^\"]*)\"[^>]*>', re.S|re.M)
25
26
27    def test_CanonicalURL(self):
28        html = self.publish(self.mydoc_path, self.basic_auth).getBody()
29        foundcurls = self.curl.findall(html)
30        mydoc_url = self.mydoc.absolute_url()
31
32        self.assert_([1 for curl in foundcurls if curl==mydoc_url],
33           "Wrong CANONICAL URL for document: %s, all must be: %s" % (foundcurls, mydoc_url))
34
35    def test_updateCanonicalURL(self):
36        mydoc_url_new = self.mydoc.absolute_url() + '.new'
37        # Update canonical url property
38        self.publish(self.mydoc_path + '/@@seo-context-properties?seo_canonical_override=checked' \
39                     '&seo_canonical=%s&form.submitted=1' % mydoc_url_new, self.basic_auth)
40        # Test updated canonical url
41        html = self.publish(self.mydoc_path, self.basic_auth).getBody()
42        foundcurls = self.curl.findall(html)
43
44        self.assert_(self.mydoc.getProperty('qSEO_canonical','') == mydoc_url_new,
45                     "Not set 'qSEO_canonical' property")
46        self.assert_([1 for curl in foundcurls if curl==mydoc_url_new],
47           "Wrong CANONICAL URL for document: %s, all must be: %s" % (foundcurls, mydoc_url_new))
48
49
50def test_suite():
51    from unittest import TestSuite, makeSuite
52    suite = TestSuite()
53    suite.addTest(makeSuite(TestCanonicalURL))
54    return suite
Note: See TracBrowser for help on using the repository browser.