source: products/quintagroup.plonecaptchas/branches/plone4/quintagroup/plonecaptchas/tests/testInstallation.py @ 3160

Last change on this file since 3160 was 3160, checked in by vmaksymiv, 13 years ago

pep8fixes

File size: 3.9 KB
Line 
1import unittest
2from quintagroup.plonecaptchas.tests.base import TestCase, LAYERS
3
4from Products.CMFCore.utils import getToolByName
5
6from zope.interface import alsoProvides
7from zope.component import getSiteManager
8from zope.component import queryMultiAdapter
9from plone.browserlayer.interfaces import ILocalBrowserLayerType
10
11from quintagroup.plonecaptchas.interfaces import IQGPloneCaptchas
12from quintagroup.plonecaptchas.browser.register import CaptchaRegistrationForm
13from quintagroup.plonecaptchas.config import PRODUCT_NAME
14
15
16class TestInstallation(TestCase):
17
18    def afterSetUp(self):
19        self.loginAsPortalOwner()
20        self.skins = getToolByName(self.portal, 'portal_skins', None)
21
22    def testSkinInstall(self):
23        for skin in self.skins.getSkinSelections():
24            path = self.skins.getSkinPath(skin)
25            path = map(str.strip, path.split(','))
26            for layer in LAYERS:
27                self.assert_(layer.split('/')[0] in self.skins.objectIds(),
28                             '%s directory view not found in portal_skins '\
29                             'after installation' % layer)
30                self.assert_(layer in path,
31                             '%s layer not found in %s' % (PRODUCT_NAME, skin))
32
33    def testBrowserLayerRegistration(self):
34        # Test if IQGPloneCaptchas browser layer registered on installation
35        site = getSiteManager(self.portal)
36        registeredLayers = [r.name for r in site.registeredUtilities()
37                            if r.provided == ILocalBrowserLayerType]
38        self.assertEqual("quintagroup.plonecaptchas" in registeredLayers, True)
39
40    def testRegisterFormOverriden(self):
41        # Mark request with IQGPloneCaptchas browser layer interface
42        alsoProvides(self.portal.REQUEST, IQGPloneCaptchas)
43        register = queryMultiAdapter((self.portal, self.portal.REQUEST),
44                                     name="register")
45        self.assertEqual(isinstance(register, CaptchaRegistrationForm), True)
46
47
48class TestUninstallation(TestCase):
49
50    def afterSetUp(self):
51        self.loginAsPortalOwner()
52        self.skins = getToolByName(self.portal, 'portal_skins', None)
53        self.qi = getToolByName(self.portal, 'portal_quickinstaller', None)
54        self.qi.uninstallProducts([PRODUCT_NAME])
55
56    def testProductUninstalled(self):
57        self.assertNotEqual(self.qi.isProductInstalled(PRODUCT_NAME), True)
58
59    def testSkinUninstall(self):
60        for skin in self.skins.getSkinSelections():
61            path = self.skins.getSkinPath(skin)
62            path = map(str.strip, path.split(','))
63            for layer in LAYERS:
64                self.assertTrue(
65                        not layer.split('/')[0] in self.skins.objectIds(),
66                        '%s directory view found in portal_skins '\
67                        'after uninstallation' % layer)
68                self.assert_(not layer in path,
69                    '%s layer found in %s skin after uninstallation' % (layer,
70                                                                        skin))
71
72    def testBrowserLayerUnregistration(self):
73        # Test if IQGPloneCaptchas browser layer registered on installation
74        site = getSiteManager(self.portal)
75        registeredLayers = [r.name for r in site.registeredUtilities()
76                            if r.provided == ILocalBrowserLayerType]
77        self.assertNotEqual("quintagroup.plonecaptchas" in registeredLayers,
78                            True)
79
80    def testRegisterFormOverriden(self):
81        # Mark request with IQGPloneCaptchas browser layer interface
82        register = queryMultiAdapter((self.portal, self.portal.REQUEST),
83                                     name="register")
84        self.assertNotEqual(isinstance(register, CaptchaRegistrationForm),
85                            True)
86
87
88def test_suite():
89    suite = unittest.TestSuite()
90    suite.addTest(unittest.makeSuite(TestInstallation))
91    suite.addTest(unittest.makeSuite(TestUninstallation))
92    return suite
Note: See TracBrowser for help on using the repository browser.