diff options
author | renatofilho <renato.filho@openbossa.org> | 2010-11-05 16:33:36 -0300 |
---|---|---|
committer | renatofilho <renato.filho@openbossa.org> | 2010-11-05 19:01:07 -0300 |
commit | 5371e403ffe741119ba0803077b772ca84f3fce3 (patch) | |
tree | a93755452e70ba3080e430680f0d41b4c8a7fdcc | |
parent | a029d217c2ae26aedb89e472ccdf61d20ec7fd26 (diff) |
Created unit test for bug #451.
Reviewer: Hugo Parente Lima <hugo.pl@gmail.com>
Luciano Wolf <luciano.wolf@openbossa.org>
-rw-r--r-- | tests/QtDeclarative/CMakeLists.txt | 1 | ||||
-rwxr-xr-x | tests/QtDeclarative/bug_451.py | 65 | ||||
-rw-r--r-- | tests/QtDeclarative/bug_451.qml | 26 | ||||
-rwxr-xr-x | tests/QtDeclarative/bug_456.py | 38 |
4 files changed, 92 insertions, 38 deletions
diff --git a/tests/QtDeclarative/CMakeLists.txt b/tests/QtDeclarative/CMakeLists.txt index 18cb03f9a..277384987 100644 --- a/tests/QtDeclarative/CMakeLists.txt +++ b/tests/QtDeclarative/CMakeLists.txt @@ -1,3 +1,4 @@ +PYSIDE_TEST(bug_451.py FALSE) PYSIDE_TEST(bug_456.py FALSE) PYSIDE_TEST(qdeclarativenetwork_test.py FALSE) PYSIDE_TEST(qdeclarativeview_test.py FALSE) diff --git a/tests/QtDeclarative/bug_451.py b/tests/QtDeclarative/bug_451.py new file mode 100755 index 000000000..60e8dcce5 --- /dev/null +++ b/tests/QtDeclarative/bug_451.py @@ -0,0 +1,65 @@ +''' Test bug 451: http://bugs.openbossa.org/show_bug.cgi?id=451''' + +from PySide import QtCore, QtGui, QtDeclarative +from helper import adjust_filename +import sys +import unittest + +class PythonObject(QtCore.QObject): + def __init__(self): + QtCore.QObject.__init__(self, None) + self._called = "" + self._arg1 = None + self._arg2 = None + + def setCalled(self, v): + self._called = v + + def setArg1(self, v): + self._arg1 = v + + def setArg2(self, v): + self._arg2 = v + + def getCalled(self): + return self._called + + def getArg1(self): + return self._arg1 + + def getArg2(self): + return self._arg2 + + called = QtCore.Property(str, getCalled, setCalled) + arg1 = QtCore.Property(int, getArg1, setArg1) + arg2 = QtCore.Property('QVariant', getArg2, setArg2) + +class TestBug(unittest.TestCase): + def testQMLFunctionCall(self): + app = QtGui.QApplication(sys.argv) + view = QtDeclarative.QDeclarativeView() + + obj = PythonObject() + context = view.rootContext() + context.setContextProperty("python", obj) + view.setSource(adjust_filename('bug_451.qml', __file__)) + root = view.rootObject() + root.simpleFunction() + self.assertEqual(obj.called, "simpleFunction") + + root.oneArgFunction(42) + self.assertEqual(obj.called, "oneArgFunction") + self.assertEqual(obj.arg1, 42) + + root.twoArgFunction(10, app) + self.assertEqual(obj.called, "twoArgFunction") + self.assertEqual(obj.arg1, 10) + self.assertEqual(obj.arg2, app) + + rvalue = root.returnFunction() + self.assertEqual(obj.called, "returnFunction") + self.assertEqual(rvalue, 42) + + +if __name__ == '__main__': + unittest.main() diff --git a/tests/QtDeclarative/bug_451.qml b/tests/QtDeclarative/bug_451.qml new file mode 100644 index 000000000..fea810818 --- /dev/null +++ b/tests/QtDeclarative/bug_451.qml @@ -0,0 +1,26 @@ +import Qt 4.7 + +Rectangle { + id: page + + function simpleFunction() { + python.called = "simpleFunction" + } + + function oneArgFunction(x) { + python.called = "oneArgFunction" + python.arg1 = x + } + + function twoArgFunction(x, y) { + python.called = "twoArgFunction" + python.arg1 = x + python.arg2 = y + } + + function returnFunction() { + python.called = "returnFunction" + return 42 + } + +} diff --git a/tests/QtDeclarative/bug_456.py b/tests/QtDeclarative/bug_456.py index 8a0c662d9..178ea7d43 100755 --- a/tests/QtDeclarative/bug_456.py +++ b/tests/QtDeclarative/bug_456.py @@ -1,41 +1,3 @@ -#!/usr/bin/python - -# Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). -# All rights reserved. -# Contact: PySide Team (pyside@openbossa.org) -# -# This file is part of the examples of PySide: Python for Qt. -# -# $QT_BEGIN_LICENSE:BSD$ -# You may use this file under the terms of the BSD license as follows: -# -# "Redistribution and use in source and binary forms, with or without -# modification, are permitted provided that the following conditions are -# met: -# * Redistributions of source code must retain the above copyright -# notice, this list of conditions and the following disclaimer. -# * Redistributions in binary form must reproduce the above copyright -# notice, this list of conditions and the following disclaimer in -# the documentation and/or other materials provided with the -# distribution. -# * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor -# the names of its contributors may be used to endorse or promote -# products derived from this software without specific prior written -# permission. -# -# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." -# $QT_END_LICENSE$ - from PySide import QtCore, QtGui, QtDeclarative from helper import adjust_filename, TimedQApplication import unittest |