62
54
class TestDiffViewSimple(tests.TestCase):
66
class FakeDiffFileView(DiffFileView):
71
class DiffFileViewTestCase(tests.TestCase):
73
def test_init_construct(self):
74
view = FakeDiffFileView()
75
self.assertIsNot(None, view.buffer)
76
self.assertIsNot(None, view.sourceview)
77
self.assertIs(False, view.sourceview.props.editable)
78
font_desc = view.sourceview.get_style_context().get_font(
79
Gtk.StateFlags.NORMAL)
80
self.assertIn('Monospace', font_desc.get_family())
82
def test_init_construct_have_gtksourceview(self):
83
if not have_gtksourceview:
85
view = FakeDiffFileView()
86
self.assertEqual('Diff', view.buffer.get_language().get_name())
87
self.assertIs(True, view.buffer.get_highlight_syntax())
57
class TestDiffViewSimple(tests.TestCase):
59
def test_parse_colordiffrc(self):
63
# now a comment and a blank line
66
# another comment preceded by whitespace
71
'diffstuff': '#ffff00',
73
parsed_colors = DiffView.parse_colordiffrc(StringIO(colordiffrc))
74
self.assertEqual(colors, parsed_colors)
90
77
class TestDiffView(tests.TestCaseWithTransport):
116
class FakeDiffWidget(DiffWidget):
121
class TestDiffWidget(tests.TestCaseWithTransport):
123
def test_treeview_cursor_cb(self):
124
widget = FakeDiffWidget()
125
widget.set_diff_text_sections(
126
[('', None, 'patch1'), ('a', 'a', 'patch2')])
127
widget.treeview.set_cursor(Gtk.TreePath(path=1), None, False)
128
widget._treeview_cursor_cb(None)
129
self.assertTrue('patch2', widget.diff_view.buffer.props.text)
131
def test_treeview_cursor_cb_with_destroyed_treeview(self):
132
widget = FakeDiffWidget()
133
widget.set_diff_text_sections(
134
[('', None, 'patch1'), ('a', 'a', 'patch2')])
135
MockMethod.bind(self, widget.diff_view, 'show_diff')
136
widget.treeview.destroy()
137
widget._treeview_cursor_cb(None)
138
self.assertFalse(widget.diff_view.show_diff.called)
141
class FakeDiffWindow(DiffWindow):
146
class DiffWindowTestCase(tests.TestCaseWithTransport):
149
window = DiffWindow()
150
self.assertEqual('bzr diff', window.props.title)
151
self.assertEqual(0, window.props.border_width)
153
def test_init_construct_without_operations(self):
154
window = DiffWindow()
155
widgets = window.vbox.get_children()
156
self.assertEqual(2, len(widgets))
157
self.assertIsInstance(widgets[0], Gtk.MenuBar)
158
self.assertIsInstance(widgets[1], DiffWidget)
160
def test_init_construct_with_operations(self):
161
method = MockMethod()
162
window = DiffWindow(operations=[('title', method)])
163
widgets = window.vbox.get_children()
164
self.assertEqual(3, len(widgets))
165
self.assertIsInstance(widgets[0], Gtk.MenuBar)
166
self.assertIsInstance(widgets[1], Gtk.HButtonBox)
167
self.assertIsInstance(widgets[2], DiffWidget)
169
def test_get_menu_bar(self):
170
window = DiffWindow()
171
menu_bar = window._get_menu_bar()
172
self.assertIsNot(None, menu_bar)
173
menus = menu_bar.get_children()
174
self.assertEqual(1, len(menus))
175
self.assertEqual('_View', menus[0].props.label)
176
sub_menu = menus[0].get_submenu()
177
self.assertIsNot(None, sub_menu)
178
items = sub_menu.get_children()
179
self.assertEqual(1, len(items))
180
menus[0].get_submenu().get_children()[0].props.label
181
self.assertEqual('Wrap _Long Lines', items[0].props.label)
183
def test_get_button_bar_with_none(self):
184
window = DiffWindow()
185
self.assertIs(None, window._get_button_bar(None))
187
def test_get_button_bar_with_operations(self):
188
window = DiffWindow()
189
method = MockMethod()
190
button_bar = window._get_button_bar([('title', method)])
191
self.assertIsNot(None, button_bar)
192
buttons = button_bar.get_children()
193
self.assertEqual(1, len(buttons))
194
self.assertEqual('title', buttons[0].props.label)
195
buttons[0].emit('clicked')
196
self.assertIs(True, method.called)
200
102
class MockDiffWidget(object):
202
104
def set_diff_text_sections(self, sections):