Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
path: root/src/sugar/tutorius/tests/overlaytests.py
diff options
context:
space:
mode:
Diffstat (limited to 'src/sugar/tutorius/tests/overlaytests.py')
-rw-r--r--src/sugar/tutorius/tests/overlaytests.py119
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()