From 60f46e4ea698f03bb6bace050ed3b88eb5d04ac3 Mon Sep 17 00:00:00 2001 From: renatofilho Date: Wed, 3 Nov 2010 14:20:52 -0300 Subject: unit test for bug #456 Reviewer: Luciano Wolf Lauro Neto --- tests/QtDeclarative/CMakeLists.txt | 1 + tests/QtDeclarative/bug_456.py | 78 ++++++++++++++++++++++++++++++++++++++ tests/QtDeclarative/bug_456.qml | 71 ++++++++++++++++++++++++++++++++++ 3 files changed, 150 insertions(+) create mode 100755 tests/QtDeclarative/bug_456.py create mode 100644 tests/QtDeclarative/bug_456.qml diff --git a/tests/QtDeclarative/CMakeLists.txt b/tests/QtDeclarative/CMakeLists.txt index 98b797c97..18cb03f9a 100644 --- a/tests/QtDeclarative/CMakeLists.txt +++ b/tests/QtDeclarative/CMakeLists.txt @@ -1,3 +1,4 @@ +PYSIDE_TEST(bug_456.py FALSE) PYSIDE_TEST(qdeclarativenetwork_test.py FALSE) PYSIDE_TEST(qdeclarativeview_test.py FALSE) PYSIDE_TEST(connect_python_qml.py FALSE) diff --git a/tests/QtDeclarative/bug_456.py b/tests/QtDeclarative/bug_456.py new file mode 100755 index 000000000..8a0c662d9 --- /dev/null +++ b/tests/QtDeclarative/bug_456.py @@ -0,0 +1,78 @@ +#!/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 + +class RotateValue(QtCore.QObject): + def __init__(self): + super(RotateValue,self).__init__() + + @QtCore.Slot(result=int) + def val(self): + return 100 + + def setRotation(self, v): + self._rotation = v + + def getRotation(self): + return self._rotation + + rotation = QtCore.Property(int, getRotation, setRotation) + +class TestConnectionWithInvalidSignature(TimedQApplication): + + def testSlotRetur(self): + view = QtDeclarative.QDeclarativeView() + rotatevalue = RotateValue() + + timer = QtCore.QTimer() + timer.start(2000) + + context = view.rootContext() + context.setContextProperty("rotatevalue", rotatevalue) + view.setSource(adjust_filename('bug_456.qml', __file__)) + root = view.rootObject() + button = root.findChild(QtCore.QObject, "buttonMouseArea") + view.show() + button.clicked.emit() + self.assertEqual(rotatevalue.rotation, 100) + +if __name__ == '__main__': + unittest.main() diff --git a/tests/QtDeclarative/bug_456.qml b/tests/QtDeclarative/bug_456.qml new file mode 100644 index 000000000..e4596fdfb --- /dev/null +++ b/tests/QtDeclarative/bug_456.qml @@ -0,0 +1,71 @@ +/**************************************************************************** +** +** 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$ +** +****************************************************************************/ + +import Qt 4.7 + +Rectangle { + id: page + + width: 500; height: 200 + color: "lightgray" + + Rectangle { + id: button + width: 150; height: 40 + color: "darkgray" + anchors.horizontalCenter: page.horizontalCenter + y: 120 + MouseArea { + id: buttonMouseArea + objectName: "buttonMouseArea" + anchors.fill: parent + onClicked: { + rotatevalue.rotation = rotatevalue.val() + } + } + Text { + id: buttonText + text: "Press me!" + anchors.horizontalCenter: button.horizontalCenter + anchors.verticalCenter: button.verticalCenter + font.pointSize: 16; + } + } +} -- cgit v1.2.3