Exemplo n.º 1
0
    def test_purge_no_config(self):
        request = FauxRequest()
        alsoProvides(request, IAttributeAnnotatable)

        IAnnotations(request)["plone.cachepurging.urls"] = set(["/foo", "/bar"])

        registry = Registry()
        registry.registerInterface(ICachePurgingSettings)
        provideUtility(registry, IRegistry)
        settings = registry.forInterface(ICachePurgingSettings)
        settings.enabled = True

        class FauxPurger(object):
            implements(IPurger)

            def __init__(self):
                self.purged = []

            def purgeAsync(self, url, httpVerb="PURGE"):
                self.purged.append(url)

        purger = FauxPurger()
        provideUtility(purger)

        notify(PubSuccess(request))

        self.assertEquals([], purger.purged)
class ControlPanelTestCase(unittest.TestCase):

    layer = INTEGRATION_TESTING

    def setUp(self):
        self.portal = self.layer['portal']
        setRoles(self.portal, TEST_USER_ID, ['Manager'])
        self.registry = Registry()
        self.registry.registerInterface(INewsFlashSettings)

    def test_controlpanel_view(self):
        view = getMultiAdapter((self.portal, self.portal.REQUEST),
                               name='newsflash-settings')
        view = view.__of__(self.portal)
        self.assertTrue(view())

    def test_controlpanel_view_is_protected(self):
        from AccessControl import Unauthorized
        logout()
        self.assertRaises(Unauthorized,
                          self.portal.restrictedTraverse,
                          '@@newsflash-settings')

    def test_action_in_controlpanel(self):
        cp = api.portal.get_tool('portal_controlpanel')
        actions = [a.getAction(self)['id'] for a in cp.listActions()]
        self.assertIn('newsflash', actions)
class RegistryTest(unittest.TestCase):

    layer = Routes_INTEGRATION_TESTING

    def setUp(self):
        self.portal = self.layer["portal"]
        setRoles(self.portal, TEST_USER_ID, ["Manager"])
        # set up settings registry
        self.registry = Registry()
        self.registry.registerInterface(IRoutesSettings)

    def test_controlpanel_view(self):
        view = getMultiAdapter((self.portal, self.portal.REQUEST), name="routes-settings")
        view = view.__of__(self.portal)
        self.failUnless(view())

    def test_controlpanel_view_is_protected(self):
        from AccessControl import Unauthorized

        logout()
        self.assertRaises(Unauthorized, self.portal.restrictedTraverse, "@@routes-settings")

    def test_action_in_controlpanel(self):
        cp = getToolByName(self.portal, "portal_controlpanel")
        actions = [a.getAction(self)["id"] for a in cp.listActions()]
        self.failUnless("routes" in actions)

    def test_routes_record(self):
        record_routes = self.registry.records[BASE_REGISTRY % "routes"]
        self.failUnless("routes" in IRoutesSettings)
        self.assertEquals(record_routes.value, set([]))
class TestSettings(unittest.TestCase):

    layer = COLLECTIVE_MOBIFYJS_INTEGRATION_TESTING

    def setUp(self):
        self.portal = self.layer['portal']
        self.registry = Registry()
        self.registry.registerInterface(ISettings)

    def test_setup(self):
        pq = getToolByName(self.portal, 'portal_quickinstaller')
        self.assertTrue(pq.isProductInstalled('collective.mobifyjs'))

    def test_registry(self):
        settings = self.registry.forInterface(ISettings)

        self.assertEquals(settings.mobify_library_url, RESIZE_URL)
        self.assertEquals(settings.mobify_resize_backend, None)

    def test_controlpanel_view(self):
        view = getMultiAdapter((self.portal, self.portal.REQUEST),
                               name="collective.mobifyjs-settings")

        self.assertEqual(view.__class__, SettingsView)
        self.failUnless(view())
class RegistryTest(unittest.TestCase):

    layer = GENWEBCONTROLPANEL_INTEGRATION_TESTING

    def setUp(self):
        self.portal = self.layer['portal']
        setRoles(self.portal, TEST_USER_ID, ['Manager'])
        self.registry = Registry()
        self.registry.registerInterface(IGenwebControlPanelSettings)

    def test_registry_registered(self):
        registry = queryUtility(IRegistry)
        self.assertTrue(registry.forInterface(IGenwebControlPanelSettings))

    def test_discussion_controlpanel_view(self):
        view = getMultiAdapter((self.portal, self.portal.REQUEST),
                               name="genweb-controlpanel")
        view = view.__of__(self.portal)
        self.assertTrue(view())

    def test_discussion_in_controlpanel(self):
        # Check if discussion is in the control panel
        self.controlpanel = getToolByName(self.portal, "portal_controlpanel")
        self.assertTrue('genweb' in [a.getAction(self)['id']
                            for a in self.controlpanel.listActions()])

    def test_unicode_values(self):
        registry = queryUtility(IRegistry)
        genweb_settings = registry.forInterface(IGenwebControlPanelSettings)
        genweb_settings.html_title_ca = u"àéçÀÉ"
        self.assertEqual(genweb_settings.html_title_ca, u"àéçÀÉ")
