summaryrefslogtreecommitdiffstats
path: root/tests
diff options
context:
space:
mode:
authorPaul Pogonyshev <pogonyshev@gmx.net>2008-08-09 11:58:21 +0000
committerPaul Pogonyshev <paulp@src.gnome.org>2008-08-09 11:58:21 +0000
commit1a20d6e43a3cc24feb7d4d5573face04b6d2492a (patch)
tree288e20c51f8c05f3098274e9ef62514bce6437fc /tests
parentefed0743ab6e395e3d689455e7897240ec8b0e45 (diff)
downloadpygobject-1a20d6e43a3cc24feb7d4d5573face04b6d2492a.tar.gz
pygobject-1a20d6e43a3cc24feb7d4d5573face04b6d2492a.tar.xz
pygobject-1a20d6e43a3cc24feb7d4d5573face04b6d2492a.zip
Bug 546135 – GIcon and implementations improvements
2008-08-09 Paul Pogonyshev <pogonyshev@gmx.net> Bug 546135 – GIcon and implementations improvements * gio/gio.defs (gio.LoadableIcon.load) (gio.LoadableIcon.load_async, gio.LoadableIcon.load_finish): Document. * gio/Makefile.am: * gio/gicon.override: New file: parts of 'gio.override', three methods of gio.LoadableIcon and gio.ThemedIcon constructor. * gio/gio.override: Move over all icon-related overrides to 'gicon.override'. * tests/Makefile.am: * tests/test_gicon.py: New file: parts of 'test_gio.py' and several new gio.Icon tests. * tests/test_gio.py (TestThemedIcon): Move over to 'test_gicon.py'. svn path=/trunk/; revision=931
Diffstat (limited to 'tests')
-rw-r--r--tests/Makefile.am1
-rw-r--r--tests/test_gicon.py94
-rw-r--r--tests/test_gio.py13
3 files changed, 95 insertions, 13 deletions
diff --git a/tests/Makefile.am b/tests/Makefile.am
index 9f9ba6f..667506c 100644
--- a/tests/Makefile.am
+++ b/tests/Makefile.am
@@ -24,6 +24,7 @@ testhelper_la_SOURCES = \
tests = \
test_conversion.py \
test_enum.py \
+ test_gicon.py \
test_gio.py \
test_gobject.py \
test_gtype.py \
diff --git a/tests/test_gicon.py b/tests/test_gicon.py
new file mode 100644
index 0000000..0a66c9e
--- /dev/null
+++ b/tests/test_gicon.py
@@ -0,0 +1,94 @@
+# -*- Mode: Python -*-
+
+import os
+import unittest
+
+from common import gio, glib
+
+
+class TestIcon(unittest.TestCase):
+ def test_eq(self):
+ self.assertEquals(gio.File('foo.png').icon_new(),
+ gio.File('foo.png').icon_new())
+ self.assertEquals(gio.ThemedIcon('foo'),
+ gio.ThemedIcon('foo'))
+
+ self.assertNotEqual(gio.File('foo.png').icon_new(),
+ gio.File('bar.png').icon_new())
+ self.assertNotEquals(gio.ThemedIcon('foo'),
+ gio.ThemedIcon('bar'))
+ self.assertNotEquals(gio.File('foo.png').icon_new(),
+ gio.ThemedIcon('foo'))
+
+ def test_hash(self):
+ self.assertEquals(hash(gio.File('foo.png').icon_new()),
+ hash(gio.File('foo.png').icon_new()))
+ self.assertEquals(hash(gio.ThemedIcon('foo')),
+ hash(gio.ThemedIcon('foo')))
+
+class TestLoadableIcon(unittest.TestCase):
+ def setUp(self):
+ self.file = open('temp.svg', 'w')
+ self.svg = ('<?xml version="1.0" encoding="UTF-8" standalone="no"?>'
+ '<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.0//EN" '
+ '"http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd">'
+ '<svg width="32" height="32"/>')
+ self.file.write(self.svg)
+ self.file.close()
+ self.icon = gio.File('temp.svg').icon_new()
+
+ def tearDown(self):
+ if os.path.exists('temp.svg'):
+ os.unlink('temp.svg')
+
+ def test_load(self):
+ stream, type = self.icon.load()
+ try:
+ self.assert_(isinstance(stream, gio.InputStream))
+ self.assertEquals(self.svg, stream.read())
+ finally:
+ stream.close()
+
+ def test_load_async(self):
+ def callback(icon, result):
+ try:
+ stream, type = icon.load_finish(result)
+ self.assert_(isinstance(stream, gio.InputStream))
+ self.assertEquals(self.svg, stream.read())
+ finally:
+ loop.quit()
+ stream.close()
+
+ self.icon.load_async(callback)
+
+ loop = glib.MainLoop()
+ loop.run()
+
+class TestThemedIcon(unittest.TestCase):
+ def setUp(self):
+ self.icon = gio.ThemedIcon("open")
+
+ def test_constructor(self):
+ icon = gio.ThemedIcon('foo')
+ self.assertEquals(['foo'], icon.props.names)
+ self.assert_(not icon.props.use_default_fallbacks)
+
+ icon = gio.ThemedIcon(['foo', 'bar', 'baz'])
+ self.assertEquals(['foo', 'bar', 'baz'], icon.props.names)
+ self.assert_(not icon.props.use_default_fallbacks)
+
+ icon = gio.ThemedIcon('xxx-yyy-zzz', True)
+ self.assertEquals(['xxx-yyy-zzz', 'xxx-yyy', 'xxx'], icon.props.names)
+ self.assert_(icon.props.use_default_fallbacks)
+
+ def test_constructor_illegals(self):
+ self.assertRaises(TypeError, lambda: gio.ThemedIcon(42))
+ self.assertRaises(TypeError, lambda: gio.ThemedIcon(['foo', 42, 'bar']))
+
+ def test_get_names(self):
+ self.assertEquals(self.icon.get_names(), ['open'])
+
+ def test_append_name(self):
+ self.assertEquals(self.icon.get_names(), ['open'])
+ self.icon.append_name('close')
+ self.assertEquals(self.icon.get_names(), ['open', 'close'])
diff --git a/tests/test_gio.py b/tests/test_gio.py
index c321076..930d8fb 100644
--- a/tests/test_gio.py
+++ b/tests/test_gio.py
@@ -568,19 +568,6 @@ class TestVolumeMonitor(unittest.TestCase):
self.failUnless(isinstance(icon, gio.Icon))
-class TestThemedIcon(unittest.TestCase):
- def setUp(self):
- self.icon = gio.ThemedIcon("open")
-
- def testGetNames(self):
- self.assertEquals(self.icon.get_names(), ['open'])
-
- def testAppendName(self):
- self.assertEquals(self.icon.get_names(), ['open'])
- self.icon.append_name('close')
- self.assertEquals(self.icon.get_names(), ['open', 'close'])
-
-
class TestContentTypeGuess(unittest.TestCase):
def testFromName(self):
mime_type = gio.content_type_guess('diagram.svg')