Changeset 2894 in products


Ignore:
Timestamp:
Oct 19, 2010 5:48:19 PM (14 years ago)
Author:
mylan
Message:

#233: Added tests for calculation keywords

File:
1 edited

Legend:

Unmodified
Added
Removed
  • quintagroup.seoptimizer/trunk/quintagroup/seoptimizer/tests/testUsageKeywords.py

    r2139 r2894  
    11from base import * 
     2import urllib2 
     3from zope.component import queryMultiAdapter 
     4from zope.interface import alsoProvides 
     5from quintagroup.seoptimizer.browser.interfaces import IPloneSEOLayer 
    26 
    37KWSTMPL = '.*(<meta\s+(?:(?:name="keywords"\s*)|(?:content="%s"\s*)){2}/>)' 
     
    5963 
    6064 
     65class TestCalcKeywords(FunctionalTestCase): 
     66 
     67    def afterSetUp(self): 
     68        self.loginAsPortalOwner() 
     69        self.seo = self.portal.portal_properties.seo_properties 
     70        #Preparation for functional testing 
     71        self.key = "SEO_KEYWORD " 
     72        self.portal.invokeFactory('Document', id='my_doc') 
     73        self.my_doc = getattr(self.portal, 'my_doc') 
     74        self.my_doc.setText(self.key * 2) 
     75        # Emulate JS request 
     76        self.app.REQUEST.set("text", self.key) 
     77        # Mark request with IPloneSEOLayer browser layer interface 
     78        alsoProvides(self.app.REQUEST, IPloneSEOLayer) 
     79        # Get checkSEOKeywords view 
     80        self.chckView = queryMultiAdapter((self.my_doc, self.app.REQUEST), 
     81            name="checkSEOKeywords") 
     82         
     83    def patchURLLib(self): 
     84        self.orig_urlopen = urllib2.urlopen 
     85        def patch_urlopen(*args, **kwargs): 
     86            if args[0] == self.my_doc.absolute_url(): 
     87                return unicode(self.my_doc() + self.key).encode("utf-8") 
     88            else: 
     89                return self.orig_urlopen(*args, **kwargs) 
     90        urllib2.urlopen = patch_urlopen 
     91     
     92    def unpatchURLLib(self): 
     93        urllib2.urlopen = self.orig_urlopen 
     94 
     95    def test_InternalPageRendering(self): 
     96        self.assertTrue(not self.seo.external_keywords_test) 
     97        self.assertTrue('2' in self.chckView()) 
     98 
     99    def test_ExternalPageRendering(self): 
     100        self.seo._updateProperty("external_keywords_test", True) 
     101        self.patchURLLib() 
     102        self.assertTrue(self.seo.external_keywords_test) 
     103        self.assertTrue('3' in self.chckView()) 
     104        self.unpatchURLLib() 
     105         
     106 
    61107def test_suite(): 
    62108    from unittest import TestSuite, makeSuite 
    63109    suite = TestSuite() 
    64110    suite.addTest(makeSuite(TestUsageKeywords)) 
     111    suite.addTest(makeSuite(TestCalcKeywords)) 
    65112    return suite 
     113 
Note: See TracChangeset for help on using the changeset viewer.