Exemplo n.º 6
0
    def test_request_not_annotatable(self):
        context = FauxContext()

        request = FauxRequest()
        setRequest(request)

        registry = Registry()
        registry.registerInterface(ICachePurgingSettings)
        provideUtility(registry, IRegistry)

        settings = registry.forInterface(ICachePurgingSettings)
        settings.enabled = True
        settings.cachingProxies = ('http://localhost:1234',)

        @implementer(IPurgePaths)
        @adapter(FauxContext)
        class FauxPurgePaths(object):

            def __init__(self, context):
                self.context = context

            def getRelativePaths(self):
                return ['/foo', '/bar']

            def getAbsolutePaths(self):
                return []

        provideAdapter(FauxPurgePaths, name="test1")

        try:
            notify(Purge(context))
        except:
            self.fail()
Exemplo n.º 7
0
class TestMonkeySettingsControlPanel(unittest.TestCase):

    layer = REDTURTLE_MONKEY_INTEGRATION_TESTING

    def setUp(self):
        self.portal = self.layer['portal']
        self.request = self.layer['request']
        self.registry = Registry()
        self.registry.registerInterface(IMonkeySettings)

    def test_monkey_controlpanel_view(self):
        view = getMultiAdapter((self.portal, self.portal.REQUEST),
                               name="monkey-settings")
        view = view.__of__(self.portal)
        self.failUnless(view())

    def test_monkey_controlpanel_view_protected(self):
        from AccessControl import Unauthorized
        logout()
        self.assertRaises(Unauthorized, self.portal.restrictedTraverse,
                          '@@monkey-settings')

    def test_monkey_in_controlpanel(self):
        self.controlpanel = getToolByName(self.portal, "portal_controlpanel")
        self.failUnless(
            'monkey' in
            [a.getAction(self)['id'] for a in self.controlpanel.listActions()])

    def test_record_api_key(self):
        record = self.registry.records[
            'redturtle.monkey.interfaces.IMonkeySettings.api_key']
        self.failUnless('api_key' in IMonkeySettings)
        self.assertEquals(record.value, u"")
Exemplo n.º 8
0
class TestMLSControlPanel(unittest.TestCase):
    """Control Panel Test Case for plone.mls.core."""
    layer = PLONE_MLS_CORE_INTEGRATION_TESTING

    def setUp(self):
        """Additional test setup."""
        self.portal = self.layer['portal']
        alsoProvides(self.portal.REQUEST, IMLSSpecific)
        setRoles(self.portal, TEST_USER_ID, ['Manager'])
        self.registry = Registry()
        self.registry.registerInterface(IMLSSettings)

    def test_mls_controlpanel_view(self):
        """Test that the MLS configuration view is available."""
        view = getMultiAdapter((self.portal, self.portal.REQUEST),
                               name='mls-controlpanel')
        view = view.__of__(self.portal)
        self.assertTrue(view())

    def test_mls_controlpanel_view_protected(self):
        """Test that the MLS configuration view needs authentication."""
        from AccessControl import Unauthorized
        logout()
        self.assertRaises(Unauthorized, self.portal.restrictedTraverse,
                          '@@mls-controlpanel')

    def test_mls_in_controlpanel(self):
        """Check that there is an MLS entry in the control panel."""
        controlpanel = api.portal.get_tool(name='portal_controlpanel')
        actions = [
            a.getAction(self)['id'] for a in controlpanel.listActions()
        ]
        self.assertTrue('propertyshelf_mls' in actions)
Exemplo n.º 9
0
class ControlPanelTestCase(BaseTestCase):
    def afterSetUp(self):
        # Set up the iservices.controlpanel settings registry
        self.loginAsPortalOwner()
        self.registry = Registry()
        self.registry.registerInterface(ISettingsSchema)

    def test_iservices_controlpanel_view(self):
        # Test the iservices setting control panel view
        view = getMultiAdapter((self.portal, self.portal.REQUEST),
                            name="iservices-controlpanel")
        view = view.__of__(self.portal)
        self.failUnless(view())

    def test_controlpanel_view_protected(self):
        from AccessControl import Unauthorized
        self.logout()
        self.assertRaises(Unauthorized,
                        self.portal.restrictedTraverse,
                        '@@iservices-controlpanel')

    def test_controlpanel_keys(self):
        # Test that all the keys declared in the Interface are avilable
        for key_name in ISettingsSchema.names():
            rkey_name = self.registry.records[
                'iservices.controlpanel.interfaces.ISettingsSchema.%s'%key_name]
            self.assertEquals(rkey_name.value, ISettingsSchema[key_name].default)
class TestAuthomaticSettingsControlPanel(unittest.TestCase):

    layer = PAS_PLUGINS_Authomatic_PLONE_INTEGRATION_TESTING

    def setUp(self):
        self.portal = self.layer['portal']
        self.request = self.layer['request']
        self.registry = Registry()
        self.registry.registerInterface(IPasPluginsAuthomaticSettings)

    def test_authomatic_controlpanel_view(self):
        view = getMultiAdapter((self.portal, self.portal.REQUEST),
                               name="authomatic-controlpanel")
        view = view.__of__(self.portal)
        self.assertTrue(view())

    def test_authomatic_controlpanel_view_protected(self):
        from AccessControl import Unauthorized
        logout()
        self.assertRaises(Unauthorized, self.portal.restrictedTraverse,
                          '@@authomatic-controlpanel')

    def test_authomatic_in_controlpanel(self):
        self.controlpanel = getToolByName(self.portal, "portal_controlpanel")
        self.assertTrue(
            'authomatic' in
            [a.getAction(self)['id'] for a in self.controlpanel.listActions()])

    def test_record_config_property(self):
        record = self.registry.records[
            'pas.plugins.authomatic.interfaces.' +
            'IPasPluginsAuthomaticSettings.json_config']
        self.assertTrue('json_config' in IPasPluginsAuthomaticSettings)
        self.assertGreater(len(record.value), 20)
