def test_01_export_news(self, browser): self.grant('Manager') news_folder = create(Builder('news folder').titled(u'News Folder')) with freeze(datetime(2010, 3, 14, 20, 18)): news1 = create( Builder('news') .titled(u'Usain Bolt at the \xd6lympics') .within(news_folder) .having(news_date=datetime(2010, 3, 15, 12, 00), description=u'Usain Bolt wins the \xd6lympic gold in' u' three events.\n\nThe third is for a 100-metre relay.', subjects=('Homepage', 'Sports'))) lorem = RichTextValue(self.asset('lorem1.html')) block = create(Builder('sl textblock').within(news1) .with_dummy_image() .having(text=lorem)) utils.create_page_state(news1, block) IMopageModificationDate(news1).set_date(DateTime('2010/3/15')) with freeze(datetime(2010, 5, 17, 15, 34)): create(Builder('news') .titled(u'Largest Aircraft in the World') .within(news_folder) .having(news_date=datetime(2010, 5, 18, 12, 00), expires=datetime(2020, 1, 1))) with freeze(datetime(2011, 1, 2, 3, 4)): self.assert_mopage_export('01_export_news.xml', news_folder)
def test_news_listing_block_shows_lead_image(self, browser): page = create(Builder('sl content page').titled(u'A page')) news_folder = create(Builder('news folder') .titled(u'News Folder') .within(page)) news = create(Builder('news') .titled(u'Hello World') .within(news_folder)) textblock = create(Builder('sl textblock') .titled(u'Textblock with image') .within(news) .with_dummy_image()) utils.create_page_state(news, textblock) block = create(Builder('news listing block') .within(page) .titled('News listing block') .having(show_lead_image=True)) lead_image_css_selector = '.news-item img' browser.login().visit(page) self.assertEqual( 'Textblock with image', browser.css(lead_image_css_selector).first.attrib['title'] ) # Now edit the block so it will not show the lead image. browser.visit(block, view='edit') browser.fill({'Show lead image': False}).save() browser.visit(page) self.assertEqual([], browser.css(lead_image_css_selector))
def test_has_image_class_is_not_set_on_show_lead_image(self, browser): page = create(Builder('sl content page').titled(u'A page')) news_folder = create(Builder('news folder') .titled(u'News Folder') .within(page)) news_with_image = create(Builder('news') .titled(u'News with image') .within(news_folder)) textblock_with_image = create(Builder('sl textblock') .titled(u'Textblock with image') .within(news_with_image) .with_dummy_image()) utils.create_page_state(news_with_image, textblock_with_image) create(Builder('news listing block') .within(page) .titled('News listing block') .having(show_lead_image=False)) browser.login().visit(page) self.assertEqual( ['body'], map(lambda news_item: news_item.attrib['class'], browser.css('.news-item .body')) )
def test_news_listing_lead_image(self, browser): """ This test makes sure that the news listing view renders the lead image of a news entry. """ block = create(Builder('sl textblock') .titled(u'Textblock with image') .within(self.news1) .with_dummy_image()) utils.create_page_state(self.news1, block) browser.login().visit(self.news_folder, view='news_listing') self.assertEqual( 'Textblock with image', browser.css('.news-item img').first.attrib['title'] )
def test_news_portlet_shows_lead_image(self, browser): """ This test makes sure that the news portlet renders the lead image if configured to do so. """ page = create(Builder('sl content page').titled(u'Content Page')) news_folder = create(Builder('news folder') .titled(u'News Folder') .within(page)) news = create(Builder('news') .titled(u'Hello World') .within(news_folder)) block = create(Builder('sl textblock') .titled(u'Textblock with image') .within(news) .with_dummy_image()) utils.create_page_state(news, block) self._add_portlet(browser, self.portal, **{'Title': 'A News Portlet', 'Limit to current context': False, 'Quantity': u'1', 'Show lead image': True}) lead_image_css_selector = '.news-item img' browser.login().visit(page) self.assertEqual( 'Textblock with image', browser.css(lead_image_css_selector).first.attrib['title'] ) # Configure the portlet not to show the lead image and make sure the # lead image is not rendered anymore. browser.find('Manage portlets').click() browser.find('News Portlet (A News Portlet)').click() browser.forms['form'].fill({'Show lead image': False}).save() browser.visit(page) self.assertEqual([], browser.css(lead_image_css_selector))