コード例 #1
0
    def test_logo(self):
        env = EnvironmentStub()
        req = Mock(hdf=HDFWrapper(), cgi_location='/trac.cgi', path_info='')

        # Verify that no logo data is put in the HDF if no logo is configured
        env.config.set('header_logo', 'src', '')
        Chrome(env).populate_hdf(req, None)
        assert 'chrome.logo.src' not in req.hdf

        # Test with a relative path to the logo image
        req.hdf = HDFWrapper()
        env.config.set('header_logo', 'src', 'foo.png')
        Chrome(env).populate_hdf(req, None)
        self.assertEqual('/trac.cgi/chrome/common/foo.png',
                         req.hdf['chrome.logo.src'])

        # Test with a server-relative path to the logo image
        req.hdf = HDFWrapper()
        env.config.set('header_logo', 'src', '/img/foo.png')
        Chrome(env).populate_hdf(req, None)
        self.assertEqual('/img/foo.png', req.hdf['chrome.logo.src'])

        # Test with an absolute path to the logo image
        req.hdf = HDFWrapper()
        env.config.set('header_logo', 'src', 'http://www.example.org/foo.png')
        Chrome(env).populate_hdf(req, None)
        self.assertEqual('http://www.example.org/foo.png',
                         req.hdf['chrome.logo.src'])
コード例 #2
0
    def test_icon_links(self):
        env = EnvironmentStub()
        req = Mock(hdf=HDFWrapper(), cgi_location='/trac.cgi', path_info='')

        # No icon set in config, so no icon links
        env.config.set('project', 'icon', '')
        Chrome(env).populate_hdf(req, None)
        assert 'chrome.links.icon' not in req.hdf
        assert 'chrome.links.shortcut icon' not in req.hdf

        # Relative URL for icon config option
        env.config.set('project', 'icon', 'trac.ico')
        Chrome(env).populate_hdf(req, None)
        self.assertEqual('/trac.cgi/chrome/common/trac.ico',
                         req.hdf['chrome.links.icon.0.href'])
        self.assertEqual('/trac.cgi/chrome/common/trac.ico',
                         req.hdf['chrome.links.shortcut icon.0.href'])

        # URL relative to the server root for icon config option
        req.hdf = HDFWrapper()
        env.config.set('project', 'icon', '/favicon.ico')
        Chrome(env).populate_hdf(req, None)
        self.assertEqual('/favicon.ico', req.hdf['chrome.links.icon.0.href'])
        self.assertEqual('/favicon.ico',
                         req.hdf['chrome.links.shortcut icon.0.href'])

        # Absolute URL for icon config option
        req.hdf = HDFWrapper()
        env.config.set('project', 'icon', 'http://example.com/favicon.ico')
        Chrome(env).populate_hdf(req, None)
        self.assertEqual('http://example.com/favicon.ico',
                         req.hdf['chrome.links.icon.0.href'])
        self.assertEqual('http://example.com/favicon.ico',
                         req.hdf['chrome.links.shortcut icon.0.href'])
コード例 #3
0
ファイル: chrome.py プロジェクト: cyphactor/lifecyclemanager
    def test_logo(self):
        env = EnvironmentStub(enable=[])
        req = Mock(hdf=HDFWrapper(), href=Href('/trac.cgi'),
                   base_path='/trac.cgi', path_info='')

        # Verify that no logo data is put in the HDF if no logo is configured
        env.config.set('header_logo', 'src', '')
        Chrome(env).populate_hdf(req, None)
        assert 'chrome.logo.src' not in req.hdf

        # Test with a relative path to the logo image
        req.hdf = HDFWrapper()
        env.config.set('header_logo', 'src', 'foo.png')
        Chrome(env).populate_hdf(req, None)
        self.assertEqual('/trac.cgi/chrome/common/foo.png',
                         req.hdf['chrome.logo.src'])

        # Test with a server-relative path to the logo image
        req.hdf = HDFWrapper()
        env.config.set('header_logo', 'src', '/img/foo.png')
        Chrome(env).populate_hdf(req, None)
        self.assertEqual('/img/foo.png', req.hdf['chrome.logo.src'])

        # Test with an absolute path to the logo image
        req.hdf = HDFWrapper()
        env.config.set('header_logo', 'src', 'http://www.example.org/foo.png')
        Chrome(env).populate_hdf(req, None)
        self.assertEqual('http://www.example.org/foo.png',
                         req.hdf['chrome.logo.src'])
