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_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)