Example #1
0
    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'))
        )
Example #4
0
    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']
        )
Example #5
0
    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))