131
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)
134
194
class MockDiffWidget(object):
136
196
def set_diff_text_sections(self, sections):