10 class TestIcon(unittest.TestCase):
12 self.assertEquals(gio.FileIcon(gio.File('foo.png')),
13 gio.FileIcon(gio.File('foo.png')))
14 self.assertEquals(gio.ThemedIcon('foo'),
15 gio.ThemedIcon('foo'))
17 self.assertNotEqual(gio.FileIcon(gio.File('foo.png')),
18 gio.FileIcon(gio.File('bar.png')))
19 self.assertNotEquals(gio.ThemedIcon('foo'),
20 gio.ThemedIcon('bar'))
21 self.assertNotEquals(gio.FileIcon(gio.File('foo.png')),
22 gio.ThemedIcon('foo'))
25 self.assertEquals(hash(gio.FileIcon(gio.File('foo.png'))),
26 hash(gio.FileIcon(gio.File('foo.png'))))
27 self.assertEquals(hash(gio.ThemedIcon('foo')),
28 hash(gio.ThemedIcon('foo')))
30 class TestLoadableIcon(unittest.TestCase):
32 self.file = open('temp.svg', 'w')
33 self.svg = ('<?xml version="1.0" encoding="UTF-8" standalone="no"?>'
34 '<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.0//EN" '
35 '"http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd">'
36 '<svg width="32" height="32"/>')
37 self.file.write(self.svg)
39 self.icon = gio.FileIcon(gio.File('temp.svg'))
42 if os.path.exists('temp.svg'):
46 stream, type = self.icon.load()
48 self.assert_(isinstance(stream, gio.InputStream))
49 self.assertEquals(self.svg, stream.read())
53 def test_load_async(self):
54 def callback(icon, result):
56 stream, type = icon.load_finish(result)
57 self.assert_(isinstance(stream, gio.InputStream))
58 self.assertEquals(self.svg, stream.read())
63 self.icon.load_async(callback)
65 loop = glib.MainLoop()
68 class TestFileIcon(unittest.TestCase):
69 def test_constructor(self):
70 file = gio.File('foo.png')
71 self.assert_(file is gio.FileIcon(file).get_file())
73 class TestThemedIcon(unittest.TestCase):
75 self.icon = gio.ThemedIcon("open")
77 def test_constructor(self):
78 have_use_default_fallbacks = ('use_default_fallbacks'
79 in gio.ThemedIcon.props.__members__)
80 icon = gio.ThemedIcon('foo')
81 self.assertEquals(['foo'], icon.props.names)
82 self.assert_(not have_use_default_fallbacks
83 or not icon.props.use_default_fallbacks)
85 icon = gio.ThemedIcon(['foo', 'bar', 'baz'])
86 self.assertEquals(['foo', 'bar', 'baz'], icon.props.names)
87 self.assert_(not have_use_default_fallbacks
88 or not icon.props.use_default_fallbacks)
90 icon = gio.ThemedIcon('xxx-yyy-zzz', True)
91 self.assertEquals(['xxx-yyy-zzz', 'xxx-yyy', 'xxx'], icon.props.names)
92 self.assert_(not have_use_default_fallbacks
93 or icon.props.use_default_fallbacks)
95 def test_constructor_illegals(self):
96 self.assertRaises(TypeError, lambda: gio.ThemedIcon(42))
97 self.assertRaises(TypeError, lambda: gio.ThemedIcon(['foo', 42, 'bar']))
99 def test_get_names(self):
100 self.assertEquals(self.icon.get_names(), ['open'])
102 def test_append_name(self):
103 self.assertEquals(self.icon.get_names(), ['open'])
104 self.icon.append_name('close')
105 self.assertEquals(self.icon.get_names(), ['open', 'close'])
107 class TestEmblemedIcon(unittest.TestCase):
108 def test_emblemed_icon(self):
109 icon = gio.FileIcon(gio.File('foo.png'))
110 emblem = gio.Emblem(icon)
111 emblemed = gio.EmblemedIcon(icon, emblem)
112 self.assertEquals(emblemed.get_emblems()[0], emblem)