summaryrefslogtreecommitdiff
path: root/tests/test_overrides_gdk.py
diff options
context:
space:
mode:
authorMartin Pitt <martinpitt@gnome.org>2012-09-03 07:57:01 +0200
committerMartin Pitt <martinpitt@gnome.org>2012-09-03 07:57:01 +0200
commit2d8f48f4ff56bb75985136452b50b75895258608 (patch)
tree43f58482f79497cc2812c6771ba320dbfaaf208f /tests/test_overrides_gdk.py
parent1223358e2c558dd7ac3300126f989054ec5a5b3f (diff)
downloadpygobject-2d8f48f4ff56bb75985136452b50b75895258608.tar.gz
Split test_overrides.py
Split the huge test_overrides.py into separate files for gdk, gtk, gio, glib, and pango. Further split the monolithic classes for Gtk and Gio into several ones. https://bugzilla.gnome.org/show_bug.cgi?id=683188
Diffstat (limited to 'tests/test_overrides_gdk.py')
-rw-r--r--tests/test_overrides_gdk.py119
1 files changed, 119 insertions, 0 deletions
diff --git a/tests/test_overrides_gdk.py b/tests/test_overrides_gdk.py
new file mode 100644
index 00000000..070acb85
--- /dev/null
+++ b/tests/test_overrides_gdk.py
@@ -0,0 +1,119 @@
+# -*- Mode: Python; py-indent-offset: 4 -*-
+# vim: tabstop=4 shiftwidth=4 expandtab
+
+import unittest
+
+import gi.overrides
+
+try:
+ from gi.repository import Gdk, GdkPixbuf, Gtk
+ Gdk # pyflakes
+except ImportError:
+ Gdk = None
+
+
+@unittest.skipUnless(Gdk, 'Gdk not available')
+class TestGdk(unittest.TestCase):
+ def test_constructor(self):
+ attribute = Gdk.WindowAttr()
+ attribute.window_type = Gdk.WindowType.CHILD
+ attributes_mask = Gdk.WindowAttributesType.X | \
+ Gdk.WindowAttributesType.Y
+ window = Gdk.Window(None, attribute, attributes_mask)
+ self.assertEqual(window.get_window_type(), Gdk.WindowType.CHILD)
+
+ def test_color(self):
+ color = Gdk.Color(100, 200, 300)
+ self.assertEqual(color.red, 100)
+ self.assertEqual(color.green, 200)
+ self.assertEqual(color.blue, 300)
+ self.assertEqual(color, Gdk.Color(100, 200, 300))
+ self.assertNotEqual(color, Gdk.Color(1, 2, 3))
+
+ def test_color_floats(self):
+ self.assertEqual(Gdk.Color(13107, 21845, 65535),
+ Gdk.Color.from_floats(0.2, 1.0 / 3.0, 1.0))
+
+ self.assertEqual(Gdk.Color(13107, 21845, 65535).to_floats(),
+ (0.2, 1.0 / 3.0, 1.0))
+
+ self.assertEqual(Gdk.RGBA(0.2, 1.0 / 3.0, 1.0, 0.5).to_color(),
+ Gdk.Color.from_floats(0.2, 1.0 / 3.0, 1.0))
+
+ self.assertEqual(Gdk.RGBA.from_color(Gdk.Color(13107, 21845, 65535)),
+ Gdk.RGBA(0.2, 1.0 / 3.0, 1.0, 1.0))
+
+ def test_rgba(self):
+ self.assertEqual(Gdk.RGBA, gi.overrides.Gdk.RGBA)
+ rgba = Gdk.RGBA(0.1, 0.2, 0.3, 0.4)
+ self.assertEqual(rgba, Gdk.RGBA(0.1, 0.2, 0.3, 0.4))
+ self.assertNotEqual(rgba, Gdk.RGBA(0.0, 0.2, 0.3, 0.4))
+ self.assertEqual(rgba.red, 0.1)
+ self.assertEqual(rgba.green, 0.2)
+ self.assertEqual(rgba.blue, 0.3)
+ self.assertEqual(rgba.alpha, 0.4)
+ rgba.green = 0.9
+ self.assertEqual(rgba.green, 0.9)
+
+ # Iterator/tuple convsersion
+ self.assertEqual(tuple(Gdk.RGBA(0.1, 0.2, 0.3, 0.4)),
+ (0.1, 0.2, 0.3, 0.4))
+
+ def test_event(self):
+ event = Gdk.Event.new(Gdk.EventType.CONFIGURE)
+ self.assertEqual(event.type, Gdk.EventType.CONFIGURE)
+ self.assertEqual(event.send_event, 0)
+
+ event = Gdk.Event.new(Gdk.EventType.DRAG_MOTION)
+ event.x_root, event.y_root = 0, 5
+ self.assertEqual(event.x_root, 0)
+ self.assertEqual(event.y_root, 5)
+
+ event = Gdk.Event()
+ event.type = Gdk.EventType.SCROLL
+ self.assertRaises(AttributeError, lambda: getattr(event, 'foo_bar'))
+
+ def test_event_structures(self):
+ def button_press_cb(button, event):
+ self.assertTrue(isinstance(event, Gdk.EventButton))
+ self.assertTrue(event.type == Gdk.EventType.BUTTON_PRESS)
+ self.assertEqual(event.send_event, 0)
+ self.assertEqual(event.get_state(), Gdk.ModifierType.CONTROL_MASK)
+ self.assertEqual(event.get_root_coords(), (2, 5))
+
+ event.time = 12345
+ self.assertEqual(event.get_time(), 12345)
+
+ w = Gtk.Window()
+ b = Gtk.Button()
+ b.connect('button-press-event', button_press_cb)
+ w.add(b)
+ w.show_all()
+ Gdk.test_simulate_button(b.get_window(),
+ 2, 5,
+ 0,
+ Gdk.ModifierType.CONTROL_MASK,
+ Gdk.EventType.BUTTON_PRESS)
+
+ def test_cursor(self):
+ self.assertEqual(Gdk.Cursor, gi.overrides.Gdk.Cursor)
+ c = Gdk.Cursor(Gdk.CursorType.WATCH)
+ self.assertNotEqual(c, None)
+ c = Gdk.Cursor(cursor_type=Gdk.CursorType.WATCH)
+ self.assertNotEqual(c, None)
+
+ display_manager = Gdk.DisplayManager.get()
+ display = display_manager.get_default_display()
+
+ test_pixbuf = GdkPixbuf.Pixbuf.new(GdkPixbuf.Colorspace.RGB,
+ False,
+ 8,
+ 5,
+ 10)
+
+ c = Gdk.Cursor(display,
+ test_pixbuf,
+ y=0, x=0)
+
+ self.assertNotEqual(c, None)
+ self.assertRaises(ValueError, Gdk.Cursor, 1, 2, 3)