~vcs-imports/trac/trunk

« back to all changes in this revision

Viewing changes to trac/versioncontrol/web_ui/tests/log.py

  • Committer: jomae
  • Date: 2019-09-09 09:59:59 UTC
  • Revision ID: svn-v4:af82e41b-90c4-0310-8c96-b1721e28e2e2:trunk:17174
1.5.1dev: merge [17173] from 1.4-stable (fix for #13202)

Show diffs side-by-side

added added

removed removed

Lines of Context:
26
26
from trac.web.api import parse_arg_list
27
27
from trac.web.chrome import web_context
28
28
from trac.web.tests.api import RequestHandlerPermissionsTestCaseBase
29
 
from trac.wiki.formatter import format_to_oneliner
 
29
from trac.wiki.formatter import format_to_html
30
30
 
31
31
 
32
32
mock_repotype = 'mock:' + __name__
48
48
    implements(IPermissionPolicy)
49
49
 
50
50
    def check_permission(self, action, username, resource, perm):
51
 
        if action == 'LOG_VIEW' and resource.realm == 'repository':
 
51
        if action == 'LOG_VIEW':
 
52
            if resource.realm != 'source':
 
53
                raise AssertionError('Invalid realm %r' % resource.realm)
 
54
            if resource.id == 'deny' or resource.id.endswith('/deny'):
 
55
                return False
 
56
            if resource.id == 'allow' or resource.id.endswith('/allow'):
 
57
                return True
52
58
            return username != 'anonymous'
53
59
 
54
60
 
495
501
    def test_log_link_checking_repository_resource(self):
496
502
        self.env.config.set('trac', 'permission_policies',
497
503
            'TestLogModulePermissionPolicy, DefaultPermissionPolicy')
 
504
 
 
505
        self.assertIn(' title="No permission to view change log"',
 
506
                      self._format_to_html('anonymous', 'log:mock@42-43'))
 
507
        self.assertIn(' href="/trac.cgi/log/mock/allow?revs=42-43"',
 
508
                      self._format_to_html('anonymous',
 
509
                                           'log:mock/allow@42-43'))
 
510
        self.assertIn(' href="/trac.cgi/log/mock/?revs=42-43"',
 
511
                      self._format_to_html('blah', 'log:mock@42-43'))
 
512
        self.assertIn(' title="No permission to view change log"',
 
513
                      self._format_to_html('blah', 'log:mock/deny'))
 
514
 
 
515
    def _format_to_html(self, authname, wiki):
498
516
        resource = Resource('wiki', 'WikiStart')
499
 
 
500
 
        req = MockRequest(self.env, authname='anonymous')
501
 
        rendered = unicode(format_to_oneliner(self.env,
502
 
                                              web_context(req, resource),
503
 
                                              'log:mock@42-43'))
504
 
        self.assertIn(' title="No permission to view change log"', rendered)
505
 
 
506
 
        req = MockRequest(self.env, authname='blah')
507
 
        rendered = unicode(format_to_oneliner(self.env,
508
 
                                              web_context(req, resource),
509
 
                                              'log:mock@42-43'))
510
 
        self.assertIn(' href="/trac.cgi/log/mock/?revs=42-43"', rendered)
 
517
        req = MockRequest(self.env, authname=authname)
 
518
        return unicode(format_to_html(self.env, web_context(req, resource),
 
519
                                      wiki))
511
520
 
512
521
 
513
522
def test_suite():