diff options
author | Jean Felder <jfelder@src.gnome.org> | 2020-03-16 21:21:15 +0100 |
---|---|---|
committer | Jean Felder <jfelder@src.gnome.org> | 2020-03-16 23:58:54 +0100 |
commit | 9f50957ea17f116fafc44be5e26c08fc3c1179b0 (patch) | |
tree | 41cc571a4de09ca453e22016d749852589471ec5 /tests | |
parent | f3248b7bd5cf99950a60ecedb45d5ef85b9af4eb (diff) | |
download | pygobject-9f50957ea17f116fafc44be5e26c08fc3c1179b0.tar.gz |
tests: Add a Gtk4 test for drag and drop operations
Diffstat (limited to 'tests')
-rw-r--r-- | tests/test_overrides_gtk.py | 41 |
1 files changed, 28 insertions, 13 deletions
diff --git a/tests/test_overrides_gtk.py b/tests/test_overrides_gtk.py index d0c6442e..4cb2c748 100644 --- a/tests/test_overrides_gtk.py +++ b/tests/test_overrides_gtk.py @@ -666,6 +666,7 @@ class TestGtk(unittest.TestCase): sb = sw.get_vscrollbar() self.assertEqual(sw.get_vadjustment(), sb.get_adjustment()) + @unittest.skipIf(Gtk_version == "4.0", "not in gtk4") def test_widget_drag_methods(self): widget = Gtk.Button() @@ -683,10 +684,8 @@ class TestGtk(unittest.TestCase): widget.drag_dest_set_track_motion(True) widget.drag_dest_get_target_list() widget.drag_dest_set_target_list(None) - if GTK4: - widget.drag_dest_set_target_list(Gdk.ContentFormats.new([])) - else: - widget.drag_dest_set_target_list(Gtk.TargetList.new([Gtk.TargetEntry.new('test', 0, 0)])) + + widget.drag_dest_set_target_list(Gtk.TargetList.new([Gtk.TargetEntry.new('test', 0, 0)])) widget.drag_dest_unset() widget.drag_highlight() @@ -698,23 +697,39 @@ class TestGtk(unittest.TestCase): widget.drag_source_add_text_targets() widget.drag_source_add_uri_targets() widget.drag_source_set_icon_name("_About") - if not GTK4: - widget.drag_source_set_icon_pixbuf(GdkPixbuf.Pixbuf()) - widget.drag_source_set_icon_stock(Gtk.STOCK_ABOUT) + widget.drag_source_set_icon_pixbuf(GdkPixbuf.Pixbuf()) + widget.drag_source_set_icon_stock(Gtk.STOCK_ABOUT) widget.drag_source_get_target_list() widget.drag_source_set_target_list(None) - if GTK4: - widget.drag_source_set_target_list(Gdk.ContentFormats.new([])) - else: - widget.drag_source_set_target_list(Gtk.TargetList.new([Gtk.TargetEntry.new('test', 0, 0)])) + widget.drag_source_set_target_list(Gtk.TargetList.new([Gtk.TargetEntry.new('test', 0, 0)])) widget.drag_source_unset() # these methods cannot be called because they require a valid drag on # a real GdkWindow. So we only check that they exist and are callable. - if not GTK4: - self.assertTrue(hasattr(widget, 'drag_dest_set_proxy')) + self.assertTrue(hasattr(widget, 'drag_dest_set_proxy')) self.assertTrue(hasattr(widget, 'drag_get_data')) + @unittest.skipIf(Gtk_version != "4.0", "gtk4 only") + def test_widget_drag_methods_gtk4(self): + widget = Gtk.Button() + widget.drag_check_threshold(0, 0, 0, 0) + + # drag source + drag_source = Gtk.DragSource() + content = Gdk.ContentProvider.new_for_value("data") + drag_source.set_content(content) + drag_source.set_actions(Gdk.DragAction.COPY) + image = Gtk.Image.new_from_icon_name("dialog-warning") + drag_source.set_icon(image.get_paintable(), 0, 0) + widget.add_controller(drag_source) + + # drop target + drop_target = Gtk.DropTarget.new(Gdk.ContentFormats.new([]), Gdk.DragAction.COPY) + widget.add_controller(drop_target) + + widget.remove_controller(drag_source) + widget.remove_controller(drop_target) + @unittest.skipIf(sys.platform == "darwin", "crashes") @unittest.skipIf(GTK4, "uses lots of gtk3 only api") def test_drag_target_list_gtk3(self): |