def test_css_included_relative_to_navigation_root(self, browser):
        self.grant('Manager')
        folder = create(Builder('folder').titled(u'Folder'))

        browser.login().open(folder)
        self.assert_css_url_present('http://nohost/plone/theming.css')

        alsoProvides(folder, INavigationRoot)
        transaction.commit()
        browser.reload()
        self.assert_css_url_present('http://nohost/plone/folder/theming.css')
예제 #2
0
    def test_raises_404_as_client_error(self, browser):
        with self.assertRaises(HTTPClientError) as cm:
            browser.open(view='missing')

        self.assertEquals(404, cm.exception.status_code)
        self.assertEquals('Not Found', cm.exception.status_reason)
        self.assertEquals('404 Not Found', str(cm.exception))

        with self.assertRaises(HTTPClientError):
            browser.reload()

        browser.raise_http_errors = False
        browser.reload()
예제 #3
0
    def test_cloning_copies_cookies(self, browser):
        browser.open(view='login_form').fill(
            {'Login Name': TEST_USER_NAME,
             'Password': TEST_USER_PASSWORD}).submit()
        self.assertTrue(plone.logged_in())

        with browser.clone() as subbrowser:
            subbrowser.open()
            self.assertTrue(plone.logged_in(subbrowser))
            subbrowser.find('Log out').click()
            self.assertFalse(plone.logged_in(subbrowser))

        browser.reload()
        self.assertTrue(plone.logged_in())
    def test_cachekey_refreshes_when_navroot_changes(self, browser):
        self._set_debug_mode(False)
        self.grant('Manager')
        navroot = create(Builder('folder')
                         .titled(u'Folder')
                         .providing(INavigationRoot))

        browser.open(navroot)
        css_base_url = 'http://nohost/plone/folder/theming.css'
        self.assert_css_url_present(css_base_url)
        theming_css_url = self.get_css_url(css_base_url)

        navroot.reindexObject()  # updates modified date
        transaction.commit()
        browser.reload()
        self.assertNotEqual(theming_css_url, self.get_css_url(css_base_url),
                            'Cachekey should be refreshed when navroot changes.')
예제 #5
0
    def test_cachekey_refreshes_when_navroot_changes(self, browser):
        with freeze(datetime(2015, 1, 2, 3, 4)) as clock:
            self.portal_css.setDebugMode(False)
            self.grant('Manager')
            navroot = create(Builder('folder')
                             .titled('Folder')
                             .providing(INavigationRoot))

            browser.open(navroot)
            css_base_url = 'http://nohost/plone/folder/theming.css'
            self.assert_css_url_present(css_base_url)
            theming_css_url = self.get_css_url(css_base_url)

            clock.forward(hours=1)
            navroot.reindexObject()  # updates modified date
            transaction.commit()
            browser.reload()
            self.assertNotEqual(theming_css_url, self.get_css_url(css_base_url),
                                'Cachekey should be refreshed when navroot changes.')
예제 #6
0
    def test_raises_500_as_server_error(self, browser):
        class ViewWithError(BrowserView):
            def __call__(self):
                raise ValueError('The value is wrong.')

        with register_view(ViewWithError, 'view-with-error'):
            with capture_streams(stderr=StringIO()):
                with self.assertRaises(HTTPServerError) as cm:
                    browser.open(view='view-with-error')

            self.assertEquals(500, cm.exception.status_code)
            self.assertEquals('Internal Server Error', cm.exception.status_reason)

            with capture_streams(stderr=StringIO()):
                with self.assertRaises(HTTPServerError):
                    browser.reload()

            browser.raise_http_errors = False
            with capture_streams(stderr=StringIO()):
                browser.reload()
    def test_cachekey_changes_when_dynamic_resource_cachekey_changes(self, browser):
        resource = DynamicSCSSResource('foo', cachekey='foo')
        getUtility(ISCSSRegistry).add_resource(resource)

        self._set_debug_mode(False)
        browser.open()
        theming_css_url = self.get_css_url('http://nohost/plone/theming.css')
        self.assertIn('?cachekey=', theming_css_url, 'Missing cachekey param.')

        browser.reload()
        self.assertEqual(theming_css_url,
                         self.get_css_url('http://nohost/plone/theming.css'),
                         'URL (cachekey?) did unexpectedly change.')

        resource.cachekey = 'bar'

        browser.reload()
        self.assertNotEqual(theming_css_url,
                            self.get_css_url('http://nohost/plone/theming.css'),
                            'Cachekey should have changed.')
예제 #8
0
 def test_referer_set_when_reloading_page(self, browser):
     browser.open(view='test-referer')
     browser.find('Dump request').click()
     browser.reload()
     self.assert_referer(self.referer_view_url())