Exemplo n.º 11
0
    def test_no_paths(self):
        request = FauxRequest()
        alsoProvides(request, IAttributeAnnotatable)

        IAnnotations(request)['plone.cachepurging.urls'] = set()

        registry = Registry()
        registry.registerInterface(ICachePurgingSettings)
        provideUtility(registry, IRegistry)

        settings = registry.forInterface(ICachePurgingSettings)
        settings.enabled = True
        settings.cachingProxies = ('http://localhost:1234',)

        @implementer(IPurger)
        class FauxPurger(object):

            def __init__(self):
                self.purged = []

            def purgeAsync(self, url, httpVerb='PURGE'):
                self.purged.append(url)

        purger = FauxPurger()
        provideUtility(purger)

        notify(PubSuccess(request))

        self.assertEqual([], purger.purged)
Exemplo n.º 12
0
    def test_caching_disabled(self):
        request = FauxRequest()
        alsoProvides(request, IAttributeAnnotatable)

        IAnnotations(request)["plone.cachepurging.urls"] = set(
            ["/foo", "/bar"]
        )

        registry = Registry()
        registry.registerInterface(ICachePurgingSettings)
        provideUtility(registry, IRegistry)

        settings = registry.forInterface(ICachePurgingSettings)
        settings.enabled = False
        settings.cachingProxies = ("http://localhost:1234",)

        @implementer(IPurger)
        class FauxPurger(object):
            def __init__(self):
                self.purged = []

            def purgeAsync(self, url, httpVerb="PURGE"):
                self.purged.append(url)

        purger = FauxPurger()
        provideUtility(purger)

        notify(PubSuccess(request))

        self.assertEqual([], purger.purged)
class TestToolkitControlPanel(unittest.TestCase):
    """Control Panel Test Case for theming.toolkit.core."""
    layer = THEMING_TOOLKIT_CORE_INTEGRATION_TESTING

    def setUp(self):
        """Additional test setup."""
        self.portal = self.layer['portal']
        directlyProvides(self.portal.REQUEST, IThemingToolkitCore)
        setRoles(self.portal, TEST_USER_ID, ['Manager'])
        self.registry = Registry()
        self.registry.registerInterface(IToolkitSettings)

    def test_toolkit_controlpanel_view(self):
        """Test that the toolkit configuration view is available."""
        view = getMultiAdapter((self.portal, self.portal.REQUEST),
                               name='toolkit-controlpanel')
        view = view.__of__(self.portal)
        self.assertTrue(view())

    def test_toolkit_controlpanel_view_protected(self):
        """Test that the toolkit configuration view needs authentication."""
        from AccessControl import Unauthorized
        logout()
        self.assertRaises(Unauthorized, self.portal.restrictedTraverse,
                          '@@toolkit-controlpanel')

    def test_toolkit_in_controlpanel(self):
        """Check that there is an toolkit entry in the control panel."""
        self.controlpanel = getToolByName(self.portal, 'portal_controlpanel')
        self.assertTrue('propertyshelf_toolkit' in [a.getAction(self)['id']
            for a in self.controlpanel.listActions()])
Exemplo n.º 14
0
class TestControlpanel(base.BaseTestCase):
    """ """
    def afterSetUp(self):
        self.loginAsPortalOwner()
        self.registry = Registry()
        self.registry.registerInterface(ISocialPublishControlPanel)
        qi = self.portal.portal_quickinstaller
        qi.installProduct('collective.socialpublish')

    def test_controlpanel_view(self):
        view = getMultiAdapter((self.portal, self.portal.REQUEST),
                               name="socialpublish-settings")
        view = view.__of__(self.portal)
        self.failUnless(view())

    def test_controlpanel_view_protected(self):
        from AccessControl import Unauthorized
        self.logout()
        self.assertRaises(Unauthorized,
                          self.portal.restrictedTraverse,
                          '@@socialpublish-settings')

    def test_in_controlpanel(self):
        self.controlpanel = getToolByName(self.portal, "portal_controlpanel")
        self.failUnless('socialpublish_settings' in [a.getAction(self)['id']
                                      for a in self.controlpanel.listActions()])

    def test_record_content_types(self):
        record_content_types = self.registry.records[
            'collective.socialpublish.controlpanel.interfaces.ISocialPublishControlPanel.content_types']
        self.failUnless('content_types' in ISocialPublishControlPanel)
        self.assertEquals(record_content_types.value, set())
Exemplo n.º 15
0
class TestMLSContactInfoControlPanel(unittest.TestCase):
    """Validate contact info control panel is available."""
    layer = INTEGRATION_TESTING

    def setUp(self):
        """Additional test setup."""
        self.portal = self.layer['portal']
        alsoProvides(self.portal.REQUEST, IPloneMLSLayer)
        setRoles(self.portal, TEST_USER_ID, ['Manager'])
        self.registry = Registry()
        self.registry.registerInterface(IMLSContactInfoSettings)

    def test_controlpanel_view(self):
        """Validate that the configuration view is available."""
        view = getMultiAdapter(
            (self.portal, self.portal.REQUEST),
            name='mls-controlpanel-contact-info',
        )
        view = view.__of__(self.portal)
        self.assertTrue(view())

    def test_controlpanel_view_protected(self):
        """Validate that the configuration view needs authentication."""
        from AccessControl import Unauthorized
        logout()
        self.assertRaises(
            Unauthorized,
            self.portal.restrictedTraverse,
            '@@mls-controlpanel-contact-info',
        )
