diff options
author | Simon Poirier <simpoir@gmail.com> | 2009-07-11 21:39:46 (GMT) |
---|---|---|
committer | Simon Poirier <simpoir@gmail.com> | 2009-07-11 22:00:30 (GMT) |
commit | 0c3f127c86af818d260966d2292b199757087157 (patch) | |
tree | 62cf941aef5bde83641a17ec492e03d0ecb17386 /src/sugar/tutorius/tests/overlaytests.py | |
parent | 9fafb49af210e956d43d6a00106558d1a00d13df (diff) |
repackage
Diffstat (limited to 'src/sugar/tutorius/tests/overlaytests.py')
-rw-r--r-- | src/sugar/tutorius/tests/overlaytests.py | 119 |
1 files changed, 0 insertions, 119 deletions
diff --git a/src/sugar/tutorius/tests/overlaytests.py b/src/sugar/tutorius/tests/overlaytests.py deleted file mode 100644 index 783377c..0000000 --- a/src/sugar/tutorius/tests/overlaytests.py +++ /dev/null @@ -1,119 +0,0 @@ -# Copyright (C) 2009, Tutorius.org -# Copyright (C) 2009, Simon Poirier <simpoir@gmail.com> -# -# This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; either version 2 of the License, or -# (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program; if not, write to the Free Software -# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA -""" -GUI Tests - -This module contains all the tests that pertain to the usage of the Tutorius -overlay mechanism used to display objects on top of the application. -""" - -import unittest - -import logging -import gtk, gobject -from sugar.tutorius.actions import Action -import sugar.tutorius.overlayer as overlayer - -class CanvasDrawable(object): - def __init__(self): - self._no_expose = False - self.exposition_count = 0 - def _set_no_expose(self, value): - self._no_expose = value - def draw_with_context(self, context): - self.exposition_count += 1 - no_expose = property(fset=_set_no_expose) - - -class OverlayerTest(unittest.TestCase): - def test_cairodrawable_iface(self): - """ - Quickly validates that all our cairo widgets have a minimal interface - implemented. - """ - drawables = [overlayer.TextBubble] - for widget in drawables: - for attr in filter(lambda s:s[0]!='_', dir(CanvasDrawable)): - assert hasattr(widget, attr), \ - "%s not implementing CanvasDrawable iface"%widget.__name__ - - - def test_drawn(self): - """ - Ensures a cairo widget draw method is called at least once in - a real gui app. - """ - win = gtk.Window(type=gtk.WINDOW_TOPLEVEL) - - btn = gtk.Button() - btn.show() - overlay = overlayer.Overlayer(btn) - win.add(overlay) - # let's also try to draw substitute button label - lbl = overlayer.TextBubble("test!") - assert lbl.label == 'test!', \ - "label property mismatch" - btn.show() - lbl.show() - btn.add(lbl) - - lbl.no_expose = True - assert lbl.no_expose, "wrong no_expose evaluation" - lbl.no_expose = False - assert not lbl.no_expose, "wrong no_expose evaluation" - - - widg = gtk.Button('bo') - widg.show() - overlay.put(widg, 50,50) - #widget = overlayer.TextBubble("testing msg!", tailpos=(10,-20)) - #widget.exposition_count = 0 - ## override draw method - #def counter(ctx, self=widget): - # self.exposition_count += 1 - # self.real_exposer(ctx) - #widget.real_exposer = widget.draw_with_context - #widget.draw_with_context = counter - ## centering allows to test the blending with the label - #overlay.put(widget, 50, 50) - #widget.show() - #assert widget.no_expose, \ - # "Overlay should overide exposition handling of widget" - #assert not lbl.no_expose, \ - # "Non-overlayed cairo should expose as usual" - - # force widget realization - # the child is flagged to be redrawn, the overlay should redraw too. - win.set_default_size(100, 100) - win.show() - - while gtk.events_pending(): - gtk.main_iteration(block=False) - # visual validation: there should be 2 visible bubbles, one as label, - # one as overlay - import time - time.sleep(1) - # as x11 events are asynchronous, wait a bit before assuming it went - # wrong. - while gtk.events_pending(): - gtk.main_iteration(block=False) - time.sleep(10) - assert widget.exposition_count>0, "overlay widget should expose" - - -if __name__ == "__main__": - unittest.main() |