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_non_alphabetic_subjects_are_listed_under_number_sign(self, browser): create(Builder('content page') .having(subject=['3D', '_X'])) view = SubjectListingView().visit() view.click_letter('#') self.assertEquals(['3D', '_X'], view.subjects)
def test_navigating_in_letter_index(self, browser): create(Builder('content page') .having(subject=['building application', 'crafting', 'manufactoring'])) view = SubjectListingView().visit() self.assertEquals('B', view.current_letter) view.click_letter('C') self.assertEquals('C', view.current_letter)
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))
def test_only_content_of_current_is_listed(self, browser): create(Builder('content page') .having(subject=['building application', 'budget', 'crafting'])) create(Builder('content page') .having(subject=['crafting'])) view = SubjectListingView().visit() self.assertEquals('B', view.current_letter) self.assertEquals(['budget', 'building application'], view.subjects) view.click_letter('C') self.assertEquals(['crafting'], view.subjects)
def test_letters_assumes_subject_filter(self, browser): create(Builder('content page') .titled('A page') .having(subject=['budget', 'finance', 'money'])) create(Builder('content page') .titled('A page') .having(subject=['finance', 'earn'])) view = SubjectListingView().visit() self.assertEquals(['B', 'E', 'F', 'M'], view.linked_letters) view = SubjectListingView().visit_with_subject_filter('budget') self.assertEquals(['F', 'M'], view.linked_letters) view.click_letter('M') self.assertEquals(['F', 'M'], view.linked_letters)