Exemplo n.º 16
0
class ControlPanelTestCase(BaseTestCase):
    def afterSetUp(self):
        # Set up the iservices.controlpanel settings registry
        self.loginAsPortalOwner()
        self.registry = Registry()
        self.registry.registerInterface(ISettingsSchema)

    def test_iservices_controlpanel_view(self):
        # Test the iservices setting control panel view
        view = getMultiAdapter((self.portal, self.portal.REQUEST),
                               name="iservices-controlpanel")
        view = view.__of__(self.portal)
        self.failUnless(view())

    def test_controlpanel_view_protected(self):
        from AccessControl import Unauthorized
        self.logout()
        self.assertRaises(Unauthorized, self.portal.restrictedTraverse,
                          '@@iservices-controlpanel')

    def test_controlpanel_keys(self):
        # Test that all the keys declared in the Interface are avilable
        for key_name in ISettingsSchema.names():
            rkey_name = self.registry.records[
                'iservices.controlpanel.interfaces.ISettingsSchema.%s' %
                key_name]
            self.assertEquals(rkey_name.value,
                              ISettingsSchema[key_name].default)
Exemplo n.º 17
0
class RegistryTest(ZeroCMSTestCase):


    def afterSetUp(self):
        # Set up the zerocms settings registry
        self.loginAsPortalOwner()
        self.registry = Registry()
        self.registry.registerInterface(IZeroCMSSettings)

    def test_zerocms_controlpanel_view(self):
        view = getMultiAdapter((self.portal, self.portal.REQUEST), 
                               name="zerocms-settings")
        view = view.__of__(self.portal)
        self.failUnless(view())

    def test_zerocms_controlpanel_view_protected(self):
        from AccessControl import Unauthorized
        self.logout()
        self.assertRaises(Unauthorized,
                          self.portal.restrictedTraverse,
                         '@@zerocms-settings')

    def test_record_zerocms_key(self):
        # Test that the zerocms_key record is in the control panel
        record_post_url = self.registry.records[
            'Products.zerocms.interfaces.IZeroCMSSettings.post_url']
        self.failUnless('post_url' in IZeroCMSSettings)
        self.assertEquals(record_post_url.value, u"http://localhost/ZeroCMS/api/document/add")

    def test_record_instance_url(self):
        record_instance_url = self.registry.records[
            'Products.zerocms.interfaces.IZeroCMSSettings.instance_url']        
        self.failUnless('instance_url' in IZeroCMSSettings)
        self.assertEquals(record_instance_url.value, u"http://localhost:8080/zerorally")
Exemplo n.º 18
0
    def test_no_request(self):
        context = FauxContext()

        registry = Registry()
        registry.registerInterface(ICachePurgingSettings)
        provideUtility(registry, IRegistry)

        settings = registry.forInterface(ICachePurgingSettings)
        settings.enabled = True
        settings.cachingProxies = ("http://localhost:1234", )

        @implementer(IPurgePaths)
        @adapter(FauxContext)
        class FauxPurgePaths(object):
            def __init__(self, context):
                self.context = context

            def getRelativePaths(self):
                return ["/foo", "/bar"]

            def getAbsolutePaths(self):
                return []

        provideAdapter(FauxPurgePaths, name="test1")

        try:
            notify(Purge(context))
        except:
            self.fail()
Exemplo n.º 19
0
    def test_purge(self):
        request = FauxRequest()
        alsoProvides(request, IAttributeAnnotatable)

        IAnnotations(request)["plone.cachepurging.urls"] = set(
            ["/foo", "/bar"])

        registry = Registry()
        registry.registerInterface(ICachePurgingSettings)
        provideUtility(registry, IRegistry)

        settings = registry.forInterface(ICachePurgingSettings)
        settings.enabled = True
        settings.cachingProxies = ("http://localhost:1234", )

        @implementer(IPurger)
        class FauxPurger(object):
            def __init__(self):
                self.purged = []

            def purgeAsync(self, url, httpVerb="PURGE"):
                self.purged.append(url)

        purger = FauxPurger()
        provideUtility(purger)

        notify(PubSuccess(request))
        self.assertSetEqual(
            {"http://localhost:1234/foo", "http://localhost:1234/bar"},
            set(purger.purged),
        )
Exemplo n.º 20
0
    def test_purge(self):
        request = FauxRequest()
        alsoProvides(request, IAttributeAnnotatable)

        IAnnotations(request)['plone.cachepurging.urls'] = set(
            ['/foo', '/bar'])

        registry = Registry()
        registry.registerInterface(ICachePurgingSettings)
        provideUtility(registry, IRegistry)

        settings = registry.forInterface(ICachePurgingSettings)
        settings.enabled = True
        settings.cachingProxies = ('http://localhost:1234',)

        @implementer(IPurger)
        class FauxPurger(object):

            def __init__(self):
                self.purged = []

            def purgeAsync(self, url, httpVerb='PURGE'):
                self.purged.append(url)

        purger = FauxPurger()
        provideUtility(purger)

        notify(PubSuccess(request))

        self.assertEqual(
            ['http://localhost:1234/foo', 'http://localhost:1234/bar'],
            purger.purged
        )
