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')
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()
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.')
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.')
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.')
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())