18
18
from cStringIO import StringIO
21
from gi.repository import Gtk
21
23
from bzrlib import (
29
from bzrlib.tests.features import UnicodeFilenameFeature
30
except ImportError: # bzr < 2.5
31
from bzrlib.tests import UnicodeFilenameFeature
26
32
from bzrlib.merge_directive import MergeDirective2
28
34
from bzrlib.plugins.gtk.diff import (
31
39
iter_changes_to_status,
32
40
MergeDirectiveController,
42
from bzrlib.plugins.gtk.tests import MockMethod
35
46
=== modified file 'tests/test_diff.py'
36
47
--- tests/test_diff.py 2008-03-11 13:18:28 +0000
110
class FakeDiffWidget(DiffWidget):
115
class TestDiffWidget(tests.TestCaseWithTransport):
117
def test_treeview_cursor_cb(self):
118
widget = FakeDiffWidget()
119
widget.set_diff_text_sections(
120
[('', None, 'patch1'), ('a', 'a', 'patch2')])
121
widget.treeview.set_cursor(Gtk.TreePath(path=1), None, False)
122
widget._treeview_cursor_cb(None)
123
self.assertTrue('patch2', widget.diff_view.buffer.props.text)
125
def test_treeview_cursor_cb_with_destroyed_treeview(self):
126
widget = FakeDiffWidget()
127
widget.set_diff_text_sections(
128
[('', None, 'patch1'), ('a', 'a', 'patch2')])
129
MockMethod.bind(self, widget.diff_view, 'show_diff')
130
widget.treeview.destroy()
131
widget._treeview_cursor_cb(None)
132
self.assertFalse(widget.diff_view.show_diff.called)
135
class FakeDiffWindow(DiffWindow):
140
class DiffWindowTestCase(tests.TestCaseWithTransport):
143
window = DiffWindow()
144
self.assertEqual('bzr diff', window.props.title)
145
self.assertEqual(0, window.props.border_width)
147
def test_init_construct_without_operations(self):
148
window = DiffWindow()
149
widgets = window.vbox.get_children()
150
self.assertEqual(2, len(widgets))
151
self.assertIsInstance(widgets[0], Gtk.MenuBar)
152
self.assertIsInstance(widgets[1], DiffWidget)
154
def test_init_construct_with_operations(self):
155
method = MockMethod()
156
window = DiffWindow(operations=[('title', method)])
157
widgets = window.vbox.get_children()
158
self.assertEqual(3, len(widgets))
159
self.assertIsInstance(widgets[0], Gtk.MenuBar)
160
self.assertIsInstance(widgets[1], Gtk.HButtonBox)
161
self.assertIsInstance(widgets[2], DiffWidget)
163
def test_get_menu_bar(self):
164
window = DiffWindow()
165
menu_bar = window._get_menu_bar()
166
self.assertIsNot(None, menu_bar)
167
menus = menu_bar.get_children()
168
self.assertEqual(1, len(menus))
169
self.assertEqual('_View', menus[0].props.label)
170
sub_menu = menus[0].get_submenu()
171
self.assertIsNot(None, sub_menu)
172
items = sub_menu.get_children()
173
self.assertEqual(1, len(items))
174
menus[0].get_submenu().get_children()[0].props.label
175
self.assertEqual('Wrap _Long Lines', items[0].props.label)
177
def test_get_button_bar_with_none(self):
178
window = DiffWindow()
179
self.assertIs(None, window._get_button_bar(None))
181
def test_get_button_bar_with_operations(self):
182
window = DiffWindow()
183
method = MockMethod()
184
button_bar = window._get_button_bar([('title', method)])
185
self.assertIsNot(None, button_bar)
186
buttons = button_bar.get_children()
187
self.assertEqual(1, len(buttons))
188
self.assertEqual('title', buttons[0].props.label)
189
buttons[0].emit('clicked')
190
self.assertIs(True, method.called)
98
194
class MockDiffWidget(object):
100
196
def set_diff_text_sections(self, sections):