def test_sender(self, browser):
        intercepted_data = {}

        class MockedReceiverView(BrowserView):
            def __call__(self):
                intercepted_data['jsondata'] = self.request.form.get('jsondata')
                return createResponse(SuccessState())

        config = IConfig(self.portal)
        config.appendRealm(Realm(1, self.portal.absolute_url(), SITE_OWNER_NAME, SITE_OWNER_PASSWORD))
        transaction.commit()

        with view_registered(MockedReceiverView, 'global_statusmessage_config_receiver',
                             required=(IPloneSiteRoot, Interface)):
            browser.login(SITE_OWNER_NAME).open(view='@@global_statusmessage_config')
            browser.fill(self.form_data)
            browser.click_on('Save and publish')

        self.assertDictEqual(
            self.expected_settings,
            encode_after_json(json.loads(intercepted_data['jsondata']))
        )

        self.assertEqual(
            ['Changes saved and published.'],
            info_messages()
        )
Ejemplo n.º 2
0
    def test_overridden_realms_config(self):
        self.layer.load_zcml_string(
            '\n'.join((
                    '<configure xmlns:publisher="http://namespaces.' + \
                        'zope.org/ftw.publisher">',

                    '    <publisher:override-realm',
                    '        url="http://localhost:9090/site"',
                    '        username="******"',
                    '        password="******" />',

                    '</configure>'
                    )))

        portal = self.providing_stub([IPloneSiteRoot, IAttributeAnnotatable])
        portal.portal_url.getPortalObject.return_value = portal

        config = IConfig(portal)
        self.assertTrue(config)
        self.assertFalse(config.is_update_realms_possible())

        self.assertEquals(len(config.getRealms()), 1)

        with self.assertRaises(AttributeError):
            config.appendRealm(Realm(1, 'http://site', 'foo', 'pw'))
    def test_overridden_realms_config(self):
        self.layer.load_zcml_string(
            '\n'.join((
                    '<configure xmlns:publisher="http://namespaces.' + \
                        'zope.org/ftw.publisher">',

                    '    <publisher:override-realm',
                    '        url="http://localhost:9090/site"',
                    '        username="******"',
                    '        password="******" />',

                    '</configure>'
                    )))

        portal = self.providing_stub([IPloneSiteRoot, IAttributeAnnotatable])
        self.expect(portal.portal_url.getPortalObject()).result(portal)
        self.replay()

        config = IConfig(portal)
        self.assertTrue(config)
        self.assertFalse(config.is_update_realms_possible())

        self.assertEquals(len(config.getRealms()), 1)

        with self.assertRaises(AttributeError):
            config.appendRealm(Realm(1, 'http://site', 'foo', 'pw'))
    def test_sender(self, browser):
        intercepted_data = {}

        class MockedReceiverView(BrowserView):
            def __call__(self):
                intercepted_data['jsondata'] = self.request.form.get(
                    'jsondata')
                return createResponse(SuccessState())

        config = IConfig(self.portal)
        config.appendRealm(
            Realm(1, self.portal.absolute_url(), SITE_OWNER_NAME,
                  SITE_OWNER_PASSWORD))
        transaction.commit()

        with view_registered(MockedReceiverView,
                             'global_statusmessage_config_receiver',
                             required=(IPloneSiteRoot, Interface)):
            browser.login(SITE_OWNER_NAME).open(
                view='@@global_statusmessage_config')
            browser.fill(self.form_data)
            browser.click_on('Save and publish')

        self.assertDictEqual(
            self.expected_settings,
            encode_after_json(json.loads(intercepted_data['jsondata'])))

        self.assertEqual(['Changes saved and published.'], info_messages())
Ejemplo n.º 5
0
 def handleAdd(self, action):
     """
     This handler handles a click on the "Add Realm"-Button.
     If no errors occured, it adds a new Realm to the Config.
     @param action:      ActionInfo object provided by z3c.form
     @return:            None (form is shown) or Response-redirect
     """
     data, errors = self.extractData()
     config = IConfig(self.context)
     if len(errors)==0:
         assert config.is_update_realms_possible()
         # url + username has to be unique
         for realm in config.getRealms():
             if realm.url==data['url'] and realm.username==data['username']:
                 self.statusMessage(
                     'This URL / Username combination already exists!',
                     'error')
                 return
         kwargs = {
             'active': data['active'] and 1 or 0,
             'url': data['url'],
             'username': data['username'],
             'password': data['password'],
             }
         realm = Realm(**kwargs)
         config.appendRealm(realm)
         self.statusMessage('Added realm successfully')
         return self.request.RESPONSE.redirect('./@@publisher-config')