Exemplo n.º 21
0
    def test_request_not_annotatable(self):
        request = FauxRequest()

        registry = Registry()
        registry.registerInterface(ICachePurgingSettings)
        provideUtility(registry, IRegistry)

        settings = registry.forInterface(ICachePurgingSettings)
        settings.enabled = True
        settings.cachingProxies = ('http://localhost:1234', )

        class FauxPurger(object):
            implements(IPurger)

            def __init__(self):
                self.purged = []

            def purgeAsync(self, url, httpVerb='PURGE'):
                self.purged.append(url)

        purger = FauxPurger()
        provideUtility(purger)

        notify(PubSuccess(request))

        self.assertEqual([], purger.purged)
Exemplo n.º 22
0
    def test_malformed_virtual_url_parts(self):
        registry = Registry()
        provideUtility(registry, IRegistry)
        registry.registerInterface(ICachePurgingSettings)
        settings = registry.forInterface(ICachePurgingSettings)
        settings.virtualHosting = True

        self._prepareVHMRequest("/foo")

        self.request["VIRTUAL_URL_PARTS"] = ("foo", )
        self.assertEqual(["/foo"], self.rewriter("/foo"))

        self.request["VIRTUAL_URL_PARTS"] = ()
        self.assertEqual(["/foo"], self.rewriter("/foo"))

        self.request["VIRTUAL_URL_PARTS"] = (
            "http://example.com",
            "",
            "/foo",
            "x",
        )
        self.assertEqual(["/foo"], self.rewriter("/foo"))

        self.request["VIRTUAL_URL_PARTS"] = "foo"
        self.assertEqual(["/foo"], self.rewriter("/foo"))
Exemplo n.º 23
0
    def test_request_not_annotatable(self):
        context = FauxContext()

        request = FauxRequest()
        setRequest(request)

        registry = Registry()
        registry.registerInterface(ICachePurgingSettings)
        provideUtility(registry, IRegistry)

        settings = registry.forInterface(ICachePurgingSettings)
        settings.enabled = True
        settings.cachingProxies = ('http://localhost:1234', )

        class FauxPurgePaths(object):
            implements(IPurgePaths)
            adapts(FauxContext)

            def __init__(self, context):
                self.context = context

            def getRelativePaths(self):
                return ['/foo', '/bar']

            def getAbsolutePaths(self):
                return []

        provideAdapter(FauxPurgePaths, name="test1")

        try:
            notify(Purge(context))
        except:
            self.fail()
Exemplo n.º 24
0
    def test_request_not_annotatable(self):
        request = FauxRequest()

        registry = Registry()
        registry.registerInterface(ICachePurgingSettings)
        provideUtility(registry, IRegistry)

        settings = registry.forInterface(ICachePurgingSettings)
        settings.enabled = True
        settings.cachingProxies = ('http://localhost:1234',)

        @implementer(IPurger)
        class FauxPurger(object):

            def __init__(self):
                self.purged = []

            def purgeAsync(self, url, httpVerb='PURGE'):
                self.purged.append(url)

        purger = FauxPurger()
        provideUtility(purger)

        notify(PubSuccess(request))

        self.assertEqual([], purger.purged)
Exemplo n.º 25
0
class TestMLSControlPanel(unittest.TestCase):
    """Control Panel Test Case for plone.mls.core."""
    layer = PLONE_MLS_CORE_INTEGRATION_TESTING

    def setUp(self):
        """Additional test setup."""
        self.portal = self.layer['portal']
        alsoProvides(self.portal.REQUEST, IMLSSpecific)
        setRoles(self.portal, TEST_USER_ID, ['Manager'])
        self.registry = Registry()
        self.registry.registerInterface(IMLSSettings)

    def test_mls_controlpanel_view(self):
        """Test that the MLS configuration view is available."""
        view = getMultiAdapter((self.portal, self.portal.REQUEST),
                               name='mls-controlpanel')
        view = view.__of__(self.portal)
        self.assertTrue(view())

    def test_mls_controlpanel_view_protected(self):
        """Test that the MLS configuration view needs authentication."""
        from AccessControl import Unauthorized
        logout()
        self.assertRaises(Unauthorized, self.portal.restrictedTraverse,
                          '@@mls-controlpanel')
Exemplo n.º 26
0
class TestQueuePurge(unittest.TestCase):

    def setUp(self):
        provideAdapter(persistentFieldAdapter)
        self.registry = Registry()
        self.registry.registerInterface(ICachePurgingSettings)
        provideUtility(self.registry, IRegistry)

        self.settings = self.registry.forInterface(ICachePurgingSettings)
        self.settings.enabled = True
        self.settings.cachingProxies = ('http://localhost:1234',)

        self.handler = Handler()
        provideHandler(self.handler.handler)

    def tearDown(self):
        zope.component.testing.tearDown()

    def test_disabled(self):
        self.settings.enabled = False

        view = QueuePurge(FauxContext(), FauxRequest())
        self.assertEqual('Caching not enabled', view())
        self.assertEqual([], self.handler.invocations)

    def test_enabled(self):
        self.settings.enabled = True

        context = FauxContext()
        view = QueuePurge(context, FauxRequest)
        self.assertEqual('Queued', view())
        self.assertEqual(1, len(self.handler.invocations))
        self.assertTrue(self.handler.invocations[0].object is context)
