/b-gtk/fix-viz

To get this branch, use:
bzr branch http://gegoxaren.bato24.eu/bzr/b-gtk/fix-viz
772.1.2 by Curtis Hovey
Verify the menu and its items are created.
1
# -*- coding: utf-8 -*-
2
# Copyright (C) 2012 Curtis C. Hovey <sinzui.is@verizon.net>
3
#
4
# This program is free software; you can redistribute it and/or modify
5
# it under the terms of the GNU General Public License as published by
6
# the Free Software Foundation; either version 2 of the License, or
7
# (at your option) any later version.
8
#
9
# This program is distributed in the hope that it will be useful,
10
# but WITHOUT ANY WARRANTY; without even the implied warranty of
11
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
12
# GNU General Public License for more details.
13
#
14
# You should have received a copy of the GNU General Public License
15
# along with this program; if not, write to the Free Software
16
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
17
772.1.3 by Curtis Hovey
Updated bzr-notify to gtk3.
18
import os
19
import subprocess
772.1.2 by Curtis Hovey
Verify the menu and its items are created.
20
21
from bzrlib import tests
22
from bzrlib.plugins.gtk.notify import NotifyPopupMenu
23
24
25
class FakeNotifyPopupMenu(NotifyPopupMenu):
26
27
    SHOW_WIDGETS = False
28
29
30
class NotifyPopupMenuTestCase(tests.TestCase):
31
32
    def test_init(self):
33
        menu = FakeNotifyPopupMenu()
34
        items = menu.get_children()
35
        self.assertEqual(8, len(items))
36
        self.assertEqual('_Gateway to LAN', items[0].props.label)
37
        self.assertEqual('Announce _branches on LAN', items[2].props.label)
38
        self.assertEqual('gtk-preferences', items[4].props.label)
39
        self.assertEqual('gtk-about', items[5].props.label)
40
        self.assertEqual('gtk-quit', items[7].props.label)
772.1.3 by Curtis Hovey
Updated bzr-notify to gtk3.
41
42
43
class BzrNotifyTestCase(tests.TestCase):
44
772.1.4 by Curtis Hovey
Use the one-true way to setup the plugin path for the test.
45
    def setUp(self):
46
        top = os.path.abspath(os.path.join(
47
            os.path.dirname(__file__), os.pardir))
48
        self.script = os.path.join(top, 'bzr-notify')
49
        self.env = dict(os.environ)
50
        self.env['BZR_PLUGINS_AT'] = 'gtk@%s' % top
51
        super(BzrNotifyTestCase, self).setUp()
52
772.1.3 by Curtis Hovey
Updated bzr-notify to gtk3.
53
    def test_smoketest(self):
54
        # This is a smoke test to verify the process starts.
55
        # The logic of the module must be moved into notify.py
56
        # where it can be properly tested.
57
        bzr_notify = subprocess.Popen(
772.1.4 by Curtis Hovey
Use the one-true way to setup the plugin path for the test.
58
            [self.script, 'test'],
59
            stdout=subprocess.PIPE, stderr=subprocess.PIPE, env=self.env)
772.1.3 by Curtis Hovey
Updated bzr-notify to gtk3.
60
        stdout, stderr = bzr_notify.communicate()
61
        self.assertEqual('', stdout)
778 by Jelmer Vernooij
Cope with AppIndicator3 being missing during test run.
62
        self.assertTrue(
63
            stderr in (
64
            '', 'ERROR:root:Could not find any typelib for AppIndicator3\n'))