Imported Upstream version 3.7.3
[platform/upstream/python-gobject.git] / tests / test_atoms.py
1 import unittest
2
3 try:
4     from gi.repository import Atk, Gdk, Gtk
5     (Atk, Gdk)  # pyflakes
6 except:
7     Gdk = None
8
9
10 @unittest.skipUnless(Gdk, 'Gdk not available')
11 class TestGdkAtom(unittest.TestCase):
12     def test_create(self):
13         atom = Gdk.Atom.intern('my_string', False)
14         self.assertEqual(atom.name(), 'my_string')
15
16     def test_str(self):
17         atom = Gdk.Atom.intern('my_string', False)
18         self.assertEqual(str(atom), 'my_string')
19
20         self.assertEqual(str(Gdk.SELECTION_CLIPBOARD), 'CLIPBOARD')
21
22     def test_repr(self):
23         atom = Gdk.Atom.intern('my_string', False)
24         self.assertEqual(repr(atom), 'Gdk.Atom<my_string>')
25
26         self.assertEqual(repr(Gdk.SELECTION_CLIPBOARD), 'Gdk.Atom<CLIPBOARD>')
27
28     def test_in_single(self):
29         a_selection = Gdk.Atom.intern('test_clipboard', False)
30         clipboard = Gtk.Clipboard.get(a_selection)
31         clipboard.set_text('hello', 5)
32
33         # needs a Gdk.Atom, not a string
34         self.assertRaises(TypeError, Gtk.Clipboard.get, 'CLIPBOARD')
35
36     def test_in_array(self):
37         a_plain = Gdk.Atom.intern('text/plain', False)
38         a_html = Gdk.Atom.intern('text/html', False)
39         a_jpeg = Gdk.Atom.intern('image/jpeg', False)
40
41         self.assertFalse(Gtk.targets_include_text([]))
42         self.assertTrue(Gtk.targets_include_text([a_plain, a_html]))
43         self.assertFalse(Gtk.targets_include_text([a_jpeg]))
44         self.assertTrue(Gtk.targets_include_text([a_jpeg, a_plain]))
45
46         self.assertFalse(Gtk.targets_include_image([], False))
47         self.assertFalse(Gtk.targets_include_image([a_plain, a_html], False))
48         self.assertTrue(Gtk.targets_include_image([a_jpeg], False))
49         self.assertTrue(Gtk.targets_include_image([a_jpeg, a_plain], False))
50
51     def test_out_array(self):
52         a_selection = Gdk.Atom.intern('my_clipboard', False)
53         clipboard = Gtk.Clipboard.get(a_selection)
54
55         # empty
56         (res, targets) = clipboard.wait_for_targets()
57         self.assertEqual(res, False)
58         self.assertEqual(targets, [])
59
60         # text
61         clipboard.set_text('hello', 5)
62         (res, targets) = clipboard.wait_for_targets()
63         self.assertEqual(res, True)
64         self.assertNotEqual(targets, [])
65         self.assertEqual(type(targets[0]), Gdk.Atom)
66         names = [t.name() for t in targets]
67         self.assertFalse(None in names, names)
68         self.assertTrue('TEXT' in names, names)
69
70     def test_out_glist(self):
71         display = Gdk.Display.get_default()
72         dm = display.get_device_manager()
73         device = dm.get_client_pointer()
74         axes = device.list_axes()
75         axes_names = [atom.name() for atom in axes]
76         self.assertNotEqual(axes_names, [])
77         self.assertTrue('Rel X' in axes_names)