Exemplo n.º 27
0
    def test_enabled(self):
        context = FauxContext()

        request = FauxRequest()
        alsoProvides(request, IAttributeAnnotatable)
        setRequest(request)

        registry = Registry()
        registry.registerInterface(ICachePurgingSettings)
        provideUtility(registry, IRegistry)

        settings = registry.forInterface(ICachePurgingSettings)
        settings.enabled = True
        settings.cachingProxies = ('http://localhost:1234',)

        @implementer(IPurgePaths)
        @adapter(FauxContext)
        class FauxPurgePaths(object):

            def __init__(self, context):
                self.context = context

            def getRelativePaths(self):
                return ['/foo', '/bar']

            def getAbsolutePaths(self):
                return []

        provideAdapter(FauxPurgePaths, name="test1")

        notify(Purge(context))

        self.assertEqual({'plone.cachepurging.urls': set(['/foo', '/bar'])},
                         dict(IAnnotations(request)))
Exemplo n.º 28
0
class TestQueuePurge(unittest.TestCase):
    def setUp(self):
        provideAdapter(persistentFieldAdapter)
        self.registry = Registry()
        self.registry.registerInterface(ICachePurgingSettings)
        provideUtility(self.registry, IRegistry)

        self.settings = self.registry.forInterface(ICachePurgingSettings)
        self.settings.enabled = True
        self.settings.cachingProxies = ('http://localhost:1234', )

        self.handler = Handler()
        provideHandler(self.handler.handler)

    def tearDown(self):
        zope.component.testing.tearDown()

    def test_disabled(self):
        self.settings.enabled = False

        view = QueuePurge(FauxContext(), FauxRequest())
        self.assertEqual('Caching not enabled', view())
        self.assertEqual([], self.handler.invocations)

    def test_enabled(self):
        self.settings.enabled = True

        context = FauxContext()
        view = QueuePurge(context, FauxRequest)
        self.assertEqual('Queued', view())
        self.assertEqual(1, len(self.handler.invocations))
        self.assertTrue(self.handler.invocations[0].object is context)
Exemplo n.º 29
0
    def test_enabled(self):
        registry = Registry()
        registry.registerInterface(ICachePurgingSettings)
        provideUtility(registry, IRegistry)

        settings = registry.forInterface(ICachePurgingSettings)
        settings.enabled = True
        self.assertEqual(True, utils.isCachePurgingEnabled())
Exemplo n.º 30
0
    def test_passed_registry(self):
        registry = Registry()
        registry.registerInterface(ICachePurgingSettings)
        settings = registry.forInterface(ICachePurgingSettings)
        settings.enabled = True

        self.assertEqual(False, utils.isCachePurgingEnabled())
        self.assertEqual(True, utils.isCachePurgingEnabled(registry))
Exemplo n.º 31
0
    def test_enabled(self):
        registry = Registry()
        registry.registerInterface(ICachePurgingSettings)
        provideUtility(registry, IRegistry)

        settings = registry.forInterface(ICachePurgingSettings)
        settings.enabled = True
        self.assertEqual(True, utils.isCachePurgingEnabled())
Exemplo n.º 32
0
    def test_passed_registry(self):
        registry = Registry()
        registry.registerInterface(ICachePurgingSettings)
        settings = registry.forInterface(ICachePurgingSettings)
        settings.enabled = True

        self.assertEqual(False, utils.isCachePurgingEnabled())
        self.assertEqual(True, utils.isCachePurgingEnabled(registry))
Exemplo n.º 33
0
    def test_passed_registry(self):
        registry = Registry()
        registry.registerInterface(ICachePurgingSettings)
        settings = registry.forInterface(ICachePurgingSettings)
        settings.enabled = True
        settings.cachingProxies = ('http://localhost:1234',)

        self.assertEqual(False, utils.isCachePurgingEnabled())
        self.assertEqual(True, utils.isCachePurgingEnabled(registry))
Exemplo n.º 34
0
    def test_passed_registry(self):
        registry = Registry()
        registry.registerInterface(ICachePurgingSettings)
        settings = registry.forInterface(ICachePurgingSettings)
        settings.enabled = True
        settings.cachingProxies = ('http://localhost:1234', )

        self.assertEqual(False, utils.isCachePurgingEnabled())
        self.assertEqual(True, utils.isCachePurgingEnabled(registry))
Exemplo n.º 35
0
 def test_enabled(self):
     registry = Registry()
     registry.registerInterface(ICachePurgingSettings)
     provideUtility(registry, IRegistry)
     
     settings = registry.forInterface(ICachePurgingSettings)
     settings.enabled = True
     settings.cachingProxies = ('http://localhost:1234',)
     self.assertEquals(True, utils.isCachePurgingEnabled())
Exemplo n.º 36
0
    def test_empty_request(self):
        registry = Registry()
        provideUtility(registry, IRegistry)
        registry.registerInterface(ICachePurgingSettings)
        settings = registry.forInterface(ICachePurgingSettings)
        settings.virtualHosting = True

        self.request.clear()
        self.assertEqual(['/foo'], self.rewriter('/foo'))
