def test_redirecting_with_umlauts(self, browser):
        self.grant("Manager")
        config = IRedirectConfig(self.portal)
        config.rules = make_rules((u"/hall\xf6chen", u"/target"))
        create(Builder("page").titled("target"))

        browser.replace_request_header("X-zope-handle-errors", "True")
        browser.open("http://nohost/plone/hall\xc3\xb6chen")
        self.assertEqual("http://nohost/plone/target", browser.url)
    def test_redirected_when_having_matching_rule(self, browser):
        self.grant("Manager")
        config = IRedirectConfig(self.portal)
        config.rules = make_rules(("/foo", "/target"))
        create(Builder("page").titled("target"))

        browser.replace_request_header("X-zope-handle-errors", "True")
        browser.open("http://nohost/plone/foo")
        self.assertEqual("http://nohost/plone/target", browser.url)
Beispiel #3
0
    def test_redirecting_with_umlauts(self, browser):
        self.grant('Manager')
        config = IRedirectConfig(self.portal)
        config.rules = make_rules((u'/hall\xf6chen', u'/target'))
        create(Builder('page').titled(u'target'))

        # Set accept header (needed since Plone 5).
        browser.append_request_header('Accept', 'text/html')

        browser.open('http://nohost/plone/hall\xc3\xb6chen')
        self.assertEqual('http://nohost/plone/target', browser.url)
Beispiel #4
0
    def test_redirected_when_having_matching_rule(self, browser):
        self.grant('Manager')
        config = IRedirectConfig(self.portal)
        config.rules = make_rules(('/foo', '/target'))
        create(Builder('page').titled(u'target'))

        # Set accept header (needed since Plone 5).
        browser.append_request_header('Accept', 'text/html')

        browser.open('http://nohost/plone/foo')
        self.assertEqual('http://nohost/plone/target', browser.url)
Beispiel #5
0
    def handleApply(self, action):
        data, errors = self.extractData()

        if errors:
            # since we have only one field we can copy the error message
            # to make it more visible
            self.status = errors[0].message
            return

        excel_file = StringIO(data['rules_file'].data)
        rules = load_rules_from_excel(excel_file)

        rconfig = IRedirectConfig(self.context)
        rconfig.rules = rules

        messages = IStatusMessage(self.request)
        messages.add(_("The redirect config has been replaced."), type=u'info')

        self.request.RESPONSE.redirect(self.context.absolute_url())