Ejemplo n.º 6
0
 def handleAdd(self, action):
     """
     This handler handles a click on the "Add Realm"-Button.
     If no errors occured, it adds a new Realm to the Config.
     @param action:      ActionInfo object provided by z3c.form
     @return:            None (form is shown) or Response-redirect
     """
     data, errors = self.extractData()
     config = IConfig(self.context)
     if len(errors)==0:
         assert config.is_update_realms_possible()
         # url + username has to be unique
         for realm in config.getRealms():
             if realm.url==data['url'] and realm.username==data['username']:
                 self.statusMessage(
                     'This URL / Username combination already exists!',
                     'error')
                 return
         kwargs = {
             'active': data['active'] and 1 or 0,
             'url': data['url'],
             'username': data['username'],
             'password': data['password'],
             }
         realm = Realm(**kwargs)
         config.appendRealm(realm)
         self.statusMessage('Added realm successfully')
         return self.request.RESPONSE.redirect('./@@publisher-config')
Ejemplo n.º 7
0
    def test_default_realms_config(self):
        portal = self.providing_stub([IPloneSiteRoot, IAttributeAnnotatable])
        portal.portal_url.getPortalObject.return_value = portal
        config = IConfig(portal)
        self.assertTrue(config)
        self.assertTrue(config.is_update_realms_possible())

        self.assertEquals(len(config.getRealms()), 0)
        config.appendRealm(Realm(1, 'http://site', 'foo', 'pw'))
        self.assertEquals(len(config.getRealms()), 1)
    def test_default_realms_config(self):
        portal = self.providing_stub([IPloneSiteRoot, IAttributeAnnotatable])
        self.expect(portal.portal_url.getPortalObject()).result(portal)
        self.replay()

        config = IConfig(portal)
        self.assertTrue(config)
        self.assertTrue(config.is_update_realms_possible())

        self.assertEquals(len(config.getRealms()), 0)
        config.appendRealm(Realm(1, 'http://site', 'foo', 'pw'))
        self.assertEquals(len(config.getRealms()), 1)
Ejemplo n.º 9
0
    def setUp(self):
        super(TestFormGenIntegration, self).setUp()

        self.portal = self.layer['portal']
        setRoles(self.portal, TEST_USER_ID, ['Manager'])

        self.wftool = getToolByName(self.portal, 'portal_workflow')
        self.wftool.setChainForPortalTypes(['FormFolder', 'Form Folder'],
                                           'publisher-example-workflow')

        self.formfolder = create(Builder('form folder'))
        self.save_data_adapter = create(
            Builder('save data adapter').within(self.formfolder))

        self.data_string = "[email protected], Test, only a Test \n \
                           [email protected], another Test, Still a Test"

        self.save_data_adapter.setSavedFormInput(self.data_string)
        config = IConfig(self.portal)
        config.appendRealm(Realm(1, 'http://site', 'foo', 'pw'))
Ejemplo n.º 10
0
    def setUp(self):
        super(TestFormGenIntegration, self).setUp()

        self.portal = self.layer['portal']
        setRoles(self.portal, TEST_USER_ID, ['Manager'])

        self.wftool = getToolByName(self.portal, 'portal_workflow')
        self.wftool.setChainForPortalTypes(['FormFolder', 'Form Folder'],
                                           'publisher-example-workflow')

        self.formfolder = create(Builder('form folder'))
        self.save_data_adapter = create(Builder(
            'save data adapter').within(self.formfolder))

        self.data_string = "[email protected], Test, only a Test \n \
                           [email protected], another Test, Still a Test"

        self.save_data_adapter.setSavedFormInput(self.data_string)
        config = IConfig(self.portal)
        config.appendRealm(Realm(1, 'http://site', 'foo', 'pw'))