Exemplo n.º 37
0
    def test_virtual_hosting_disabled(self):
        registry = Registry()
        provideUtility(registry, IRegistry)
        registry.registerInterface(ICachePurgingSettings)
        settings = registry.forInterface(ICachePurgingSettings)
        settings.virtualHosting = False

        self._prepareVHMRequest('/foo')
        self.assertEqual(['/foo'], self.rewriter('/foo'))
Exemplo n.º 38
0
    def test_https(self):
        registry = Registry()
        provideUtility(registry, IRegistry)
        registry.registerInterface(ICachePurgingSettings)
        settings = registry.forInterface(ICachePurgingSettings)
        settings.virtualHosting = True

        self._prepareVHMRequest('/foo', domain='example.com:81', protocol='https')
        self.assertEqual(['/VirtualHostBase/https/example.com:81/plone/VirtualHostRoot/foo'],
                         self.rewriter('/foo'))
Exemplo n.º 39
0
    def test_no_virtual_root_physical_path(self):
        registry = Registry()
        provideUtility(registry, IRegistry)
        registry.registerInterface(ICachePurgingSettings)
        settings = registry.forInterface(ICachePurgingSettings)
        settings.virtualHosting = True

        self._prepareVHMRequest('/foo')
        del self.request['VirtualRootPhysicalPath']
        self.assertEqual(['/foo'], self.rewriter('/foo'))
Exemplo n.º 40
0
    def test_no_virtual_url_parts(self):
        registry = Registry()
        provideUtility(registry, IRegistry)
        registry.registerInterface(ICachePurgingSettings)
        settings = registry.forInterface(ICachePurgingSettings)
        settings.virtualHosting = True

        self._prepareVHMRequest('/foo')
        del self.request['VIRTUAL_URL_PARTS']
        self.assertEqual(['/foo'], self.rewriter('/foo'))
Exemplo n.º 41
0
    def test_standard_vhm(self):
        registry = Registry()
        provideUtility(registry, IRegistry)
        registry.registerInterface(ICachePurgingSettings)
        settings = registry.forInterface(ICachePurgingSettings)
        settings.virtualHosting = True

        self._prepareVHMRequest('/foo')
        self.assertEqual(['/VirtualHostBase/http/example.com/plone/VirtualHostRoot/foo'],
                         self.rewriter('/foo'))
Exemplo n.º 42
0
    def test_disabled(self):
        registry = Registry()
        registry.registerInterface(ICachePurgingSettings)
        provideUtility(registry, IRegistry)

        settings = registry.forInterface(ICachePurgingSettings)
        settings.enabled = False
        settings.cachingProxies = ('http://localhost:1234', )

        self.assertEqual(False, utils.isCachePurgingEnabled())
Exemplo n.º 43
0
    def test_no_virtual_url(self):
        registry = Registry()
        provideUtility(registry, IRegistry)
        registry.registerInterface(ICachePurgingSettings)
        settings = registry.forInterface(ICachePurgingSettings)
        settings.virtualHosting = True

        self._prepareVHMRequest("/foo")
        del self.request["VIRTUAL_URL"]
        self.assertEqual(["/foo"], self.rewriter("/foo"))
Exemplo n.º 44
0
    def test_virtual_path_is_deep(self):
        registry = Registry()
        provideUtility(registry, IRegistry)
        registry.registerInterface(ICachePurgingSettings)
        settings = registry.forInterface(ICachePurgingSettings)
        settings.virtualHosting = True

        self._prepareVHMRequest('/foo/bar', root='/plone')

        self.assertEqual(['/VirtualHostBase/http/example.com/plone/VirtualHostRoot/foo/bar'],
                         self.rewriter('/foo/bar'))
Exemplo n.º 45
0
 def test_virtual_root_is_app_root(self):
     registry = Registry()
     provideUtility(registry, IRegistry)
     registry.registerInterface(ICachePurgingSettings)
     settings = registry.forInterface(ICachePurgingSettings)
     settings.virtualHosting = True
     
     self._prepareVHMRequest('/foo', root='/')
     
     self.assertEquals(['/VirtualHostBase/http/example.com/VirtualHostRoot/foo'],
                       self.rewriter('/foo'))
Exemplo n.º 46
0
 def test_inside_out_hosting(self):
     registry = Registry()
     provideUtility(registry, IRegistry)
     registry.registerInterface(ICachePurgingSettings)
     settings = registry.forInterface(ICachePurgingSettings)
     settings.virtualHosting = True
     
     self._prepareVHMRequest('/foo', root='/bar/plone', prefix='/foo/bar')
     
     self.assertEquals(['/VirtualHostBase/http/example.com/bar/plone/VirtualHostRoot/_vh_foo/_vh_bar/foo'],
                       self.rewriter('/foo'))
Exemplo n.º 47
0
    def test_domains_w_different_path_in_request(self):
        registry = Registry()
        provideUtility(registry, IRegistry)
        registry.registerInterface(ICachePurgingSettings)
        settings = registry.forInterface(ICachePurgingSettings)
        settings.virtualHosting = True
        settings.domains = ('http://example.org:81', 'https://example.com:82')

        self._prepareVHMRequest('/bar', domain='example.com:81', protocol='https')
        self.assertEqual(['/VirtualHostBase/http/example.org:81/plone/VirtualHostRoot/foo',
                          '/VirtualHostBase/https/example.com:82/plone/VirtualHostRoot/foo'],
                         self.rewriter('/foo'))
