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

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

#194: Remove AddUser? form related tests as needless any more

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