def test_participants_are_listed_in_table(self, browser):
        create(Builder('user')
               .named('Hugo', 'Boss')
               .with_roles('Reader', 'Contributor', on=self.folder))

        browser.login().visit(self.folder, view='participants')
        self.assertIn({u'': '',
                       u'User': u'Boss Hugo ([email protected])',
                       u'Roles': u'Can add, Can view',
                       u'Invited by': u'',
                       u'Status': u'Accepted',
                       u'': u'change'},
                      participants_view.table())
    def test_invitations_are_listed_in_table(self, browser):
        hugo = create(Builder('user').named('Hugo', 'Boss'))
        fraenzi = create(Builder('user')
                         .named('Fr\xc3\xa4nzi', 'M\xc3\xbcller'))

        create(Builder('invitation')
               .inviting(fraenzi)
               .to(self.folder)
               .invited_by(hugo))

        browser.login().visit(self.folder, view='participants')
        self.assertIn({u'': '',
                       'User': '******',
                       'Roles': 'Can view',
                       'Invited by': 'Boss Hugo',
                       'Status': 'Pending',
                       u'': u''},
                      participants_view.table())
    def test_participants_with_inherited_roles_are_listed_in_table(self, browser):
        subfolder = create(Builder('folder')
                           .titled('The SubFolder')
                           .within(self.folder)
                           .providing(IParticipationSupport))

        create(Builder('user')
               .named('Hugo', 'Boss')
               .with_roles('Reader', 'Contributor', on=self.folder))

        browser.login().visit(subfolder, view='participants')

        self.assertEquals(2,
                          len(browser.css('.roleInherited')),
                          'Expect two inherited roles')

        self.assertIn({u'': '',
                       u'User': u'Boss Hugo ([email protected])',
                       u'Roles': u'Can add, Can view',
                       u'Invited by': u'',
                       u'Status': u'Accepted',
                       u'': u'change'},
                      participants_view.table())