コード例 #4
0
    def test_nav_contributor_order(self):
        class TestNavigationContributor1(Component):
            implements(INavigationContributor)

            def get_active_navigation_item(self, req):
                return None

            def get_navigation_items(self, req):
                yield 'metanav', 'test1', 'Test 1'

        class TestNavigationContributor2(Component):
            implements(INavigationContributor)

            def get_active_navigation_item(self, req):
                return None

            def get_navigation_items(self, req):
                yield 'metanav', 'test2', 'Test 2'

        env = EnvironmentStub(
            enable=[TestNavigationContributor1, TestNavigationContributor2])
        req = Mock(hdf=HDFWrapper(), path_info='/', cgi_location='/trac.cgi')
        chrome = Chrome(env)

        # Test with both items set in the order option
        env.config.set('trac', 'metanav', 'test2, test1')
        chrome.populate_hdf(req, None)
        node = req.hdf.getObj('chrome.nav.metanav').child()
        self.assertEqual('test2', node.name())
        self.assertEqual('test1', node.next().name())

        # Test with only test1 in the order options
        req.hdf = HDFWrapper()
        env.config.set('trac', 'metanav', 'test1')
        chrome.populate_hdf(req, None)
        node = req.hdf.getObj('chrome.nav.metanav').child()
        self.assertEqual('test1', node.name())
        self.assertEqual('test2', node.next().name())

        # Test with only test2 in the order options
        req.hdf = HDFWrapper()
        env.config.set('trac', 'metanav', 'test2')
        chrome.populate_hdf(req, None)
        node = req.hdf.getObj('chrome.nav.metanav').child()
        self.assertEqual('test2', node.name())
        self.assertEqual('test1', node.next().name())

        # Test with none in the order options (order corresponds to
        # registration order)
        req.hdf = HDFWrapper()
        env.config.set('trac', 'metanav', 'foo, bar')
        chrome.populate_hdf(req, None)
        node = req.hdf.getObj('chrome.nav.metanav').child()
        self.assertEqual('test1', node.name())
        self.assertEqual('test2', node.next().name())
コード例 #5
0
ファイル: chrome.py プロジェクト: cyphactor/lifecyclemanager
    def test_nav_contributor_order(self):
        class TestNavigationContributor1(Component):
            implements(INavigationContributor)
            def get_active_navigation_item(self, req):
                return None
            def get_navigation_items(self, req):
                yield 'metanav', 'test1', 'Test 1'
        class TestNavigationContributor2(Component):
            implements(INavigationContributor)
            def get_active_navigation_item(self, req):
                return None
            def get_navigation_items(self, req):
                yield 'metanav', 'test2', 'Test 2'
        env = EnvironmentStub(enable=[TestNavigationContributor1,
                                      TestNavigationContributor2])
        req = Mock(hdf=HDFWrapper(), href=Href('/trac.cgi'),
                   path_info='/', base_path='/trac.cgi')
        chrome = Chrome(env)

        # Test with both items set in the order option
        env.config.set('trac', 'metanav', 'test2, test1')
        chrome.populate_hdf(req, None)
        node = req.hdf.getObj('chrome.nav.metanav').child()
        self.assertEqual('test2', node.name())
        self.assertEqual('test1', node.next().name())

        # Test with only test1 in the order options
        req.hdf = HDFWrapper()
        env.config.set('trac', 'metanav', 'test1')
        chrome.populate_hdf(req, None)
        node = req.hdf.getObj('chrome.nav.metanav').child()
        self.assertEqual('test1', node.name())
        self.assertEqual('test2', node.next().name())

        # Test with only test2 in the order options
        req.hdf = HDFWrapper()
        env.config.set('trac', 'metanav', 'test2')
        chrome.populate_hdf(req, None)
        node = req.hdf.getObj('chrome.nav.metanav').child()
        self.assertEqual('test2', node.name())
        self.assertEqual('test1', node.next().name())

        # Test with none in the order options (order corresponds to
        # registration order)
        req.hdf = HDFWrapper()
        env.config.set('trac', 'metanav', 'foo, bar')
        chrome.populate_hdf(req, None)
        node = req.hdf.getObj('chrome.nav.metanav').child()
        self.assertEqual('test1', node.name())
        self.assertEqual('test2', node.next().name())
コード例 #6
0
ファイル: chrome.py プロジェクト: cyphactor/lifecyclemanager
    def test_icon_links(self):
        env = EnvironmentStub(enable=[])
        req = Mock(hdf=HDFWrapper(), href=Href('/trac.cgi'),
                   base_path='/trac.cgi', path_info='')

        # No icon set in config, so no icon links
        env.config.set('project', 'icon', '')
        Chrome(env).populate_hdf(req, None)
        assert 'chrome.links.icon' not in req.hdf
        assert 'chrome.links.shortcut icon' not in req.hdf

        # Relative URL for icon config option
        env.config.set('project', 'icon', 'trac.ico')
        Chrome(env).populate_hdf(req, None)
        self.assertEqual('/trac.cgi/chrome/common/trac.ico',
                         req.hdf['chrome.links.icon.0.href'])
        self.assertEqual('/trac.cgi/chrome/common/trac.ico',
                         req.hdf['chrome.links.shortcut icon.0.href'])

        # URL relative to the server root for icon config option
        req.hdf = HDFWrapper()
        env.config.set('project', 'icon', '/favicon.ico')
        Chrome(env).populate_hdf(req, None)
        self.assertEqual('/favicon.ico',
                         req.hdf['chrome.links.icon.0.href'])
        self.assertEqual('/favicon.ico',
                         req.hdf['chrome.links.shortcut icon.0.href'])

        # Absolute URL for icon config option
        req.hdf = HDFWrapper()
        env.config.set('project', 'icon', 'http://example.com/favicon.ico')
        Chrome(env).populate_hdf(req, None)
        self.assertEqual('http://example.com/favicon.ico',
                         req.hdf['chrome.links.icon.0.href'])
        self.assertEqual('http://example.com/favicon.ico',
                         req.hdf['chrome.links.shortcut icon.0.href'])