77
77
@patch(u'openlp.core.ui.lib.listpreviewwidget.ListPreviewWidget.image_manager')
78
78
@patch(u'openlp.core.ui.lib.listpreviewwidget.ListPreviewWidget.resizeRowsToContents')
79
79
@patch(u'openlp.core.ui.lib.listpreviewwidget.ListPreviewWidget.setRowHeight')
80
def replace_service_item_test_thumbs(self, mocked_setRowHeight, mocked_resizeRowsToContents,
80
def test_replace_service_item_thumbs(self, mocked_setRowHeight, mocked_resizeRowsToContents,
81
81
mocked_image_manager):
83
83
Test that thubmails for different slides are loaded properly in replace_service_item.
124
124
@patch(u'openlp.core.ui.lib.listpreviewwidget.ListPreviewWidget.resizeRowsToContents')
125
125
@patch(u'openlp.core.ui.lib.listpreviewwidget.ListPreviewWidget.setRowHeight')
126
def replace_recalculate_layout_test_text(self, mocked_setRowHeight, mocked_resizeRowsToContents):
126
def test_replace_recalculate_layout_text(self, mocked_setRowHeight, mocked_resizeRowsToContents):
128
128
Test if "Max height for non-text slides..." enabled, txt slides unchanged in replace_service_item & __recalc...
156
156
@patch(u'openlp.core.ui.lib.listpreviewwidget.ListPreviewWidget.resizeRowsToContents')
157
157
@patch(u'openlp.core.ui.lib.listpreviewwidget.ListPreviewWidget.setRowHeight')
158
def replace_recalculate_layout_test_img(self, mocked_setRowHeight, mocked_resizeRowsToContents):
158
def test_replace_recalculate_layout_img(self, mocked_setRowHeight, mocked_resizeRowsToContents):
160
160
Test if "Max height for non-text slides..." disabled, img slides unchanged in replace_service_item & __recalc...
193
193
@patch(u'openlp.core.ui.lib.listpreviewwidget.ListPreviewWidget.resizeRowsToContents')
194
194
@patch(u'openlp.core.ui.lib.listpreviewwidget.ListPreviewWidget.setRowHeight')
195
def replace_recalculate_layout_test_img_max(self, mocked_setRowHeight, mocked_resizeRowsToContents):
195
def test_replace_recalculate_layout_img_max(self, mocked_setRowHeight, mocked_resizeRowsToContents):
197
197
Test if "Max height for non-text slides..." enabled, img slides resized in replace_service_item & __recalc...
228
228
@patch(u'openlp.core.ui.lib.listpreviewwidget.ListPreviewWidget.resizeRowsToContents')
229
229
@patch(u'openlp.core.ui.lib.listpreviewwidget.ListPreviewWidget.setRowHeight')
230
def test_replace_recalculate_layout_img_auto(self, mocked_setRowHeight, mocked_resizeRowsToContents):
232
Test if "Max height for non-text slides..." auto, img slides resized in replace_service_item & __recalc...
234
# GIVEN: A setting to adjust "Max height for non-text slides in slide controller",
235
# an image ServiceItem and a ListPreviewWidget.
237
# Mock Settings().value('advanced/slide max height')
238
self.mocked_Settings_obj.value.return_value = -4
239
# Mock self.viewport().width()
240
self.mocked_viewport_obj.width.return_value = 200
241
self.mocked_viewport_obj.height.return_value = 600
242
# Mock image service item
243
service_item = MagicMock()
244
service_item.is_text.return_value = False
245
service_item.is_capable.return_value = False
246
service_item.get_frames.return_value = [{'title': None, 'path': None, 'image': None},
247
{'title': None, 'path': None, 'image': None}]
248
# init ListPreviewWidget and load service item
249
list_preview_widget = ListPreviewWidget(None, 1)
250
list_preview_widget.replace_service_item(service_item, 200, 0)
251
# Change viewport width before forcing a resize
252
self.mocked_viewport_obj.width.return_value = 400
254
# WHEN: __recalculate_layout() is called (via screen_size_changed)
255
list_preview_widget.screen_size_changed(1)
256
self.mocked_viewport_obj.height.return_value = 200
257
list_preview_widget.screen_size_changed(1)
259
# THEN: resizeRowsToContents() should not be called, while setRowHeight() should be called
260
# twice for each slide.
261
self.assertEquals(mocked_resizeRowsToContents.call_count, 0, 'Should not be called')
262
self.assertEquals(mocked_setRowHeight.call_count, 6, 'Should be called 3 times for each slide')
263
calls = [call(0, 100), call(1, 100), call(0, 150), call(1, 150), call(0, 100), call(1, 100)]
264
mocked_setRowHeight.assert_has_calls(calls)
266
@patch(u'openlp.core.ui.lib.listpreviewwidget.ListPreviewWidget.resizeRowsToContents')
267
@patch(u'openlp.core.ui.lib.listpreviewwidget.ListPreviewWidget.setRowHeight')
230
268
@patch(u'openlp.core.ui.lib.listpreviewwidget.ListPreviewWidget.cellWidget')
231
def row_resized_test_text(self, mocked_cellWidget, mocked_setRowHeight, mocked_resizeRowsToContents):
269
def test_row_resized_text(self, mocked_cellWidget, mocked_setRowHeight, mocked_resizeRowsToContents):
233
271
Test if "Max height for non-text slides..." enabled, text-based slides not affected in row_resized.
262
300
@patch(u'openlp.core.ui.lib.listpreviewwidget.ListPreviewWidget.resizeRowsToContents')
263
301
@patch(u'openlp.core.ui.lib.listpreviewwidget.ListPreviewWidget.setRowHeight')
264
302
@patch(u'openlp.core.ui.lib.listpreviewwidget.ListPreviewWidget.cellWidget')
265
def row_resized_test_img(self, mocked_cellWidget, mocked_setRowHeight, mocked_resizeRowsToContents):
303
def test_row_resized_img(self, mocked_cellWidget, mocked_setRowHeight, mocked_resizeRowsToContents):
267
305
Test if "Max height for non-text slides..." disabled, image-based slides not affected in row_resized.
299
337
@patch(u'openlp.core.ui.lib.listpreviewwidget.ListPreviewWidget.resizeRowsToContents')
300
338
@patch(u'openlp.core.ui.lib.listpreviewwidget.ListPreviewWidget.setRowHeight')
301
339
@patch(u'openlp.core.ui.lib.listpreviewwidget.ListPreviewWidget.cellWidget')
302
def row_resized_test_img_max(self, mocked_cellWidget, mocked_setRowHeight, mocked_resizeRowsToContents):
340
def test_row_resized_img_max(self, mocked_cellWidget, mocked_setRowHeight, mocked_resizeRowsToContents):
304
342
Test if "Max height for non-text slides..." enabled, image-based slides are scaled in row_resized.
331
369
# THEN: self.cellWidget(row, 0).children()[1].setMaximumWidth() should be called
332
370
mocked_cellWidget_child.setMaximumWidth.assert_called_once_with(150)
372
@patch(u'openlp.core.ui.lib.listpreviewwidget.ListPreviewWidget.resizeRowsToContents')
373
@patch(u'openlp.core.ui.lib.listpreviewwidget.ListPreviewWidget.setRowHeight')
374
@patch(u'openlp.core.ui.lib.listpreviewwidget.ListPreviewWidget.cellWidget')
375
def test_row_resized_setting_changed(self, mocked_cellWidget, mocked_setRowHeight, mocked_resizeRowsToContents):
377
Test if "Max height for non-text slides..." enabled while item live, program doesn't crash on row_resized.
379
# GIVEN: A setting to adjust "Max height for non-text slides in slide controller",
380
# an image ServiceItem and a ListPreviewWidget.
382
# Mock Settings().value('advanced/slide max height')
383
self.mocked_Settings_obj.value.return_value = 0
384
# Mock self.viewport().width()
385
self.mocked_viewport_obj.width.return_value = 200
386
# Mock image service item
387
service_item = MagicMock()
388
service_item.is_text.return_value = False
389
service_item.is_capable.return_value = False
390
service_item.get_frames.return_value = [{'title': None, 'path': None, 'image': None},
391
{'title': None, 'path': None, 'image': None}]
392
# Mock self.cellWidget().children()
393
mocked_cellWidget_obj = MagicMock()
394
mocked_cellWidget_obj.children.return_value = None
395
mocked_cellWidget.return_value = mocked_cellWidget_obj
396
# init ListPreviewWidget and load service item
397
list_preview_widget = ListPreviewWidget(None, 1)
398
list_preview_widget.replace_service_item(service_item, 200, 0)
399
self.mocked_Settings_obj.value.return_value = 100
401
# WHEN: row_resized() is called
402
list_preview_widget.row_resized(0, 100, 150)
404
# THEN: self.cellWidget(row, 0).children()[1].setMaximumWidth() should fail
405
self.assertRaises(Exception)
334
407
@patch(u'openlp.core.ui.lib.listpreviewwidget.ListPreviewWidget.selectRow')
335
408
@patch(u'openlp.core.ui.lib.listpreviewwidget.ListPreviewWidget.scrollToItem')
336
409
@patch(u'openlp.core.ui.lib.listpreviewwidget.ListPreviewWidget.item')
337
410
@patch(u'openlp.core.ui.lib.listpreviewwidget.ListPreviewWidget.slide_count')
338
def autoscroll_test_setting_invalid(self, mocked_slide_count, mocked_item, mocked_scrollToItem, mocked_selectRow):
411
def test_autoscroll_setting_invalid(self, mocked_slide_count, mocked_item, mocked_scrollToItem, mocked_selectRow):
340
413
Test if 'advanced/autoscrolling' setting None or invalid, that no autoscrolling occurs on change_slide().
371
444
@patch(u'openlp.core.ui.lib.listpreviewwidget.ListPreviewWidget.scrollToItem')
372
445
@patch(u'openlp.core.ui.lib.listpreviewwidget.ListPreviewWidget.item')
373
446
@patch(u'openlp.core.ui.lib.listpreviewwidget.ListPreviewWidget.slide_count')
374
def autoscroll_test_dist_bounds(self, mocked_slide_count, mocked_item, mocked_scrollToItem, mocked_selectRow):
447
def test_autoscroll_dist_bounds(self, mocked_slide_count, mocked_item, mocked_scrollToItem, mocked_selectRow):
376
449
Test if 'advanced/autoscrolling' setting asks to scroll beyond list bounds, that it does not beyond.
401
474
@patch(u'openlp.core.ui.lib.listpreviewwidget.ListPreviewWidget.scrollToItem')
402
475
@patch(u'openlp.core.ui.lib.listpreviewwidget.ListPreviewWidget.item')
403
476
@patch(u'openlp.core.ui.lib.listpreviewwidget.ListPreviewWidget.slide_count')
404
def autoscroll_test_normal(self, mocked_slide_count, mocked_item, mocked_scrollToItem, mocked_selectRow):
477
def test_autoscroll_normal(self, mocked_slide_count, mocked_item, mocked_scrollToItem, mocked_selectRow):
406
479
Test if 'advanced/autoscrolling' setting valid, autoscrolling called as expected.