def test_content_is_properly_linked(self, browser):
        page = create(Builder('content page')
                      .having(subject=['Airport']))

        view = SubjectListingView().visit()
        view.get_links_for('Airport').first.click()
        self.assertEquals(page.absolute_url(), browser.url)
    def test_lists_only_content_pages_by_default(self, browser):
        create(Builder('content page')
               .titled('A page')
               .having(subject=['budget']))

        create(Builder('news')
               .titled('A news')
               .having(subject=['budget']))

        view = SubjectListingView().visit()
        self.assertEquals(['A page'],
                          view.get_links_for('budget', text_only=True))
    def test_content_links_with_umlauts_are_ordered_correctly(self, browser):
        create(Builder('content page')
               .titled('G\xc3\xa4rtnerei')
               .having(subject=['Garten']))

        create(Builder('content page')
               .titled('Gr\xc3\xbcnfl\xc3\xa4chen')
               .having(subject=['Garten']))

        view = SubjectListingView().visit()
        self.assertEquals(['G\xc3\xa4rtnerei'.decode('utf-8'),
                           'Gr\xc3\xbcnfl\xc3\xa4chen'.decode('utf-8')],
                          view.get_links_for('Garten', text_only=True))
    def test_content_links_are_ordered_alphabetically(self, browser):
        create(Builder('content page')
               .titled('Foo')
               .having(subject=['Airport']))
        create(Builder('content page')
               .titled('Bar')
               .having(subject=['Airport']))
        create(Builder('content page')
               .titled('BAZ')
               .having(subject=['Airport']))

        view = SubjectListingView().visit()
        self.assertEquals(['Bar', 'BAZ', 'Foo'],
                          view.get_links_for('Airport', text_only=True))
    def test_listed_types_are_configurable_in_registry(self, browser):
        registry = getUtility(IRegistry)
        registry['ftw.contentpage.subjectlisting.portal_types'] = [
            u'ContentPage',
            u'News']

        create(Builder('content page')
               .titled('A page')
               .having(subject=['budget']))

        create(Builder('news')
               .titled('A news')
               .having(subject=['budget']))

        view = SubjectListingView().visit()
        self.assertEquals(['A news', 'A page'],
                          view.get_links_for('budget', text_only=True))