def testTaskListTreeView(self): plugin = PluginManager.load_plugin('tasklist') notebook = self.setUpNotebook(content=tests.FULL_NOTEBOOK) notebook.index.check_and_update() from zim.plugins.tasklist.gui import TaskListTreeView view = TasksView.new_from_index(notebook.index) opener = tests.MockObject() treeview = TaskListTreeView(view, opener, task_labels=['TODO', 'FIXME']) menu = treeview.get_popup() # Check these do not cause errors - how to verify state ? tests.gtk_activate_menu_item(menu, _("Expand _All")) tests.gtk_activate_menu_item(menu, _("_Collapse All")) # Copy tasklist -> csv from zim.gui.clipboard import Clipboard tests.gtk_activate_menu_item(menu, _('_Copy')) text = Clipboard.get_text() lines = text.splitlines() self.assertTrue(len(lines) > 10) self.assertTrue(len(lines[0].split(',')) > 3) self.assertFalse(any('<span' in l for l in lines)) # make sure encoding is removed # Test tags tags = treeview.get_tags() for tag in ('home', 'FIXME', '__no_tags__', 'tags'): self.assertIn(tag, tags) self.assertGreater(tags[tag], 0)
def testTaskListTreeView(self): klass = PluginManager.get_plugin_class('tasklist') plugin = klass() notebook = tests.new_notebook() plugin.extend(notebook.index) index_ext = plugin.get_extension(IndexExtension) self.assertIsNotNone(index_ext) notebook.index.flush() notebook.index.update() from zim.plugins.tasklist import TaskListTreeView opener = tests.MockObject() treeview = TaskListTreeView(index_ext, opener) menu = treeview.get_popup() # Check these do not cause errors - how to verify state ? tests.gtk_activate_menu_item(menu, _("Expand _All")) tests.gtk_activate_menu_item(menu, _("_Collapse All")) # Copy tasklist -> csv from zim.gui.clipboard import Clipboard tests.gtk_activate_menu_item(menu, 'gtk-copy') text = Clipboard.get_text() lines = text.splitlines() self.assertTrue(len(lines) > 10) self.assertTrue(len(lines[0].split(',')) > 3) self.assertFalse(any('<span' in l for l in lines)) # make sure encoding is removed
def testTaskListTreeView(self): klass = zim.plugins.get_plugin_class('tasklist') plugin = klass() notebook = tests.new_notebook() plugin.extend(notebook.index) index_ext = plugin.get_extension(IndexExtension) self.assertIsNotNone(index_ext) notebook.index.flush() notebook.index.update() from zim.plugins.tasklist import TaskListTreeView opener = tests.MockObject() treeview = TaskListTreeView(index_ext, opener) menu = treeview.get_popup() # Check these do not cause errors - how to verify state ? tests.gtk_activate_menu_item(menu, _("Expand _All")) tests.gtk_activate_menu_item(menu, _("_Collapse All")) # Copy tasklist -> csv from zim.gui.clipboard import Clipboard tests.gtk_activate_menu_item(menu, 'gtk-copy') text = Clipboard.get_text() lines = text.splitlines() self.assertTrue(len(lines) > 10) self.assertTrue(len(lines[0].split(',')) > 3) self.assertFalse(any('<span' in l for l in lines)) # make sure encoding is removed
def testTaskListTreeView(self): klass = zim.plugins.get_plugin("tasklist") ui = MockUI() plugin = klass(ui) ui.notebook.index.flush() ui.notebook.index.update() from zim.plugins.tasklist import TaskListTreeView treeview = TaskListTreeView(ui, plugin, filter_actionable=False) menu = treeview.get_popup() # Check these do not cause errors - how to verify state ? tests.gtk_activate_menu_item(menu, _("Expand _All")) tests.gtk_activate_menu_item(menu, _("_Collapse All")) # Copy tasklist -> csv from zim.gui.clipboard import Clipboard tests.gtk_activate_menu_item(menu, "gtk-copy") text = Clipboard.get_text() lines = text.splitlines() self.assertTrue(len(lines) > 10) self.assertTrue(len(lines[0].split(",")) > 3) self.assertFalse(any("<span" in l for l in lines)) # make sure encoding is removed
def testContextMenu(self): menu = self.treeview.get_popup() # Check these do not cause errors - how to verify state ? tests.gtk_activate_menu_item(menu, _("Expand _All")) tests.gtk_activate_menu_item(menu, _("_Collapse All")) # Copy item tests.gtk_activate_menu_item(menu, 'gtk-copy') self.assertEqual(Clipboard.get_text(), 'Test')
def testContextMenuExpandCollaps(self): menu = self.treeview.get_popup() # Check these do not cause errors - how to verify state ? tests.gtk_activate_menu_item(menu, _("Expand _All")) tests.gtk_activate_menu_item(menu, _("_Collapse All"))
def runTest(self): # Create some custom entries - should NOT appear in menu manager = ApplicationManager() entry_text = manager.create('text/plain', 'Test_Entry_Text', 'test_text 123') entry_url = manager.create('x-scheme-handler/ssh', 'Test_Entry_SSH', 'test_ssh %u') for entry in (entry_text, entry_url): self.assertTrue(entry.file.exists()) self.assertEqual(manager.get_application(entry.key), entry) self.assertTrue(entry['Desktop Entry']['NoDisplay']) # do not show custom items in menus # Check menu for obj, mimetype, test_entry in ( (File('README.txt'), 'text/plain', entry_text), ('ssh://host', 'x-scheme-handler/ssh', entry_url), ): manager.set_default_application(mimetype, test_entry) menu = OpenWithMenu(None, obj) self.assertEqual(menu.mimetype, mimetype) for item in menu.get_children(): if hasattr(item, 'entry'): self.assertFalse(item.entry['Desktop Entry'].get('NoDisplay', False), msg='Entry %s should not be in menu' % item.entry) def test_configure_applications_dialog(dialog): self.assertIsInstance(dialog, CustomizeOpenWithDialog) # test default displays as set above active = dialog.default_combo.get_active() self.assertEqual(active, test_entry) self.assertEqual( manager.get_default_application(mimetype).key, test_entry.key ) # test changing to system default and back last = len(dialog.default_combo.get_model()) - 1 dialog.default_combo.set_active(last) active = dialog.default_combo.get_active() self.assertIsInstance(active, SystemDefault) default = manager.get_default_application(mimetype) self.assertTrue(default is None or default.key != test_entry.key) dialog.default_combo.set_active(0) active = dialog.default_combo.get_active() self.assertEqual(active, test_entry) self.assertEqual( manager.get_default_application(mimetype).key, test_entry.key ) # trigger new app dialog and check new default set dialog.on_add_application(None) active = dialog.default_combo.get_active() self.assertEqual(active.name, 'Test New App Dialog') self.assertEqual( manager.get_default_application(mimetype).key, active.key ) def test_new_app_dialog(dialog): self.assertIsInstance(dialog, AddApplicationDialog) dialog.form['name'] = 'Test New App Dialog' dialog.form['exec'] = 'Test 123' dialog.form['default'] = True entry = dialog.assert_response_ok() self.assertTrue(entry.file.exists()) self.assertTrue(entry.nodisplay) # implied by default = True manager = ApplicationManager() self.assertEqual(manager.get_default_application(mimetype), entry) with tests.DialogContext( test_configure_applications_dialog, test_new_app_dialog ): tests.gtk_activate_menu_item(menu, menu.CUSTOMIZE)
def runTest(self): # Create some custom entries - should NOT appear in menu manager = ApplicationManager() entry_text = manager.create('text/plain', 'Test_Entry_Text', 'test_text 123') entry_url = manager.create('x-scheme-handler/ssh', 'Test_Entry_SSH', 'test_ssh %u') for entry in (entry_text, entry_url): self.assertTrue(entry.file.exists()) self.assertEqual(manager.get_application(entry.key), entry) self.assertTrue(entry['Desktop Entry']['NoDisplay']) # do not show custom items in menus # Mock main ui object ui = tests.MockObject() ui.windows = [] # Check menu for obj, mimetype, test_entry in ( (File('README.txt'), 'text/plain', entry_text), ('ssh://host', 'x-scheme-handler/ssh', entry_url), ): manager.set_default_application(mimetype, test_entry) menu = OpenWithMenu(ui, obj) self.assertEqual(menu.mimetype, mimetype) for item in menu.get_children(): if hasattr(item, 'entry'): self.assertFalse(item.entry['Desktop Entry'].get('NoDisplay', False), msg='Entry %s should not be in menu' % item.entry) def test_configure_applications_dialog(dialog): self.assertIsInstance(dialog, CustomizeOpenWithDialog) # test default displays as set above active = dialog.default_combo.get_active() self.assertEqual(active, test_entry) self.assertEqual( manager.get_default_application(mimetype).key, test_entry.key ) # test changing to system default and back last = len(dialog.default_combo.get_model()) - 1 dialog.default_combo.set_active(last) active = dialog.default_combo.get_active() self.assertIsInstance(active, SystemDefault) default = manager.get_default_application(mimetype) self.assertTrue(default is None or default.key != test_entry.key) dialog.default_combo.set_active(0) active = dialog.default_combo.get_active() self.assertEqual(active, test_entry) self.assertEqual( manager.get_default_application(mimetype).key, test_entry.key ) # trigger new app dialog and check new default set dialog.on_add_application(None) active = dialog.default_combo.get_active() self.assertEqual(active.name, 'Test New App Dialog') self.assertEqual( manager.get_default_application(mimetype).key, active.key ) def test_new_app_dialog(dialog): self.assertIsInstance(dialog, AddApplicationDialog) dialog.form['name'] = 'Test New App Dialog' dialog.form['exec'] = 'Test 123' dialog.form['default'] = True entry = dialog.assert_response_ok() self.assertTrue(entry.file.exists()) self.assertTrue(entry.nodisplay) # implied by default = True manager = ApplicationManager() self.assertEqual(manager.get_default_application(mimetype), entry) with tests.DialogContext( test_configure_applications_dialog, test_new_app_dialog ): tests.gtk_activate_menu_item(menu, menu.CUSTOMIZE)