Exemplo n.º 48
0
 def test_editors(self):
     from plone.registry import Registry
     registry = Registry()
     from Products.CMFPlone.interfaces import IEditingSchema
     registry.registerInterface(IEditingSchema, prefix='plone')
     registry.records['plone.available_editors']
     vocab_util = getUtility(IVocabularyFactory,
                             'plone.app.vocabularies.AvailableEditors')
     editors = vocab_util(self.portal)
     self.assertEqual(2, len(editors.by_token))
     self.assertTrue('None' in [x for x in editors.by_token])
     self.assertTrue('TinyMCE' in [x for x in editors.by_token])
Exemplo n.º 49
0
    def test_nonstandard_port(self):
        registry = Registry()
        provideUtility(registry, IRegistry)
        registry.registerInterface(ICachePurgingSettings)
        settings = registry.forInterface(ICachePurgingSettings)
        settings.virtualHosting = True

        self._prepareVHMRequest("/foo", domain="example.com:81")
        self.assertEqual(
            ["/VirtualHostBase/http/example.com:81/plone/VirtualHostRoot/foo"],
            self.rewriter("/foo"),
        )
Exemplo n.º 50
0
    def test_inside_out_hosting_root_empty_path(self):
        registry = Registry()
        provideUtility(registry, IRegistry)
        registry.registerInterface(ICachePurgingSettings)
        settings = registry.forInterface(ICachePurgingSettings)
        settings.virtualHosting = True

        self._prepareVHMRequest('/', root='/plone', prefix='/plone')

        self.assertEqual(
            ['/VirtualHostBase/http/example.com/plone/VirtualHostRoot/_vh_plone'],
            self.rewriter(''))
Exemplo n.º 51
0
class TestPurgeImmediately(unittest.TestCase):
    def setUp(self):
        provideAdapter(persistentFieldAdapter)
        self.registry = Registry()
        self.registry.registerInterface(ICachePurgingSettings)
        provideUtility(self.registry, IRegistry)

        self.settings = self.registry.forInterface(ICachePurgingSettings)
        self.settings.enabled = True
        self.settings.cachingProxies = ("http://localhost:1234", )

        @implementer(IPurgePaths)
        @adapter(FauxContext)
        class FauxPurgePaths(object):
            def __init__(self, context):
                self.context = context

            def getRelativePaths(self):
                return ["/foo", "/bar"]

            def getAbsolutePaths(self):
                return []

        provideAdapter(FauxPurgePaths, name="test1")

        @implementer(IPurger)
        class FauxPurger(object):
            def purgeSync(self, url, httpVerb="PURGE"):
                return "200 OK", "cached", None

        provideUtility(FauxPurger())

    def tearDown(self):
        zope.component.testing.tearDown()

    def test_disabled(self):
        self.settings.enabled = False
        view = PurgeImmediately(FauxContext(), FauxRequest())
        self.assertEqual("Caching not enabled", view())

    def test_purge(self):
        view = PurgeImmediately(FauxContext(), FauxRequest())
        self.assertEqual(
            "Purged: http://localhost:1234/foo, "
            "Status: 200 OK, "
            "X-Cache: cached, "
            "Error: None\n"
            "Purged: http://localhost:1234/bar, "
            "Status: 200 OK, "
            "X-Cache: cached, "
            "Error: None\n",
            view(),
        )
Exemplo n.º 52
0
class RegistryTest(unittest.TestCase):

    layer = INTEGRATION_TESTING

    def setUp(self):
        self.portal = self.layer['portal']
        setRoles(self.portal, TEST_USER_ID, ['Manager'])
        # Set up the settings registry
        self.registry = Registry()
        self.registry.registerInterface(IDisqusSettings)

    def test_controlpanel_view(self):
        # control panel view exists
        view = getMultiAdapter((self.portal, self.portal.REQUEST),
                               name=config.CONTROLPANEL_ID)
        view = view.__of__(self.portal)
        self.assertTrue(view())

    def test_controlpanel_view_protected(self):
        # control panel view can not be accessed by anonymous users
        from AccessControl import Unauthorized
        logout()
        self.assertRaises(Unauthorized, self.portal.restrictedTraverse,
                          '@@telesur-disqus-controlpanel')

    def test_entry_in_controlpanel(self):
        # there must be an entry in the control panel
        self.controlpanel = getToolByName(self.portal, 'portal_controlpanel')
        self.assertTrue(
            'telesur.registry.disqus' in
            [a.getAction(self)['id'] for a in self.controlpanel.listActions()])

    def test_record_access_token(self):
        # access_token record must be in the registry
        record_access_token = self.registry.records[
            'telesur.registry.interfaces.IDisqusSettings.access_token']
        self.assertTrue('access_token' in IDisqusSettings)
        self.assertEquals(record_access_token.value, None)

    def test_record_app_public_key(self):
        # app_public_key record must be in the registry
        record_app_public_key = self.registry.records[
            'telesur.registry.interfaces.IDisqusSettings.app_public_key']
        self.assertTrue('app_public_key' in IDisqusSettings)
        self.assertEquals(record_app_public_key.value, None)

    def test_record_app_secret_key(self):
        # app_secret_key record must be in the registry
        record_app_secret_key = self.registry.records[
            'telesur.registry.interfaces.IDisqusSettings.app_secret_key']
        self.assertTrue('app_secret_key' in IDisqusSettings)
        self.assertEquals(record_app_secret_key.value, None)