def test_athenaIdRewriting(self): """ Test that IDs are correctly rewritten in id, for, and headers attributes. """ tag = [tags.label(_for='foo'), tags.input(id='foo'), tags.th(headers=''), tags.th(headers='foo'), tags.td(headers='foo bar'), tags.td(headers='foo bar baz')] element = athena.LiveElement(docFactory=loaders.stan(tag)) page = athena.LivePage(docFactory=loaders.stan(element)) element.setFragmentParent(page) def _verifyRendering(result): self.assertIn('<input id="athenaid:%s-foo"' % (element._athenaID,), result) self.assertIn('<label for="athenaid:%s-foo"' % (element._athenaID,), result) self.assertIn('<th headers=""', result) self.assertIn('<th headers="athenaid:%s-foo"' % ( element._athenaID,), result) self.assertIn('<td headers="athenaid:%s-foo athenaid:%s-bar"' % ( element._athenaID, element._athenaID), result) self.assertIn('<td headers="athenaid:%s-foo athenaid:%s-bar athenaid:%s-baz"' % ( element._athenaID, element._athenaID, element._athenaID), result) return renderLivePage(page).addCallback(_verifyRendering)
def getWidgetWithCSSDependencies(self): """ Return a widget which depends on some CSS. """ self.page.cssModules = self._makeCSSRegistry() element = athena.LiveElement() element.cssModule = 'TestCSSModuleDependencies.Dependor' element.setFragmentParent(self) element.docFactory = loaders.stan( tags.div(render=tags.directive('liveElement'))) return (element, [ str(self.page.getCSSModuleURL(n)) for n in ('TestCSSModuleDependencies', 'TestCSSModuleDependencies.Dependee', 'TestCSSModuleDependencies.Dependor') ])
def test_elementPreprocessors(self): """ Make sure that LiveElements have their preprocessors applied to their document. """ preprocessed = [] tag = tags.span element = athena.LiveElement(docFactory=loaders.stan(tag)) page = athena.LivePage(docFactory=loaders.stan(element)) element.preprocessors = [preprocessed.append] element.setFragmentParent(page) renderDeferred = self._render(page) def rendered(result): page.action_close(None) self.assertEquals(preprocessed, [[tag]]) renderDeferred.addCallback(rendered) return renderDeferred