Beispiel #1
0
    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)
Beispiel #2
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
Beispiel #3
0
    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
Beispiel #4
0
    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
Beispiel #5
0
    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')
Beispiel #6
0
	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')
Beispiel #7
0
    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"))
Beispiel #8
0
	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)