source: products/quintagroup.seoptimizer/trunk/quintagroup/seoptimizer/tests/testBugs.py @ 2205

Last change on this file since 2205 was 2205, checked in by crchemist, 14 years ago

fix http://plone.org/products/plone-seo/issues/20 and write test for it

File size: 2.3 KB
Line 
1import urllib
2from cStringIO import StringIO
3
4from zope.component import getMultiAdapter
5from zope.component import providedBy
6from zope.interface import directlyProvides
7from zope.viewlet.interfaces import IViewlet, IViewletManager
8from zope.publisher.browser import TestRequest
9
10from quintagroup.seoptimizer.browser.interfaces import IPloneSEOLayer
11from base import *
12
13
14class TestBugs(FunctionalTestCase):
15
16    def afterSetUp(self):
17        self.basic_auth = ':'.join((portal_owner,default_password))
18        self.loginAsPortalOwner()
19        # prepare test document
20        my_doc = self.portal.invokeFactory('Document', id='my_doc')
21        self.my_doc = self.portal['my_doc']
22        self.abs_path = "/%s" % self.my_doc.absolute_url(1)
23
24    def test_modification_date(self):
25        """ Modification date changing on SEO properties edit """
26        form_data = {'seo_title': 'New Title',
27                     'seo_title_override:int': 1,
28                     'form.submitted:int': 1}
29
30        md_before = self.my_doc.modification_date
31        self.publish(path=self.abs_path+'/@@seo-context-properties',
32                     basic=self.basic_auth, request_method='POST',
33                     stdin=StringIO(urllib.urlencode(form_data)))
34        md_after = self.my_doc.modification_date
35
36        self.assertNotEqual(md_before, md_after)
37
38    def test_bug_20_at_plone_org(self):
39        portal = self.portal
40        fp = portal['front-page']
41        request = portal.REQUEST
42        view = portal.restrictedTraverse('@@plone')
43
44        manager = getMultiAdapter((fp, request, view), IViewletManager,
45                        name=u'plone.htmlhead')
46        viewlet = getMultiAdapter((fp, request, view, manager), IViewlet,
47                        name=u'plone.htmlhead.title')
48        viewlet.update()
49        old_title = viewlet.render()
50
51        # add IPloneSEOLayer
52        directlyProvides(request, IPloneSEOLayer)
53
54        viewlet = getMultiAdapter((fp, request, view, manager), IViewlet,
55                        name=u'plone.htmlhead.title')
56        viewlet.update()
57        new_title = viewlet.render()
58
59        self.assertEqual(old_title, new_title)
60
61
62
63def test_suite():
64    from unittest import TestSuite, makeSuite
65    suite = TestSuite()
66    suite.addTest(makeSuite(TestBugs))
67    return suite
Note: See TracBrowser for help on using the repository browser.