diff options
author | Paul Pogonyshev <pogonyshev@gmx.net> | 2008-08-09 11:58:21 +0000 |
---|---|---|
committer | Paul Pogonyshev <paulp@src.gnome.org> | 2008-08-09 11:58:21 +0000 |
commit | 1a20d6e43a3cc24feb7d4d5573face04b6d2492a (patch) | |
tree | 288e20c51f8c05f3098274e9ef62514bce6437fc /tests | |
parent | efed0743ab6e395e3d689455e7897240ec8b0e45 (diff) | |
download | pygobject-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.am | 1 | ||||
-rw-r--r-- | tests/test_gicon.py | 94 | ||||
-rw-r--r-- | tests/test_gio.py | 13 |
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') |